请问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位整型变量) 菜鸟问题:JMenuItem用内部类getSource监听不到 刚开始看书,其中遇到的一些不懂的地方 计算器,奇怪的一个错误 一个迷惑的问题,请解答 怎样将已读取的txt文本中的指定内容改写,再保存?验证有效给分 String a=new String("123") 生成了一个String对象?(1 or 2) exe不能显示? 索源码----网吧管理 如何用已经配置好的tomcat服务器运行.java程序 jdk哪里有下载? 基于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位整型变量)