Java 八种基本类型包装类

基本数据类型   包装类型
----------------------------------------------
byte     java.lang.Byte(父类Number)
short    java.lang.Short(父类Number)
int      java.lang.Integer(父类Number)
long     java.lang.Long(父类Number)
float     java.lang.Float(父类Number)
double    java.lang.Double(父类Number)
boolean  java.lang.Boolean(父类Object)
char     java.lang.Character(父类Object)

Number类中有这样的方法:
  byte byteValue() 以 byte 形式返回指定的数值。
  abstract double doubleValue()以 double 形式返回指定的数值。
  abstract float floatValue()以 float 形式返回指定的数值。
  abstract int intValue()以 int 形式返回指定的数值。
  abstract long longValue()以 long 形式返回指定的数值。
  short shortValue()以 short 形式返回指定的数值。
  这些方法其实所有的数字包装类的子类都有,这些方法是负责拆箱的。

 

// 基本数据类型 -(转换为)->引用数据类型(装箱)
Integer i = new Integer(123);

// 将引用数据类型--(转换为)-> 基本数据类型
float f = i.floatValue();
System.out.println(f); //123.0

// 将引用数据类型--(转换为)-> 基本数据类型(拆箱)
int retValue = i.intValue();
System.out.println(retValue); //123

java5 之后 自动装箱和拆箱

1
[-128127]之间的数据比较特殊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class IntegerTest01 {
    public static void main(String[] args) {
 
        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b); //false
 
        /*
        java中为了提高程序的执行效率,将[-128到127]之间所有的包装对象提前创建好,
        放到了一个方法区的“整数型常量池”当中了,目的是只要用这个区间的数据不需要
        再new了,直接从整数型常量池当中取出来。
 
        原理:x变量中保存的对象的内存地址和y变量中保存的对象的内存地址是一样的。
         */
        Integer x = 127;
        Integer y = 127;
        // == 永远判断的都是两个对象的内存地址是否相同。
        System.out.println(x == y); //true
    }
}

  

  总结一下之前所学的经典异常?
    空指针异常:NullPointerException
    类型转换异常:ClassCastException
    数组下标越界异常:ArrayIndexOutOfBoundsException
    数字格式化异常:NumberFormatException

  //网页上文本框中输入的100实际上是"100"字符串。后台数据库中要求存储100数字,此时java程序需要将"100"转换成100数字。
    int retValue = Integer.parseInt("123"); // String -转换-> int
    //int retValue = Integer.parseInt("中文"); // NumberFormatException
    System.out.println(retValue + 100);

// valueOf方法作为了解
//static Integer valueOf(int i)
// 静态的:int-->Integer
Integer i1 = Integer.valueOf(100);
System.out.println(i1);

// static Integer valueOf(String s)
// 静态的:String-->Integer
Integer i2 = Integer.valueOf("100");
System.out.println(i2);

 

三种类型的转换

 

 

 

posted @   一叶扁舟,乘风破浪  阅读(310)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示