// 普通的创建对象方式 Integer a = new Integer(5); // 装箱 调用了valueOf方法 Integer b = 5; // 拆箱 调用了intValue方法 int c = b + 5;
包装类存在一个缓存机制,当数值在-128到127之间时会从缓存中获取。
// 装箱过程中,反编译回来发现调用的是valueOf方法,在一范围内会缓存起来,引用的地址相同。 Integer a=5; Integer b=5; System.out.println(a==b);//true 比较的是引用的地址 Integer c=129; Integer d=129; System.out.println(c==d);//false
String对象一经创建就不可修改。