社区
不良使(移动开发者社区)
交流讨论
帖子详情
String a = “a“ + new String(“b“) 创建了几个对象?
leo&ZOOM
2023-10-18 18:57:19
String a = “a“ + new String(“b“) 创建了几个对象?
...全文
354
回复
打赏
收藏
String a = “a“ + new String(“b“) 创建了几个对象?
String a = “a“ + new String(“b“) 创建了几个对象?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
44、
String
a = “a“ +
new
String
(“b“)
创建
了
几个
对象
?
小景哥哥博客
String
a = “a” +
new
String
(“b”)
创建
了
几个
对象
? 常量和常量拼接仍是常量,结果在常量池,只要有变量参与拼接结果就是变量,存在堆。 使用字面量时只
创建
一个常量池中的常量,使用
new
时如果常量池中没有该值就会在常量池中新
创建
,再在堆中
创建
一个
对象
引用常量池中常量。因此
String
a = "a" +
new
String
("b") 会
创建
四个
对象
,常量池中的 a 和 b,堆中的 b 和堆中的 ab。 ...
String
a =
new
String
(“a“+“b“)到底产生了多少
对象
?
在做百度的笔试题的时候,出现了这样的一道题目
String
a =
new
String
(“a”+“b”) 问产生了多少个
对象
? 我们首先来复习一下一些基本的常识 1、当我们使用
String
a = "a",生成一个
对象
的时候会发生什么事情? 首先JVM会去找常量池,看看有没有“a”这个字符串常量, 如果有得话,直接返回引用 如果没有得话,在常量池
创建
一个字面量,并返回引用 //这里只会
创建
一个
对象
,就是常量池里面的
String
a = "abc";
String
b =.
String
a="a"+"b"+"c"在内存中
创建
几个
对象
? &&
String
s=
new
String
("abc")
创建
了
几个
对象
?
String
a="a"+"b"+"c"在内存中
创建
几个
对象
? 1个
String
对象
"a"+"b"+"c"在编译期已经常量折叠为"abc" 变量a获得是"abc"。 甲骨文jdk(1.7),javac会进行常量折叠,全字面量字符串相加是可以折叠为一个字面常量,而且是进入常量池的。这个问题涉及到了字符串常量池和字符串拼接
String
a=
String
a=
new
String
("b","c")会
创建
几个
对象
?
String
a=
new
String
("b","c")会
创建
几个
对象
?
String
a=
new
String
("b"+"c")又会
创建
几个
?为什么? 1.
String
a=
new
String
("b"+"c"); b一个 c一个 b+c一个 a一个 总共四个 1、Java中
New
出的
对象
则始终被JVM存放在堆中,
创建
的字串常量则始
从jdk1.8版本的jvm角度来理解
String
str = "a" + "b";
创建
了
几个
对象
前言 话不多说直接进入正题 一、三道面试题 Q1:如下代码一共
创建
几个
对象
?
String
str = "a" + "b"; A1:emmm,刷过面试题的肯定会这么回答:三个!因为
String
是final的,所以会
创建
"a", "b"两个
String
对象
以及一个str
对象
,它指向"ab"这一个字符串。我相信大多数人都是这么回答的,那么到底是不是呢?咱们以jdk1.8中jvm的角度来验证...
不良使(移动开发者社区)
38,828
社区成员
440
社区内容
发帖
与我相关
我的任务
不良使(移动开发者社区)
你无法游向新的地平线,除非你有勇气告别海滩 专注Android+IOS+微信小程序 学习与问题解决,建造全网一流移动端问题解决社区 前后端文章也可以发哈
复制链接
扫一扫
分享
社区描述
你无法游向新的地平线,除非你有勇气告别海滩 专注Android+IOS+微信小程序 学习与问题解决,建造全网一流移动端问题解决社区 前后端文章也可以发哈
android
ios
微信小程序
个人社区
安徽省·合肥市
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章