class number implements java. ser{}//表示类number实现 java. ser抽象类接口,同时继承object类(虽然没写,但均默认,只要是类)
±==运算符,同时存在包装类和基本类型时,对于包装类z,会将z自动转化成基本数据类型比较;当出现运算符的时候,Integer不可能直接用来运算,所以会进行一次拆箱成为基本数字进行比较,这个符号,既可以比较普通基本类型(当存在基本数据类型的时候,会将interg数据类型转化成基本数据类型比较,否则就是比较地址),也可以比较内存地址看比较的是什么了;
+对于字符串使用时候:将变成字符串拼接
例:string s=1+“”;
/*
这个题目是Integer非常重要的面试题。
*/
public class IntegerTest06 {
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
}
}
装箱和拆箱的源代码和底层原理’
八大包装类的valueof装箱操作
整型的包装类 valueOf 方法返回对象时,在常用的取值范围内,会返回缓存对象。
浮点型的包装类 valueOf 方法返回新的对象。
布尔型的包装类 valueOf 方法 Boolean类的静态常量 TRUE | FALSE。
包含算术运算会触发自动拆箱。