在java中,String a="a";String b="a";产生了几个对象???

 我来答
小聿旅行记
2012-04-20 · TA获得超过253个赞
知道答主
回答量:78
采纳率:100%
帮助的人:66.8万
展开全部
String a="a" 可能创建一个对象或者不创建对象,如果"a"这个字符串在java String池里不存在,会在java String池创建这个一个String对象("a").如果已经存在,a直接reference to 这个String池里的对象。

String str1 = new String("ABC") 至少创建一个对象,也可能两个。因为用到new 关键字,会在heap创建一个 str1 的String 对象,它的value 是 "ABC".同时,如果"ABC"这个字符串在java String池里不存在,会在java String池创建这个一个String对象("ABC").

String 有一个intern() 方法,native,用来检测在String pool是否已经有这个String存在。
希望对你有用!
追问
我觉得吧就创建了a和b两个引用对象,“a"是字符串常量,创不创建都不算是对象,欢迎指点..
追答
以你这条语句来看!是两个对象!只是它们都指向同一实例,因为你首先创建的对象a中的字符串是a ,b中的字符串也是a,java虚拟机为了提高效率并节约内存,对具有相同字符串序列的字符串直接量使用同一实例。
他们的指向同一对象。
String变量储存的是对String对象的引用,Stirng对象里储存的才是字符串的值。严格的讲,术语String对象和字符串值是不同的。但是在大多数情况下,他们之间的区别可以忽略。
小莫5154
2012-04-20 · TA获得超过157个赞
知道答主
回答量:139
采纳率:0%
帮助的人:82.5万
展开全部
两个对象。在实例化是在内存中分配了两个空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式