今天去笔试一家外包公司,有这个一道笔试题,自己答错了,回来查看了一哈资料,分享一哈!
问:String s1="aa"; String s2="aa"; 这两段代码创建了几个对象?
本人回答的是3个。当时是这样想的:首先String s1="aa" 会先在常量区找aa,没有自己创建一个,这里就一个对象了;s1我也想当然的觉得是创建了一个对象,这就两个了;String s2="aa";此时aa在常量区已经存在了,就不会再创建,只创建s2,就是第三个对象,所以答案就是3个,我还信心满满地认为这个答案是正确的,其实我错了!
String不在我们8大基本类型之中,是一个java.lang.String 的类,在Java中对象的创建都是通过构造器使用关键字new出来的,但是String也可以直接申明一个String s1,但是并没有创建这个对象s1,只表示s1是String类型的,所以这题答案是:只穿件了一个对象aa.
<