java – 添加String Literals和String对象之间的区别
添加String Literal和String Object之间有什么区别?
例如 String s1 ="hello"; String s2 ="hello1"; String s3 ="hello" + "hello1"; String s4 ="hellohello1"; String s5 = s1 + s2; System.out.println(s3 == s4); // returns true System.out.println(s3 == s5); // return false System.out.println(s4 == s5); // return false 为什么s3 / s4没有指向与s5相同的位置? 解决方法
因为s1 s2不是常量表达式,因为s1和s2不是final,因此它的结果不是interned,即创建另一个对象来表示它,因此引用比较产生false.
JLS 3.10.5 String Literals:
JLS 15.28 Constant Expression:
JLS 4.12.4定义了最终变量. 如果将s1和s2声明为final,则s3 == s5将为true. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – Guice Jersey:添加所有的资源和提供者,
- java – JDBC调用Microsoft SQL Server存储过程的
- java – 在opencv中下面的代码行是什么意思?
- Hibernate hibernate.default_schema属性:指定默
- java – Spring中的ExceptionHandler
- java – 检测MouseEvent上的Shift修改器,它是从s
- Java 7的组合/多catch块有正式名称吗?
- java – 为什么拖放在Selenium Webdriver中不起作
- 在Java中加载和保存基于图块的游戏. XML还是TXT?
- 这个Java代码如何工作?