Что будет, если попытаться откомпилировать и запустить следующий код:
int _ = 10;
System.out.println(_);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Начиная с версии Java 8 инструкция int _ = 10; не откомпилируется.
в. Начиная с версии Java 9 инструкция int _ = 10; не откомпилируется.
г. В любой версии Java код откомпилируется, но выпадет в ошибку во время выполнения.
в. Начиная с версии Java 9 инструкция int _ = 10; не откомпилируется.
В Java 9 нижнее подчёркивание "_" стало ключевым словом и поэтому больше может быть идентификатором. До 9-й версии нижнее подчёркивание могло входить в состав идентификатора и даже быть единственным символом в составе идентификатора.
Что будет, если попытаться откомпилировать и запустить следующий код:
String 3rdParty = "Vector Co., Ltd.";
System.out.println(3rdParty);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Ни в одной версии Java код не откомпилируется.
б. Ни в одной версии Java код не откомпилируется.
Идентификатор не может начинаться с цифры ни в одной версии Java.
Что будет, если попытаться откомпилировать и запустить следующий код:
final String FIRST-PLAYER = "user";
System.out.println(FIRST-PLAYER);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Ни в одной версии Java код не откомпилируется.
б. Ни в одной версии Java код не откомпилируется.
Идентификатор не может содержать знак минус "-" ни в одной версии Java.
Что будет, если попытаться откомпилировать и запустить следующий код:
String 龍 = "dragon";
System.out.println(龍);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Ни в одной версии Java код не откомпилируется.
а. В любой версии Java код откомпилируется и отработает без проблем.
龍 – алфавитный символ и может входить в состав идентификаторов Java. Код откомпилируется и выполнится без проблем и выведет в консоль слово "dragon".
Что будет, если попытаться откомпилировать и запустить следующий код:
String ☕ = "coffe";
System.out.println(☕);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Ни в одной версии Java код не откомпилируется.
б. Ни в одной версии Java код не откомпилируется.
☕ (как и другие эмодзи) не является алфавитным символом, символом подчёркивания или знаком доллара и не может входить в состав идентификаторов.
Что будет, если попытаться откомпилировать и запустить следующий код:
String String = "String";
System.out.println(String);
а. В любой версии Java код откомпилируется и отработает без проблем.
б. Ни в одной версии Java код не откомпилируется.
в. Код откомпилируется, но во время выполнения вылетит в ошибку.
а. В любой версии Java код откомпилируется и отработает без проблем.
Слово String не является ключевым словом языка и содержит только английские символы, а значит может быть именем переменной. Разумеется, смущает тот факт, что имя класса совпадает с именем переменной, но для Java это не проблема. Создайте новый класс с любым именем (например, Lesson) и объявите переменную с именем Lesson. Как бы вы ни использовали имя класса (например, для вызова статических методов) и одноимённую переменную, Java всегда будет знать, когда вы используете имя класса, а когда имя переменной.
Что будет, если попытаться откомпилировать и запустить следующий код:
int x = 1;
while (x < 3) {
int y = x++;
}
System.out.println(x);
а. Код откомпилируется, отработает и выведет на консоль 3.
б. Возникнет ошибка компиляции: variable y is already defined.
в. Код откомпилируется, но возникнет ошибка во время выполнения программы.
а. Код откомпилируется, отработает и выведет на консоль 3.
Фигурные скобки управляющего оператора while создают собственную область видимости переменных. На каждой итерации цикла мы каждый раз и заходим и выходим из этой области. Таким образом, на каждой итерации мы можем заново создавать переменную y, так как она была уничтожена на выходе из предыдущей итерации.
Что будет выведено на консоль, если откомпилировать и запустить следующий код:
public static void main(String[] args) {
int a = 1;
int b = 4;
countSum(a, b);
System.out.println(a);
}
public static void countSum(int x, int addendum) {
x = x + addendum;
}
а. 1
б. 5
а. 1
Поскольку в Java переменные передаются в методы только по значению, то параметр x метода countSum действительно пример значение 1, как у аргумента a. Но x и a расположены в разных ячейках в памяти и как бы ни менялось значение x внутри метода, это никак не повлияет на значение a. Так что на консоль попадёт изначальное значение a равное 1.
Начиная с какой строки, объект, помеченный в комментарии как bobik будет доступен для сборщика мусора?
class Animal {
public static void main(String[] args) {
Animal dog1 = new Animal(); //bobik
Animal dog2 = new Animal(); //tobik
dog1 = dog2; //1
dog1 = null; //2
dog2 = null; //3
}
}
а. Со строки, помеченной //1.
б. Со строки, помеченной //2.
в. Со строки, помеченной //3.
а. Со строки, помеченной //1.
Изначально на объект bobik ссылается переменная dog1. В строке, помеченной //1, этой переменной присваивается ссылка на тот же объект, на который ссылается переменная dog2, то есть на объект tobik.
С этого момента на объект bobik не ссылается ни одна переменная и объект становится доступен для сборщика мусора.