您的位置 首页 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就是 负数

文章来源:智云一二三科技

文章标题:java基本类型部分理解

文章地址:https://www.zhihuclub.com/185255.shtml

关于作者: 智云科技

热门文章

网站地图