一.
String str = “我很帅”; //常量池,创建字符串”我很帅”;
String str2 = “我”+”很”+”帅”; //常量相加
//+在编译的时候会自动完成,先在常量池中查找,有就不用创建.
Boolean isTrue = str == str2 ;//true内容相同,地址同
isTrue = str.equals(str2);//true 内容相同.
二.
String str3 = new String(“我很帅”);
String str4 = new String(“我很帅”);
isTrue =str2 ==str3 ;//false,new在堆新地址.地址不同.
isTrue = str3.equals(str2);//true,内容相同.
三.
String a = “我”;//常量池中地址a
String b = “很”;//常量池中地址b
String c = “帅”;//常量池中地址c
String d = a+b+c;//对象相加.
//编译的时候a+b+c 当作 StringBuffer.append方法相连. 转化成String类型.
String str = ”我很帅”;//创建一个地址.
Boolean isTrue =str ==d ;//false
String a=”ab”;//地址a
String b=a+”c”;
String c =”abc”;//地址b
四. integer i1 = 100;
integer i2 = 100;
System.out.println( i1 == i2 );//true
integer i3 = 1000;
integer i4 = 1000;
System.out.println( i3 == i4 );//false
解析:当 i 的值小于128时,默认是byte类型,所以比较的结果是true;当 i 的值>128时,会转为int类型的对象新建地址值
整数值的特点:超过128会新建新地址.