`
m635674608
  • 浏览: 4938395 次
  • 性别: Icon_minigender_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();

}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics