javaSE21/9/13

Posted 想吃坚果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE 方法的使用

JavaSE线程基础

[javase学习笔记]-8.7 静态代码块

[javase学习笔记]-8.8 构造代码块

JavaSE8基础 构造代码块简单示例

JavaSE 语法基础 --- 反射(基础知识问答+代码详解)