|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Вопрос: Что случилось со следующей программой?
public class SomethingIsWrong {
public static void main(String[] args) {
Rectangle myRect;
myRect.width = 40;
myRect.height = 50;
System.out.println("myRect's area is "
+ myRect.area());
}
}
Ответ: код никогда не создает a
Вопрос: следующий код создает один массив и один строковый объект. Сколько ссылок на те объекты существует после того, как код выполняется? Любой - объект, имеющий право на сборку "мусора"?
... String[] students = new String[10]; String studentName = "Peter Smith"; students[0] = studentName; studentName = null; ...
Ответ: есть одна ссылка на students у массива и того массива есть одна ссылка на строку Peter Smith. Никакой объект не имеет право на сборку "мусора".
Вопрос: Как программа уничтожает объект, который она создает?
Ответ: программа явно не уничтожает объекты. Программа может установить все ссылки на объект к null так, чтобы это стало имеющим право на сборку "мусора". Но программа фактически не уничтожает объекты.
Осуществление: Фиксируйте вызванную программу SomethingIsWrong показанный рассматриваемый 1.
Ответ: См. SomethingIsRight:
public class SomethingIsRight {
public static void main(String[] args) {
Rectangle myRect = new Rectangle();
myRect.width = 40;
myRect.height = 50;
System.out.println("myRect's area is " + myRect.area());
}
}
Осуществление: Учитывая следующий class, вызванный NumberHolder, запишите некоторый код, который создает экземпляр class, инициализирует его две задействованных переменные, и затем выводит на экран значение каждой задействованной переменной.
public class NumberHolder {
public int anInt;
public float aFloat;
}
Ответ: См. NumberHolderDisplay:
public class NumberHolderDisplay {
public static void main(String[] args) {
NumberHolder aNumberHolder = new NumberHolder();
aNumberHolder.anInt = 1;
aNumberHolder.aFloat = 2.3f;
System.out.println(aNumberHolder.anInt);
System.out.println(aNumberHolder.aFloat);
}
}