darkads 发表于 2014-9-20 11:08
在张孝祥老师视频关于空中网面试题的第三题就涉及到了这个问题
"ddd"+""编译器会自动进行优化,将其连接起 ...
灵枫 发表于 2014-9-20 12:52
String A="aaa";
String B="aaa";
System.out.println("3 A==B "+(A+""==B));//false
darkads 发表于 2014-9-20 18:46
A也是一个引用变量,在编译器编译过程中,“aaa”这个值还没有赋给A,所以A+""编译不会优化,那么编译器 ...
灵枫 发表于 2014-9-20 23:16
你说的这个一点都不挂勾,现在这里就已经不是编译器自动优化的问题了,"aaa"已经赋值给A了,如果是"aaa"+ ...
灵枫 发表于 2014-9-20 12:52
String A="aaa";
String B="aaa";
System.out.println("3 A==B "+(A+""==B));//false
darkads 发表于 2014-9-21 12:33
字符串串联是通过StringBuilder或者StringBuffer实现的,但是字符串是一个常量,一旦被创建,它的值就不 ...
fantacyleo 发表于 2014-9-21 17:36
其实这就是个区分“编译时”和“运行时”的问题。像"ddd" + ""是编译时即可确定的常量表达式,它跟"ddd" ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |