java创建的对象数
今天,我在考试中遇到了以下问题:
String[] subjects=new String[10];
String subname="POPL-201617";
subjects[0]=subName;
subName=null;
创建了多少个对象
我的答案是:将创建11个对象。10,其中一个是字符串文字
代码执行后,存在多少对这些对象的引用
我的回答是:总共有一处提到“POPL-201617”
解释这些对象是否符合垃圾收集的条件
我的回答是:因为有“POPL-201617”的引用,所以它不符合垃圾收集的条件。即使没有引用,它也是一个内部字符串,因此不能被垃圾收集。其余的都有资格进行垃圾收集
我对第一项声明感到关切。我们没有将任何参数传递给String类的构造函数。它将形成对象还是只在堆上分配空间
另外,我的理解是,受试者最初指向数组的底部。因此,第一个元素最初有一个引用。但是由于subjects[0]现在引用POPL,所以no数组元素有任何引用
我说得对吗?还是我遗漏了什么
# 1 楼答案
唯一遗漏的是
String[] subjects=new String[10]
只创建了一个类型为String[]
的对象