java特种兵 学习日志1

 在今天看的java特种兵中,主要看了前面几小结。作者重点讲了String。总结的实例代码如下:

 

public class Day{

private static String getA(){

return "a";}

private static void method1(){

String a ="a"+"b"+1;

String b ="ab1";

System.out.println(a==b);//a,b均为常量,在编译时就已经确定

}

private static void method2(){

String a ="a";

final String c ="a";

String b =a+"b";

String d=c+"b";

String e=getA()+"b";

String compare ="ab";

System.out.println(b==compare);//b中a是变量,虽然初始化为"a"

System.out.println(d==compare);//d中c也是变量,但它是final的,所以会认为d是常量

System.out.println(e==compare);//e为方法 不会是常量,虽然返回的是常量,编译时不会查看方法,因为有可能返回的是变量

System.out.println(a==c);

}

private static void method3(){

String a="a";

String b=a+"b";

String c="ab";

String d = new String(b);

System.out.println(b==c);

System.out.println(c==d);

System.out.println(c==d.intern());//intern方法会在常量池里查找,所以会是相同的常量

System.out.println(b.intern()==d.intern());

}

public static void main(String[] args){

method1();

method2();

method3();

}

}

 

----------------------------------------------

运行结果为:

true

false

true

false

true

false

false

true

true

猜你喜欢

转载自uncle-panda.iteye.com/blog/2235785