请问String s=new String("xyz");为什么是创建了两个String Object?? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建了两个String Object?怎么会呢。这是jdk上的解释:String(String original) 初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本String s=new String("xyz");我觉得:String s 是声明了一个String 类型的对象,但没有赋予空间;new String("xyz");分配了一个空间,用xyz来初始化。 String s=new String("xyz");s放在棧里String("xyz");放在堆里 请问String s=new String("xyz");为什么是创建了两个String Object??这条语句怎么可能创建两个String对象?楼主说说原因先 String s=new String("xyz");s放在棧里String("xyz");放在堆里----------------------对的 ^_^楼主写错了,不是两个String Object。就一个String对象,然后一个String引用变量s。new String("xyz")会在堆上创建String对象。然后会将此对象所在的堆的地址作为引用值传递给String对象的引用变量s保存。这里引用变量s是分配在栈上面的。在堆上面分配存储空间的才称为变量,而这里的s只是一个栈上的变量而已。(在32位机器上,相当于一个32位整型变量) Myeclipse8.5,怎么用UML导出类图? 大伙帮我看看这个小程序的问题!! 一个基础问题!package问题 关于JAVA帮助文档问题 如何精确double到小数后两位 请问JavaHome的作用是什么? 急啊,应该不难,就是找不到API javamail java 入门 意外类型 java问题 基于Socket的聊天 值得关注的问题:关于动态代理类的疑问,请了解这方面的进来指点一下!
怎么会呢。这是jdk上的解释:
String(String original)
初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本
String s=new String("xyz");
我觉得:
String s 是声明了一个String 类型的对象,但没有赋予空间;
new String("xyz");分配了一个空间,用xyz来初始化。
String("xyz");放在堆里
String("xyz");放在堆里----------------------对的
楼主写错了,不是两个String Object。就一个String对象,然后一个String引用变量s。new String("xyz")会在堆上创建String对象。然后会将此对象所在的堆的地址作为引用值传递给String对象的引用变量s保存。这里引用变量s是分配在栈上面的。在堆上面分配存储空间的才称为变量,而这里的s只是一个栈上的变量而已。(在32位机器上,相当于一个32位整型变量)