2022-10-26

一、缓存内存图

image.png
image.png

二、

从jdk1.5开始
1、自动装箱

Integer a = 1;

2、自动拆箱

Integer a = new Integer(1);
int b = a;

三、String不可变字符序列

final修饰,String不能被继承
底层维护一个字符数组,内容都存在字符数组中
String对象一旦创建,内容不可更改,如果更改,就生成新的对象

四、字符串内存解析

1、

String s1 = "ab";
String s2 = "ab";
System.out.println(s1 == s2);//true
image.png

2、

String s1 = "ab";
String s2 = new String("ab");
System.out.println(s1 == s2);//false
image.png

3、

String s1 = new String("ab");
String s2 = new String("ab");
System.out.println(s1 == s2);//false
image.png

问:new String("123"); 创建几个字符串对象
答:1个或2个

4、

String s1 = "a";
String s2 = "b";
String s = s1 + s2;//变量做字符串拼接,结果会在堆中
String ss = "a" + "b";//常量做字符串拼接,结果会在常量池中
System.out.println(s == "ab");//false
System.out.println(ss == "ab");//true

五、字符串的equals方法

    String s1 = "ab";
    String s2 = new String("ab");
    String s3 = new String("ab");
    System.out.println(s1.equals(s2));
    System.out.println(s2.equals(s3));
    String s4 = null;
    System.out.println(s3.equals(s4));

六、字符串的常用方法

你可能感兴趣的:(2022-10-26)