解决方案 »
- 编码问题图片无法显示
- 下拉框取值问题,在线等~~~~~~
- javascript 中如何判断对象是否触发事件
- 请教一个struts2取值的问题
- 关于JAVA开源代码的阅读
- hibernate高手请进:如何判断list为空?
- struts手动json和自动json的问题(求助)
- tomcat报的错误:Servlet.destroy() for servlet action threw exception。请问是什么意思
- 关于 javaMail 中的 header信息中的Content-Type and Content-Transfer-Encoding 的配置问题?
- java.lang.ExceptionInInitializerError
- firebug 页面内容正常响应 但报500错误,不显示页面
- 关于从数据库中取出文本格式输出的问题!!!
true
至于为什么。我也不知道。(实话实说)
System.out.println("java"=="ja"+"va");这两个输出true
System.out.println(str=="ja"+"va");
System.out.println(str=="java");这两个中的str是怎样定义的
System.out.println(null==null);
System.out.println("java"=="ja"+"va");
System.out.println(str=="ja"+"va");
System.out.println(str=="java");
不运行程序,说出这几句输出什么?为什么?
true
true
true
因为String有String池, 把所有相同的字符串都放在同一个地址中。
如果str="java",后两个也是true。
如果str = new String("java"),后两个是false。对于常量,"ja"+"va"虚拟机会自己做优化,在常量池中储存"java",所以它肯定=="java",
对于new String("java"),它是一个新对象,它和"java"的关系是equals
System.out.println(str=="java");这两个输出为false
System.out.println(null==null);
System.out.println("java"=="ja"+"va");
System.out.println(str=="ja"+"va");
System.out.println(str=="java");楼主看看这会有什么不一样?
那就没意义了。
lz写的是String str="Java";显然是笔误...但大部分人都还以为是Java....