String str1 = new String("abc"); 与 Stirng str2 = "abc"; stringheapjvm字符串常量池 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放入字符串池是在编译期(任何字面量值的字符串都是在编译期放入字符串常量池中的). 第一句话以后池里面就已经有abc. 编译的class会记录这个池中的引用, 等到运行期new String 的时候根据这个引用找到池中的值复制一份到堆上. 把堆内存地址给str1. 所以它们只是值相同, 没其它关系 String s1 = "abc"; 1String s2 = "abc"; 2String s3 = new String("abc"); 3java内存中有一个专门存储字符串的字符池(常量池)。当 1 执行时,字符池了新建“abc”的字符串。s1指向它。 当 2 执行时,因为字符池里已经有“abc”字符串,所以不会创建新的字符,将s2指向已有的“abc”。所以s1 == s2为true。s2 == "abc"为true。当第 3 执行时,创建了两个对象。第一个s3的引用,位于栈内存,第二个new String();位于堆内存,s3指向堆内存。 问题:s3 的堆内存存的是什么?堆内存中的存放的对象和字符串常量池中的abc 有什么关系? 在第一种方式中常量池中"abc"对象会被当做普通参数传递给构造函数的. 正解,我记得java编程思想里有解释 恩 四楼答的这些我是知道的。我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系? 恩 四楼答的这些我是知道的。我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系?存的地方都不一样,没有关系,值一样而已 问题:s3 的堆内存存的是什么?堆内存中的存放的对象和字符串常量池中的abc 有什么关系?个人理解应该是将字符串常量中的“abc”复制一份到堆内存中。 恩 四楼答的这些我是知道的。我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系?这个问题问得好。对于你给的这个特定的具体的例子,我明确适之你,s3引用的堆中的那个“abc”(一个字符序列的空间) 与 字符串常量池中已经存在的"abc"(已化为一个字符序列),是同一个!即:(对于你这个特定的例子)s3引用的堆中的那个字符数组与 字符串常量池中已经存在的"abc"中的字符数组,是同一个! Swing有必要仔细学吗 java数组转置 推荐本p2p的书籍 Java+数据库,我应该选用哪一种数据库管理软件好呢 JAVA中构造继承类的问题 请教个关于Thinking in java的问题 java中同时对一个文件建立读写流时,为什么有时候出现问题呢 急!!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于xml请大家帮助 ldap出错error code 11 java怎么实现把DOC文件转pdf文件下载 JNLP是什么?可以用它来干什么?
String s2 = "abc"; 2
String s3 = new String("abc"); 3
java内存中有一个专门存储字符串的字符池(常量池)。当 1 执行时,字符池了新建“abc”
的字符串。s1指向它。 当 2 执行时,因为字符池里已经有“abc”字符串,所以
不会创建新的字符,将s2指向已有的“abc”。所以s1 == s2为true。s2 == "abc"为true。
当第 3 执行时,创建了两个对象。第一个s3的引用,位于栈内存,第二个new String();
位于堆内存,s3指向堆内存。
我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系?
我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系?
存的地方都不一样,没有关系,值一样而已
个人理解应该是将字符串常量中的“abc”复制一份到堆内存中。
我想问问s3 引用的堆中的"abc" 和 字符串常量池中已经存在的"abc" 是什么个关系?这个问题问得好。对于你给的这个特定的具体的例子,我明确适之你,s3引用的堆中的那个“abc”(一个字符序列的空间) 与 字符串常量池中已经存在的"abc"(已化为一个字符序列),是同一个!即:(对于你这个特定的例子)s3引用的堆中的那个字符数组与 字符串常量池中已经存在的"abc"中的字符数组,是同一个!