一、缓存内存图
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));
网友评论