javaSE21/9/13

Integer缓冲区

  • java预先创建了256个常用的整数包装类型对象,-128~127
  • 在实际应用中,对已经创建的对象进行复用
public class Demo { 
    public static void main(String[] args) { 
        Integer integer1 = new Integer(100);//将基本类型转换为引用类型 
        Integer integer2 = new Integer(100); 
        System.out.println(integer1==integer2);//俩对象为引用类型,比的是栈内存里的地址,所以输出false 

        Integer integer3 = 100;//自动装箱,将基本类型转为引用类型 
        Integer integer4 = 100; 
        System.out.println(integer3==integer4);//输出true 
        /* velueof方法中存有-128~127之间的数, 
        如果需要用到方法里的数,直接将该数所对应的地址从堆空间 传到栈空间,
        所以两个对象对应的地址一样 */ 

        Integer integer5 = 200;//自动装箱 
        Integer integer6 = 200; 
        System.out.println(integer5==integer6);//输出false, 
    // 200不在范围内,所以在堆空间里新开一个空间,对应的地址不相同 
    } 
} 

String类

  • 字符串是常量,创建之后不能改变
  • 字符串字面值存储在字符串池中,可以共享
  • String s = "Hello";
  • String s = new String("Hello");产生两个对象,堆,池各存储一个
public class Demo {
    public static void main(String[] args) {
        String name = "张三";//存储在常量池中
        name = "李四";//新开辟了个空间,name的地址值改变
        String name2 = "李四";//在常量池中找到“李四”,得到他的地址值
        String str = new String("Hello");//在堆空间和常量池中都开辟空间
    }
}

javaSE21/9/13

javaSE21/9/13

上一篇:getter和setter


下一篇:[LeetCode] 1218. Longest Arithmetic Subsequence of Given Difference 最长定差子序列