java中 String a=new String("1"+"2")创建了几个对象

谢谢你啊。。但是能在说具体点么。。我的理解是"1"跟"2"分别算两个对象,"12"在算一个。然后a也算一个。。。4个。。。求正解。。。... 谢谢你啊。。但是能在说具体点么。。
我的理解是
"1"跟"2"分别算两个对象,
"12"在算一个。
然后a也算一个。。。4个。。。求正解。。。
展开
 我来答
帐号已注销
2020-10-27 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:168万
展开全部

2个:a值和a引用地址,也叫引用对象。

引用变量和对象,对象一般通过new在堆中创建,s只是一个引用变量。

所有的字符串都是String对象,由于字符串文字的大量使用,java中为了节省时间,在编译阶段,会把字符串文字放在文字池中,文字池的一个好处就是可以把相同的字符串合并,占用一个空间,我们可以用==判断一下两个引用变量是否指向了一个地址即一个对象。

扩展资料:

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码;

存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。

参考资料来源:百度百科-Java

dreamwangqing
2011-01-06 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:161万
展开全部
4个对象,1个变量。
4个String对象:"1", "2", "12"(在共享池里,即在数据区里), new 出来的 "12" 是放在 堆内存中。
1个变量: 变量a放在栈内存中。
补充:
内存分为堆内存(存放new出来的对象),栈内存(存放局部变量),数据区(存放静态变量和字符串常量),代码区(存放JAVA中方法的代码)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涛哥说IT
2011-01-06 · 一个混迹于IT界十多年IT人
涛哥说IT
采纳数:43 获赞数:411

向TA提问 私信TA
展开全部
2个。
1,a值
2.a引用地址,也叫引用对象
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-01-06 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1382万
展开全部
一共有 5 个对象,其中 4 个 String 对象。
a 是引用,是一个 Reference 对象,存在栈里。

“1” 是一个 String 对象
“2” 也是一个 String 对象
“1” + “2” 产生一个新的 String 对象
new String(“12”) 又产生一个新的 String 对象
于是总共有 4 个 String 对象,其中前三个是 String 类型的常量,存放在栈区,最后 new 出来的那个 String 对象存放在堆中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一小块布
2012-04-10
知道答主
回答量:44
采纳率:0%
帮助的人:17万
展开全部
堆里一个,是new出来的
常量池里1个,是"12","1"+"2"编译器直接优化成"12"了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式