社区
Web 开发
帖子详情
String创建对象问题
dreamhyz
2008-03-05 08:19:42
以下代码共创建了几个对象
String s1=new String("hello");
String s2=new String("hello");
String s3=s1;
String s4=s2;
请给出详细的解答,谢谢。
...全文
171
14
打赏
收藏
String创建对象问题
以下代码共创建了几个对象 String s1=new String("hello"); String s2=new String("hello"); String s3=s1; String s4=s2; 请给出详细的解答,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xclcsf
2008-09-23
打赏
举报
回复
只创建了2个对象,也就是s1和s2
hotleavegjz
2008-06-26
打赏
举报
回复
[Quote=引用 10 楼 Boloch 的回复:]
一共只有一个String对象被创建,因为对于String类型来说,是有一个字符池,也就是说当你创建一个String对象的时候,首先会去字符池看有没有匹配的String
所以,s1,s2,s3,s4是指向同一个地址!
[/Quote]
同意. 也就是说说S1是一个对象, S2是一个对象, 然后S3和S4只是对象的引用(出现在Stack中).
mayfancy
2008-06-04
打赏
举报
回复
String[] a=new String[9];
创建多少个对象?
dreamhyz
2008-03-10
打赏
举报
回复
谢谢各位的精彩解答。。。
但哪种答案才是标准的呢,
好像各家都言之有理啊。。
Boloch
2008-03-08
打赏
举报
回复
一共只有一个String对象被创建,因为对于String类型来说,是有一个字符池,也就是说当你创建一个String对象的时候,首先会去字符池看有没有匹配的String
所以,s1,s2,s3,s4是指向同一个地址!
genii2008
2008-03-07
打赏
举报
回复
顶楼上
sky_ccy
2008-03-06
打赏
举报
回复
String s1=new String("hello");
//创建2个对象,一个“hello",
//hello 是在内存中因为字符串是常量
//,一个s1,在堆栈中创建了个引用对象
String s2=new String("hello");
//创建2个,因为有new 就会创建对象'hello",再在内存中创建hello,在堆栈中创建一个s2,也是对hello的引用
String s3=s1;
//对象地址赋值,创建对象,因为没有new
String s4=s2;
//同上
总共有几个你加一下,
有空去看一下 孙鑫的 java无难事 的视频 满有帮助的
Dragon_sxw
2008-03-06
打赏
举报
回复
[Quote=引用 5 楼 sky_ccy 的回复:]
String s1=new String("hello");
//创建2个对象,一个“hello",
//hello 是在内存中因为字符串是常量
//,一个s1,在堆栈中创建了个引用对象
String s2=new String("hello");
//创建2个,因为有new 就会创建对象'hello",再在内存中创建hello,在堆栈中创建一个s2,也是对hello的引用
String s3=s1;
//对象地址赋值,创建对象,因为没有new
String s4=s2;
//同上
总共有几个你加一下,
有空去看一下 孙鑫的 java无…
[/Quote]
孙鑫讲的也不是百分百正确的。。。
dreamhyz
2008-03-06
打赏
举报
回复
THANK YOU
qiuqiupeng
2008-03-06
打赏
举报
回复
[Quote=引用 1 楼 Mailbomb 的回复:]
String s1=new String("hello");
//创建2个对象,一个“hello",因为字符串是常量,一个s1,因为new
String s2=new String("hello");
//创建1个,因为'hello"已存在,所以不创建,创建一个s2,因为new
String s3=s1;
//对象地址赋值,不创建对象,因为没有new
String s4=s2;
//同上
总计创建3个对象
[/Quote]
三个,就是这样的,看看java虚拟机体系结构就知道了
dreamhyz
2008-03-05
打赏
举报
回复
谢谢
guazixing
2008-03-05
打赏
举报
回复
不敢苟同楼上的说法。具体的我也说不清楚。关注达人的解释把。
genii2008
2008-03-05
打赏
举报
回复
楼上正解
网络咖啡
2008-03-05
打赏
举报
回复
String s1=new String("hello");
//创建2个对象,一个“hello",因为字符串是常量,一个s1,因为new
String s2=new String("hello");
//创建1个,因为'hello"已存在,所以不创建,创建一个s2,因为new
String s3=s1;
//对象地址赋值,不创建对象,因为没有new
String s4=s2;
//同上
总计创建3个对象
关于
String
如何
创建对象
本文主要根据多种案例讨论了
String
到底创建了多少个对象?咋创建的?
String
创建了几个对象?
1.
String
创建对象
问题
1.1 字符串常量池 定义:jvm针对字符串存储的一个特定内存区域。且里面内容都具有唯一性 1.2
创建对象
单个说明 **(1).
String
s = “abc”;**在创建这个对象时,会在常量池中看有没有abc这个...
Java之
String
系列--
创建对象
的个数及其原理
String
的原理是面试中经常问到的,其中很常见的
问题
就是:某某语句会创建多少个对象。本文就介绍这个知识点。
Java中
String
创建对象
过程及其运算原理
,1.1、new
String
(“hello”)创建了几个对象 不考虑其他因素,
String
b = new
String
("hello");这行代码到底创建了几个对象? 情况一,创建...
String
对象的创建详解
网上对于
String
对象的创建说的五花八门,各有各的说法,越看越懵逼,所以...2.
String
的引用,也可理解为指针,是不算
创建对象
的。不知道怎么解释,引用是放在java栈里的,为什么就不算创建呢。然后我们再来看
String
...
Web 开发
81,092
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章