您的位置:首页 > 其它

String字符串常量相加和new对象

2016-07-05 11:23 351 查看
今天无易中看一个学习视频,明白了String字符串中一个小小的东西。

如:public void test(String key1,String key2){

String a=key1+key2;

String b=key1+key2;

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

}

public static void main(String[] args){
new AccountTest().test("1", "");
}

//上边这段代码相信大家都知道结果为false,因为字符串在相加的时候是把key1+key2相加的结果放到了一个新创建的对象中。所以他们的结果为false

//但是如果

public void test(String key1,String key2){

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

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

}

//上边这段代码相信大家都知道结果为true,为什么呢?

//因为在jvm翻译为二进制代码时,会自动优化,把两个值后边的结果先合并,再保存为一个常量。而上边那个通过参数传的值,因为jvm也不知道会传过来什么值,所以也就无法优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: