java中 String a=new String("1"+"2")创建了几个对象
谢谢你啊。。但是能在说具体点么。。我的理解是"1"跟"2"分别算两个对象,"12"在算一个。然后a也算一个。。。4个。。。求正解。。。...
谢谢你啊。。但是能在说具体点么。。
我的理解是
"1"跟"2"分别算两个对象,
"12"在算一个。
然后a也算一个。。。4个。。。求正解。。。 展开
我的理解是
"1"跟"2"分别算两个对象,
"12"在算一个。
然后a也算一个。。。4个。。。求正解。。。 展开
展开全部
2个:a值和a引用地址,也叫引用对象。
引用变量和对象,对象一般通过new在堆中创建,s只是一个引用变量。
所有的字符串都是String对象,由于字符串文字的大量使用,java中为了节省时间,在编译阶段,会把字符串文字放在文字池中,文字池的一个好处就是可以把相同的字符串合并,占用一个空间,我们可以用==判断一下两个引用变量是否指向了一个地址即一个对象。
扩展资料:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码;
存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。
参考资料来源:百度百科-Java
展开全部
4个对象,1个变量。
4个String对象:"1", "2", "12"(在共享池里,即在数据区里), new 出来的 "12" 是放在 堆内存中。
1个变量: 变量a放在栈内存中。
补充:
内存分为堆内存(存放new出来的对象),栈内存(存放局部变量),数据区(存放静态变量和字符串常量),代码区(存放JAVA中方法的代码)。
4个String对象:"1", "2", "12"(在共享池里,即在数据区里), new 出来的 "12" 是放在 堆内存中。
1个变量: 变量a放在栈内存中。
补充:
内存分为堆内存(存放new出来的对象),栈内存(存放局部变量),数据区(存放静态变量和字符串常量),代码区(存放JAVA中方法的代码)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2个。
1,a值
2.a引用地址,也叫引用对象
1,a值
2.a引用地址,也叫引用对象
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一共有 5 个对象,其中 4 个 String 对象。
a 是引用,是一个 Reference 对象,存在栈里。
“1” 是一个 String 对象
“2” 也是一个 String 对象
“1” + “2” 产生一个新的 String 对象
new String(“12”) 又产生一个新的 String 对象
于是总共有 4 个 String 对象,其中前三个是 String 类型的常量,存放在栈区,最后 new 出来的那个 String 对象存放在堆中。
a 是引用,是一个 Reference 对象,存在栈里。
“1” 是一个 String 对象
“2” 也是一个 String 对象
“1” + “2” 产生一个新的 String 对象
new String(“12”) 又产生一个新的 String 对象
于是总共有 4 个 String 对象,其中前三个是 String 类型的常量,存放在栈区,最后 new 出来的那个 String 对象存放在堆中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆里一个,是new出来的
常量池里1个,是"12","1"+"2"编译器直接优化成"12"了
常量池里1个,是"12","1"+"2"编译器直接优化成"12"了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询