String a = "123"创建了几个对象?

昨晚群友分享了个问题,感觉挺有意思,分享下

问题

先说答案,是A,3个。


分析如下:

 int a :int是八种基本数据类型,存储在栈中,所以不算新建对象了。

String b: 算是一个,创建的对象放入堆中的常量池了。

String c:引用b之前在常量池中创建过的内容了,不算是新建了对象

String[] d: 创建了两个对象,因为“welcome to casic”之前在常量池中创建过了,无需再次创建



那么String a = new String("123");是创建了几个对象呢?

答:2个,一个new string()对象存储在堆中,一个“123”存储在常量池中。

你可能感兴趣的:(String a = "123"创建了几个对象?)