社区
Java SE
帖子详情
字符串相加产生几个对象
一路梦途
2020-07-21 08:58:43
String demo = "a" + "b";
这个说的默认jdk 产生三个对象,这个还好理解,但是说有的优化jdk会产生两个对象,产生那两个对象呢?又在那个内存区域呢
...全文
3429
3
打赏
收藏
字符串相加产生几个对象
String demo = "a" + "b"; 这个说的默认jdk 产生三个对象,这个还好理解,但是说有的优化jdk会产生两个对象,产生那两个对象呢?又在那个内存区域呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
老狼童鞋
2020-07-29
打赏
举报
回复
三个对象:“a”、“b”、“demo”-->指向“ab”
Forevermark993
2020-07-21
打赏
举报
回复
你通过ide,反编译看看就知道了,优化成 String demo = "ab"; 一个"ab" 一个demo了
hiboys
2020-07-21
打赏
举报
回复
产生三个对象,都在常量区。 a ="a"; b=a+"b" 这就又不一样了
JAVA
字符串
相加
创建
几个
对象
_别再问我 new
字符串
创建了
几个
对象
了!我来证明给你看!...
作者:Java中文社群我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。有人说创建了 1 个
对象
,也有人说创建了 2 个
对象
,还有人说可能创建了 1 个或 2 个
对象
,但谁都没有拿出干掉对方的证据,这就让我们这帮吃瓜群众们陷入了两难之中,不知道到底该信谁得。但是今天,老王就斗胆和大家聊聊这个话题...
JAVA
字符串
相加
创建
几个
对象
_面试题之String str = new String("abc"); 创建了
几个
对象
...
今天去面试的时候碰到了这个问题:String str = new String("abc"); 创建了
几个
对象
,回来自己研究并查阅资料才发现答错了。。网上的争论不少,有的说是两个,答案应该是:两个或一个理由解释如下:都了解java 的
字符串
常量缓冲区(
字符串
池,
字符串
常量池),如果代码是这样的:Stringstr2=newString("abc");并且 abc
字符串
之前没有用过,这毫无...
java
字符串
a+b到底生成
几个
对象
?
字符串
常量池保存在堆里面。为了节约空间,如果常量池里面有,就不需要创建
对象
,只需要返回常量池里面的引用;如果常量池没有,就先创建常量池里面的
对象
(方便其他地方用到),然后在堆里面在新建一个
对象
。
深入 -- 双引号
字符串
加号(+)拼接 创建了
几个
对象
?
双引号
字符串
加号(+)拼接 创建了
几个
对象
?结论先行:双引号
字符串
加号(+) 拼接,不论多少,只创建了一个
对象
。昨天看到一个题目,挺有意思的。大意是:String a = "1"+"2"+"3"+"4";创建了
几个
对象
??我当时第一反应是1个
对象
。为什么呢?因为 双引号
字符串
直接写是在编译器就直接生成一个
对象
,class在编译的时候直接放入
字符串
常量池的。这个知识点,可能时间有点久,自己也不太...
java
字符串
相加
在jvm中new多少个
对象
String s1 = "aaa"; String s2 = "bbb" + "ccc"; String s3 = s1 + "bbb"; String s4 = new String("aaa"); 分析此段代码在java虚拟机中
产生
了多少个
对象
一般回答可能是4个:aaa bbbccc aaabbb new的那个; 这个回答少了两个:StringBuilder toString的
对象
使用javap -v xxx.Class 或者javap -cxxx.Class反...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章