Java中 String s = "aa" + "bb" 创建了几个对象?
答案:6 悬赏:70 手机版
解决时间 2021-02-03 14:58
- 提问者网友:眉目添风霜
- 2021-02-03 05:19
如果是两个的话。那结果"aabb"存放在哪里??
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-02-03 05:44
标准答案 只建立一个对象 !
String s ="aa"+"bb",
在编译时候进行了优化处理。变成 String s ="aabb"; 这个和java 本身没关系。这是编译优化原理,
编译器对常量运算,会进行优化。
分析一下.class 文件就知道了。
如果是这样情况就不一样了!
String s1="aa";
String s2="bb"+s1;
这个创建几个对象呢。真确的是编译后有两个对象会产生:“aa","bb".
运行时又产生对象s2(严格说是个对象的引用)
总结,编译器对,常量运算,会进行编译优化处理。
但对于带有变量的运算。只有运行程序才进行处理!
String s ="aa"+"bb",
在编译时候进行了优化处理。变成 String s ="aabb"; 这个和java 本身没关系。这是编译优化原理,
编译器对常量运算,会进行优化。
分析一下.class 文件就知道了。
如果是这样情况就不一样了!
String s1="aa";
String s2="bb"+s1;
这个创建几个对象呢。真确的是编译后有两个对象会产生:“aa","bb".
运行时又产生对象s2(严格说是个对象的引用)
总结,编译器对,常量运算,会进行编译优化处理。
但对于带有变量的运算。只有运行程序才进行处理!
全部回答
- 1楼网友:爱难随人意
- 2021-02-03 11:56
一个
- 2楼网友:未来江山和你
- 2021-02-03 10:41
就一个S 里边aabb,想想,两个方哪去啊!就是aa+bb赋值给s。你可以到程序里边去试啊!那才是真理。
- 3楼网友:深街酒徒
- 2021-02-03 09:04
一个,就是那个s,但是关于aa bb 放哪的问题我就不清楚了
- 4楼网友:孤独入客枕
- 2021-02-03 07:59
你好!
我觉得是三个,因为Java中字符串不再是字符数组,而是对象.用s[0]访问不到'a'.
注:个人意见仅供参考,不一定正确.
希望对你有所帮助,望采纳。
- 5楼网友:duile
- 2021-02-03 07:00
两个对象,都存放在临时变量中
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯