开始认真学习JAVA,做下笔记第一天
class StringDemo1
{public static void main(String[] args)
{
//情况一
String a = "a1";
String a1 = "a"+1;
System.out.println(a==a1); //true 原因a对象在字符串常量池中创建了一个a1,而a1对象因为字符串a和1是常量,所以在编译时就已经确定了是a1。
//情况二
String b = "b1";
int bb = 1;
String b1 = "b"+bb;
System.out.println(b==b1); //false 原因b 对象在字符串常量池中创建了一个b 1,而b 对象因为bb是个变量所以不能确定,是false。
//情况三
String c = "c1";
final int cc = 1;
String c1 = "c"+cc;
System.out.println(c==c1); // true 原因是c 对象在字符串常量池中创建了一个c 1,而cc 对象因为cc前面加了个final所以把cc变成了常量所以c1能确定了。
//情况死
String d = "d1";
final int dd = getDD();
String d1 = "d"+dd;
System.out.println(d==d1);//false 原因是 d对象在字符串常量池中创建了一个d1,而dd变量因为需要通过getDD这个方法才能获取值,这个geiDD的方法说明时候才能 //确定值呢,要等你编译的时候才能确定值。
}
public static int getDD(){
return 1;
}
}