> 时尚
java基本类型部分理解是什么(java基本类型部分理解和运用)
导语:java基本类型部分理解
个人理解,如有错误,欢迎指正,谢谢。
1.基本类型 和 封装类型 运算或比较 时,
例如 int+Integer或boolean&Boolean,特别是经常出现的 int==Integer
java都会先将封装类型 拆箱,再进行运算,而拆箱 是调用“基本类型Value()”函数,所以如果封装类型为null时会报 空指针异常 NullPointerException,就是因为调用了函数。
2.因为上述大部分类型对于数值的缓存,所以 封装类的使用上,例如
Integer a = 127, b = 127; Integer a1 = 128, b1 = 128; System.out.println(a == b); //TRUE System.out.println(a1 == b1);//FALSE
Character a = 127, b = 127; Character a1 = 128, b1 = 128; Character a2 = (char)-1, b2 = (char)-1; System.out.println(a == b);//TRUE System.out.println(a1 == b1); //FALSE System.out.println(a2== b2); //FALSE
都一样,是这个性质,因为都是调用的“封装类.valueOf”方法返回的对象,而这个对象 在缓存中有时,会返回缓存对象。
Boolean和Byte特别在 他们所i有的值 都在缓存中有。
Character 有意思在,虽然负数也在该范围内,但没缓存,可能是 用不到
2.byte,char,short,Int,long之间的转换
低位数 到 高 位数 转换 没问题
从高位 到 低位 转换 就是 直接取 低位
例如 long 转int 就是 取long的低32位作为 int的值,这时 如果 低32位的 第一个二进制是1,那转为int就是 负数
本文内容由小海整理编辑!