String String str1="java"String str2="java"str1==str2为什么是对的,不是应该比较的是对象? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 学习下java string 的内容 比较的是地址 str1会先去栈里寻找存在 不存在则创建 str2去栈里找到了java 所以他们引用了同样的地址 为true 首先字符串Java存于方法区常量池中,且字符串值不重复,故str1,str2指向同一对象 首先String是一个引用类型,但和别的引用类型有所不同。它在方法区里有一个字符串常量池。String str1会存在栈里,值java会存放在方法区的字符串常量池里,str1指向存放java的内存地址。而你在创建str2 时,首先会去字符串常量池找里面有没有java这个字符串,如果有就不会在创建了,str2直接指向存放java的地址。两个引用指向同一个地址,所以是true "java" 是一个字符串常量, 在常量池中只有一份, 所以地址相同. 返回true. 你可以试一下. String str2=new String("java"); 返回的就是false了 了解一下 String str2="java" 创建了几个对象,“java" 放在哪里? 还有== 和equals区别 String str2="java" 先去常量池中看看有没有java,有的话直接赋给str2,如果没有则在常量池中创建java赋给str2。String str1="java"同理。str1 == str2 结果为true,因为str1和str2都是常量池中的"java"字符串。 == 比较的是内存地址,而在JVM中存在一个字符串池,其中保存着很多String对象,并且可以被共享使用,str1和str2指向的是同一个内存地址,所以str1==str2会返回true;但是只有使用引号包含文本的方式创建的String对象之间使用“+”连接产生的新对象才会被加入字符串池中 JAVASE 写一个类继承LabelProvider 出错,求教 关于finally的问题! 关于java文件流的小问题 生成jar文件问题 这样配置了,为什么运行java还要出错 那位大哥能介绍两本专讲java线程的书! java 问题 什么 10 进制 JBuild中的中文问题 下面代码控制台输出为什么不是N到1而是1到N的所有整数 用cmd运行java synchronized 无效
但是只有使用引号包含文本的方式创建的String对象之间使用“+”连接产生的新对象才会被加入字符串池中