Java面试Day09-new String(“helloWorld“);创建了几个对象

对于这个问题,有两种可能性存在:

1.如果字符串"helloWorld"存在,则创建一个对象

2.如果字符串"helloWorld"不存在,则创建两个对象,一个是"helloWorld"这个字符串常量,一个是

"new String"这个实例对象。

new 是在程序运行的时候根据已加载的系统类String在堆内存里面去实例化一个字符串对象,在String的构造方法里面,传递了一个"helloWorld"字符串,因为String里面的字符串成员变量是final修饰的,所以是一个字符串常量,所以接下来JVM会拿"helloWorld"去字符串常量池里面去试图找到对应它的一个String的对象引用,如果拿不到,就会在堆内存里面去创建一个"helloWorld"的String对象,并且把引用保存到字符串常量池里面,后续如果再有字符串"helloWorld"的一个定义的时候,因为字符串常量池里面已经存在一个"helloWorld"的引用,所以只需要从常量池里面获取对应的引用就可以了,不需要再去创建。

而是勇者的手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值