Почему System.in объект ввода?
Для чтения символа с клавиатуры достаточно вызвать метод System.in.read() , где System. in — объект ввода (с клавиатуры), дополняющий объект вывода System.out . Давайте разберемся: System.in.read() — System это класс, in это переменная-константа, read() — это метод. Хотелось бы спросить почему в книге написано вот так:
Для чтения символа с клавиатуры достаточно вызвать метод System.in.read(), где System. in — объект ввода (с клавиатуры)
Почему System.in объект ввода? Почему не написано что за «входящий поток» отвечает константа in класса System , а написано что это объект ввода? Просто под объектом я представляю экземпляр класса, то есть аля:
System systemObj = new System();
Какой способ проверки «является ли объект экземпляром класса» быстрее?
Интересный вопрос.
Oчевидно, что способ getClass() != o.getClass() будет работать быстрее, чем instanceof , т.к. это только лишь сравнение ссылок.
Но эти два способа, в некоторых ситуациях, не эквиваленты между собой.
Приведу пример:
class Type<> SubType extends Type<>
Если мы напишим:
Type type = new SubType() if(type instanceof Type) System.out.pritln("it's working!") if(type.getClass() == Type.class) System.out.pritln("it is not working!")
Первая проверка выполнится, а вторая нет.
Теперь попробуем разобраться как реализована конструкция instanceof .
При компиляции она пребразуется в специальный для нее байткод инструкцию instanceof . Заглянем в исходники hotspot и посмотрим, как она генерируется в assembler код. Будет смотреть только для архитектуры x86.
Находим место, где обрабатывается intanceof jit компилятором:
. > else if (code == lir_instanceof) < Register obj = op->object()->as_register(); Register dst = op->result_opr()->as_register(); Label success, failure, done; emit_typecheck_helper(op, &success, &failure, &failure); . > .
. > else < // perform the fast part of the checking logic __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, success_target, failure_target, NULL); // call out-of-line instance of __ check_klass_subtype_slow_path(. ): __ push(klass_RInfo); __ push(k_RInfo); __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::slow_subtype_check_id))); __ pop(klass_RInfo); __ pop(k_RInfo); // result is a boolean __ cmpl(k_RInfo, 0); __ jcc(Assembler::equal, *failure_target); // successful cast, fall through to profile or jump >.
Здесь мы можем видеть две проверки check_klass_subtype_fast_path и check_klass_subtype_slow_path.
Во время работы программы jvm собирает некоторую информацию и статистику. Например, она может сохранять результаты предыдущих выполений instanceof и на основе этого делать предположения о типе. Более подробно об этом можно прочитать здесь . Быстрая проверка основывается на этой оптимизации и она не всегда может выполняться успешно, тогда вступает в дело более медленная check_klass_subtype_slow_path .
Для дальнейшего понимания, следует немного рассказать про класс src/hotspot/share/oops/klass.cpp . В нем содержится информация (барабанная дробь) о классе. Там есть много интересных полей, но нас интересует следующее:
// The fields _super_check_offset, _secondary_super_cache, _secondary_supers // and _primary_supers all help make fast subtype checks. See big discussion // in doc/server_compiler/checktype.txt // Where to look to observe a supertype (it is &_secondary_super_cache for // secondary supers, else is &_primary_supers[depth()]. juint _super_check_offset; // Cache of last observed secondary supertype Klass* _secondary_super_cache; // Array of all secondary supertypes Array* _secondary_supers; // Ordered list of all primary supertypes Klass* _primary_supers[_primary_super_limit];
Видно, что в нем содержится массив со всеми родительскими типами, так же есть несколько полей для быстрой проверки типов .
Не будем рассматривать метод:
Там происходит лишь проверка закэшированных значений с проверяемым типом. Гораздо интереснее метод check_klass_subtype_slow_path
. Label L_fallthrough; int label_nulls = 0; if (L_success == NULL) < L_success = &L_fallthrough; label_nulls++; >if (L_failure == NULL) < L_failure = &L_fallthrough; label_nulls++; >// a couple of useful fields in sub_klass: int ss_offset = in_bytes(Klass::secondary_supers_offset()); int sc_offset = in_bytes(Klass::secondary_super_cache_offset()); Address secondary_supers_addr(sub_klass, ss_offset); Address super_cache_addr( sub_klass, sc_offset); // Do a linear scan of the secondary super-klass chain. // This code is rarely used, so simplicity is a virtue here. // The repne_scan instruction uses fixed registers, which we must spill. // Don't worry too much about pre-existing connections with the input regs. assert(sub_klass != rax, "killed reg"); // killed by mov(rax, super) assert(sub_klass != rcx, "killed reg"); // killed by lea(rcx, &pst_counter) // Get super_klass value into rax (even if it was in rdi or rcx). bool pushed_rax = false, pushed_rcx = false, pushed_rdi = false; if (super_klass != rax || UseCompressedOops) < if (!IS_A_TEMP(rax)) < push(rax); pushed_rax = true; >mov(rax, super_klass); > if (!IS_A_TEMP(rcx)) < push(rcx); pushed_rcx = true; >if (!IS_A_TEMP(rdi)) < push(rdi); pushed_rdi = true; >// We will consult the secondary-super array. movptr(rdi, secondary_supers_addr); // Load the array length. (Positive movl does right thing on LP64.) movl(rcx, Address(rdi, Array::length_offset_in_bytes())); // Skip to start of data. addptr(rdi, Array::base_offset_in_bytes()); // Scan RCX words at [RDI] for an occurrence of RAX. // Set NZ/Z based on last compare. // Z flag value will not be set by 'repne' if RCX == 0 since 'repne' does // not change flags (only scas instruction which is repeated sets flags). // Set Z = 0 (not equal) before 'repne' to indicate that class was not found. testptr(rax,rax); // Set Z = 0 repne_scan(); // Unspill the temp. registers: if (pushed_rdi) pop(rdi); if (pushed_rcx) pop(rcx); if (pushed_rax) pop(rax); if (set_cond_codes) < // Special hack for the AD files: rdi is guaranteed non-zero. assert(!pushed_rdi, "rdi must be left non-NULL"); // Also, the condition codes are properly set Z/NZ on succeed/failure. >if (L_failure == &L_fallthrough) jccb(Assembler::notEqual, *L_failure); else jcc(Assembler::notEqual, *L_failure); // Success. Cache the super we found and proceed in triumph. movptr(super_cache_addr, super_klass); if (L_success != &L_fallthrough) < jmp(*L_success); >.
Могу ошибаться, но это очень похоже на цикл с индексом rdi, где происходит итерация по массиву _secondary_supers из класса Klass .
Теперь можно подытожить. JVM пытается производить оптимизации, но в худшем случае мы имеем что instanceof будет выполняться линейно, пробегая по всей иерархии классов.
Java | Вопросы с ответами
2. Дан код:
public class Quest4 public static void main(String[] args) byte b[] = new byte[80];
for (int i=0; i System.out.print(“Ok”);
>
>
Результатом компиляции запуска будет?
>> ошибка компиляции, так как метод read() может порождать исключительную ситуацию типа IOException.
3. Программы Java категория Приложение (application)?
>> аналог “обычной” прикладной программы.
4. Программы Java категория Апплет (applet)?
>> специализированная программа с ограниченными возможностями, работающая в окне WWW-документа под управлением браузера.
5. Программы Java категория Сервлет (servlet)?
>> специализированная программа с ограниченными возможностями, работающая в WWW на стороне сервера. Используется преимущественно в рамках технологии JSP для программирования WWW-документов со стороны сервера.
6. Программы Java категория Серверное приложение (Enterprise application)?
>> предназначено для многократного использования на стороне сервера.
7. Программы Java категория Библиотека (Java Class Library)?
>> библиотека классов, либо NetBeansModule – модуль платформы NetBeans) – предназначена для многократного использования программами Java.
8. Какие из следующих строк скомпилируются без ошибки?
>> int i = 32565;
— float f = 7.0;
— char c = «z»;
— byte b = 255;
— boolean n = null;
9. Какие из следующих строк скомпилируются без ошибки?
>> int j = ’ъ’;
— float f = 7.0;
— char c = «z»;
— byte b = 255;
— boolean n = null;
10. Какие варианты записи оператора условного перехода корректны?
>> if (i
— if (i
— if [i — if then System.out.print(«-6-«);
12. Какие из следующих идентификаторов являются корректными?
>> _int;
— 2int;
— int_#;
— #int
— _#int
13. Назначение утилиты javac?
>> Компилятор в режиме командной строки для программ, написанных на языке Java.
14. Назначение утилиты java?
>> Утилита для запуска в режиме командной строки откомпилированных программ-приложений.
15. Назначение утилиты appletviewer?
>> Утилита для запуска на исполнение и отладку апплетов без браузера. При этом не гарантируется работоспособность отлаженного апплета в браузере.
16. Назначение утилиты jdb?
>> Отладчик программ, написанных на языке Java.
17. Назначение утилиты javadoc?
>> Генератор документации по классом на основе комментариев, начинающихся с /**.
18. Назначение утилиты jar?
>> Создание и управление Java-архивами jar.
19. Назначение утилиты javah?
>> Генератор заголовочных файлов C/C++ для подключения к программам Java внешних библиотек C/C++ на основе интерфейса JNI.
20. Назначение утилиты javap?
>> Дизассемблер классов.
21. Назначение утилиты extcheck?
>> Утилита для обнаружения конфликтов между файлами архивов jar.
22. Назначение утилиты native2ascii?
>> Утилита для конвертации в режиме командной строки параметра, передаваемого в виде текста на национальном алфавите, в последовательность символов UNICODE.
23. Управляющая последовательность: \a ?
>> звонок.
24. Управляющая последовательность: \b ?
>> возврат на один символ назад.
25. Управляющая последовательность: \f ?
>> перевод на новую страницу.
26. Управляющая последовательность: \n ?
>> перевод на новую строку.
27. Управляющая последовательность: \r ?
>> возврат к началу строки.
28. Управляющая последовательность: \t ?
>> горизонтальная табуляция.
29. Управляющая последовательность: \v ?
>> вертикальная табуляция.
30. Управляющая последовательность: \’ ?
>> кавычка.
31. Управляющая последовательность: \” ?
>> двойные кавычки.
32. Управляющая последовательность: \\ ?
>> обратная косая черта.
33. Управляющая последовательность: \u ?
>> начало кодировки символа Unicode.
34. Оператор ~ ?
>> Оператор побитового дополнения (побитовое “не”).
35. Оператор ^ ?
>> Оператор “исключающее или” (XOR).
36. Оператор & ?
>> Оператор “побитовое и” (AND).
37. Оператор | ?
>> Оператор “побитовое или” (OR).
38. Оператор ! ?
>> Оператор “НЕ”.
39. Оператор && ?
>> Оператор “логическое И” (AND).
40. Оператор || ?
>> Оператор “ логическое ИЛИ” (OR).
41. Оператор >> Оператор левого побитового сдвига.
42. Оператор >>> ?
>> Оператор беззнакового правого побитового сдвига.
43. Оператор >> ?
>> Оператор правого побитового сдвига с сохранением знака отрицательного числа.
44. Для чего предназначен пакет java.applet?
>> Классы, необходимые для создания аплетов.
45. Для чего предназначен пакет java.awt?
>> Графический пользовательский интерфейс на базе AbstractWindowsToolkit.
46. Для чего предназначен пакет java.awt.color?
>> Пространства цветов для AWT.
47. Для чего предназначен пакет java.awt.datatransfer?
>> Передача данных внутри программы и между программами.
48. Для чего предназначен пакет java.awt.dnd?
>> Поддержка технологии drag-and-drop.
49. Для чего предназначен пакет java.awt.event?
>> Обработка событий AWT.
50. Для чего предназначен пакет java.awt.im?
>> Поддержка нестандартных методов ввода текста.
51. Для чего предназначен пакет java.awt.im.spi?
>> Интерфейсы для создания нестандартных методов ввода текста.
52. Для чего предназначен пакет java.lang?
>> Базовые классы языка Java.
53. Для чего предназначен пакет java.lang.ref?
>> Управление ссылками на объекты.
54. В папке build проекта NetBeans находятся?
>> хранятся скомпилированные файлы классов, имеющие расширение .class.
55. В папке dist проекта NetBeans находятся?
>> файлы, предназначенные для распространения как результат компиляции (модуль JAR приложения или библиотеки, а также документация к нему).
56. В папке nbproject проекта NetBeans находятся?
>> находится служебная информация по проекту.
57. В папке src проекта NetBeans находятся?
>> исходные коды классов. Кроме того, там же хранится информация об экранных формах (которые будут видны на экране в виде окон с кнопками, текстом и т.п.). Она содержится в XML-файлах, имеющих расширение .form.
58. В папке test проекта NetBeans находятся?
>> сопроводительные тесты, предназначенные для проверки правильности работы классов проекта.
59. Команды документации (символы метаданных) @see?
>> применяется для создания в документе гиперссылок на другие комментарии. Можно использовать для любых конструкций (классов, методов и т.д. ).
60. Команды документации (символы метаданных) @since?
>> Информация о версии JDK, начиная с которой введён или работоспособен класс или интерфейс.
61. Команды документации (символы метаданных) @throws?
>> Информация об исключительных ситуациях, которые могут возбуждаться методом.
62. Команды документации (символы метаданных) @param?
>> информация о параметре метода.
63. Команды документации (символы метаданных) @deprecated?
>> информация о том, что данный метод устарел и в последующих версиях будет ликвидирован. При попытке использования таких методов компилятор выдаёт программисту предупреждение (warning) о том, что метод устарел, хотя и компилирует проект.
64. Целые типы, тип byte?
>> Однобайтовое целое число (8-битное целое со знаком).
65. Целые типы, тип short?
>> Короткое целое число (16- битное целое со знаком).
66. Целые типы, тип char?
>> Символьный тип (беззнаковое 16- битное целое).
67. Целые типы, тип int?
>> Целое число (32- битное целое со знаком).
68. Целые типы, тип long?
>> Длинное целое число (64- битное целое со знаком).
69. Выберите правильный вариант a,b,c,d чтобы результат выражения a&&b || c^ d являлся истиной?
>> все ответы верны
— a=true, b=true, c=false, d=true
— a=false, b=false, c=false, d=true
— a=false, b=false, c=true, d=false
— a=true, b=true, c=true, d=true
70. Выберите правильный вариант a,b,c,d чтобы результат выражения a&&(b || c)^ d являлся ложью?
>> все ответы верны
— a=false, b=true, c=false, d=true
— a=true, b=true, c=false, d=true
— a=false, b=false, c=false, d=true
— a=false, b=false, c=false, d=false
71. Вещественные типы, размер типа float?
>> 4 байта
72. Вещественные типы, размер типа double?
>> 8 байт
73. Float f1 = new Float(Float.NaN);
Float f2 = new Float(Float.NaN);
System.out.println( «»+ (f1 == f2)+» «+f1.equals(f2)+ » «+(Float.NaN == Float.NaN) );
Что будет выведено в результате выполнения данного куска кода?
>> false true false
74. int i = 0;
i++;
System.out.print(i);
i = i++;
System.out.println(i); Что выведет данный код?
>> 11
75. int i = 0, j = 5;
tp: for (;;) < i++;
for (;;) < if (i >—j) breaktp; > >
System.out.println(«i =» + i + «, j = » + j);> Что произойдет во время компиляции и выполнения данного фрагмента кода?
>> Ошибка компиляции.
76. int i = 1; //1
i = -+(10 + 2 + i); //2
++i—; //3
System.out.println(i); В какой строке(-ах) кода содержится ошибка?
>> 3.
77. Integer i = newInteger(«10»);
if (i.toString().intern() == i.toString().intern()) System.out.println(«Равный»);
> else System.out.println(«Не равный»); >> Результат выполнения программы?
>> Выведется “Равный”.
78. public class Main public static void main(String[] args) Boolean b1 = new Boolean(«true»); System.out.print(b1 +» «);
b1 =new Boolean(«tRuE»); System.out.print(b1 +» «);
b1 =new Boolean(«test»); System.out.print(b1 +» «);
b1 =new Boolean(true); System.out.print(b1 +» «);
b1 = true; System.out.println(b1); >> каким будет результат компиляции и выполнения кода?
>> true true false true true
79. public class Test static < System.out.print("Bo-Bo ");>
public static void main(String[] args) System.out.print(«Hello, World! «); >
static < System.out.println("Go-Go "); System.exit(0); >> что выведет код?
>> Bo-Bo Go-Go
80. int i = 1; //1
i = -+(10 + 2 + 1); //2
++i—; //3
System.out.println(i); В какой строке(-ах) кода содержится ошибка?
>> 3
81. Integer a = 128; Integer b = 128;
Integer c = -128; Integer d = -128;
System.out.print((a == b)+» «);
System.out.println(c == d); Что будет выведено на экран?
>> false true
82. Boolean b = new Boolean(«Hello»);
System.out.println(b); Какой результат выполнения данного кода?
>> false
83. public class Test static < i =5; >
static int i = 6;
public static void main(String[] args) System.out.println(i); >> Выберите правильный ответ?
>> 6
84. public class MathTest public static void main(String[] args) System.out.print(((-7 % 5)>(7 % -5))+» «);
System.out.println(Math.abs(Math.ceil(-2.5))
Что будет напечатано в результате выполнения данного кода?
>> false true
85. int i = 0;
System.out.print(i++);
System.out.println(i); Результат кода?
>> 01
86. int j = 0;
System.out.print(++j);
System.out.println(j); Результат кода?
>> 11
87. public class TestClass
int i = getInt();
int k = 20;
public int getInt()
public static void main(String[] args)
TestClass t = new TestClass ();
System.out.println(t.i+» «+t.k); >>
Что выведет этот код?
>> Будет выведено на печать 1 20
88. int x = 0;
int y = 10;
do< y--;
++x;> while(x<5);
System.out.print(x+»,»+y); >
Что напечатает этот код?
>> напечатает 5 5
89. Дана строка:
String s=»true,false»;
Каким способом можно сформировать новую строку, равную “test”?
>> String n = s.substring(0,1) + s.substring(9,10) + s.substring(8,9) + s.substring(0,1)
90. int result = 12+2*5%3-15/4;
String x=12-6+»Hello»+7+5;
System.out.println(result+»-«+x);
Что будет выведено на консоль?
>> 10-6Hello75
91. String s1=»Строка типа String»;
String s2=»Строка«;
s2+=» типа String»;
if(s1==s2) System.out.println(«s1 равно s2″);
else System.out.println(«s1 не равно s2″);
Что выведет этот код?
>> s1 не равно s2
92. String s1=»Строка типа String»;
String s2=»Строка«;
s2+=» типа String»;
if(s1.equals(s2)) System.out.println(«s1 равно s2″);
else System.out.println(«s1 не равно s2″);
Что выведет этот код?
>> s1 равно s2
93. String s1=»Строка»;
String s2=»Строка»;
if(s1==s2) System.out.println(«s1 равно s2″);
else System.out.println(«s1 не равно s2″);
Что выведет этот код?
>> s1 равно s2
94. String s=»»;
s+= 1+2+3;
System.out.println(s);
Что выведет этот код?
>> 6
95. String s=»Сумма =»+1+2+3;
System.out.println(s);
Что выведет этот код?
>> Сумма=123
96. String s=1+2+» не равно «+1+2;
System.out.println(s);
Что выведет этот код?
>> 3 не равно 12
97. Работа с графикой. Функция clearRect(x,y,w,h)?
>> Очистка прямоугольника (заполнение текущим цветом).
98. Работа с графикой.Функция fill3DRect(x,y,w,h, isRaised)?
>> Вывод «объемного» прямоугольника, заполненного текущим цветом.
99. Работа с графикой.Функция fillPolygon(Polygon p)?
>> Вывод многоугольника, заполненного текущим цветом.
100. Работа с графикой. Функция copyArea(x,y,w,h,dx,dy)?
>> Копирование области на новое место.
101. Переменные класса File. String pathSeparator?
>> Содержит строку с символом разделителя пути в операционной системе. Это «/» в Unix-подобных системах и «\» в Windows.
102. Переменные класса File.char pathSeparatorChar?
>> Содержит символ разделителя пути в операционной системе. Это «/» в Unix-подобных системах и «\» в Windows.
103. Переменные класса File.String separator?
>> Содержит строку с символом разделителя между именами файлов и файловых масок в операционной системе.
104. Переменные класса File. char separatorChar?
>> Содержит символ разделителя между именами файлов и файловых масок в операционной системе.
105. Методы класса File.canRead() ?
>> Возвращает true в случае, когда файл (или папка) с заданным в конструкторе именем существует и доступен по чтению. Иначе false.
106. Методы класса File.setReadOnly() ?
>> Возвращает true в случае, когда файл (или папка) с заданным в конструкторе именем существует, и ему удалось установить статус «доступен только по чтению». Иначе false.
107. Методы класса File. isDirectory() ?
>> Возвращает true в случае, когда файл или папка с заданным в конструкторе именем существует и является папкой. Иначе false.
108. Методы класса File. isFile() ?
>> Возвращает true в случае, когда файл или папка с заданным в конструкторе именем существует и является файлом. Иначе false.
109. Методы класса File.isHidden() ?
>> Возвращает true в случае, когда файл или папка с заданным в конструкторе именем существует и является скрытым. Иначе false.
110. Методы класса File. lastModified() ?
>> Возвращает время последней модификации файла, если он существует и доступен по чтению. Иначе 0L.
111. Методы класса File. setLastModified(long time) ?
>> Устанавливает время последней модификации файла. Возвращает true, если он существует и доступен по записи. Иначе false.
112. Методы класса File.getName() ?
>> Возвращает короткое имя файла или папки.
113. Методы класса File.getAbsolutePath() ?
>> Возвращает абсолютный путь к файлу или папке, включая имя файла. При этом, если в имени файла в конструкторе была задана относительная адресация, соответствующая часть пути сохраняется в возвращаемой строке.
114. Методы класса File. getCanonicalPath() ?
>> Возвращает абсолютный путь к файлу или папке, включая имя файла. При этом, если в имени файла в конструкторе была задана относительная адресация, соответствующая часть пути заменяется в возвращаемой строке на канонический вариант адресации – без элементов относительной адресации.
115. Методы класса File.compareTo(File f) ?
>> Сравнение имён файлов (папок), сопоставляемых текущему файловому объекту и объекту f. Возвращает 0 в случае, когда абсолютные имена файлов (папок) совпадают. Иначе возвращает число, зависящее от разницы в длинах имён и кодов, составляющих их символов.
116. Методы класса File.isAbsolute() ?
>> Возвращает true в случае, когда адресация к имени файла (папки) текущего файлового объекта является абсолютной. Хотя может содержать элементы относительной адресации, то есть не быть канонической.
117. Методы класса File.equals(Object obj) ?
>> Возвращает true тогда и только тогда, когда текущий объект и параметр obj соответствует одному и тому же файлу (папке).
118. Методы класса File.createTempFile(String prefix, String suffix) ?
>> Обеспечивает создание пустого файла (или папки), задаваемого коротким именем prefix+suffix в папке операционной системы, предназначенной для временных файлов. Возвращает ссылку на объект. Префикс должен быть не менее 3 символов.
119. Методы класса File.mkdir() ?
>> Попытка создания папки по имени, которое было задано в конструкторе объекта. Возвращает true в случае успешного создания и false в других случаях.
120. Методы класса File.renameTo(File dest) ?
>> Попытка переименования файла или папки с имени, которое было задано в конструкторе объекта, на новое, задаваемое параметром dest. Возвращает true в случае успешного переименования и false в других случаях.
121. Методы класса File.getAbsoluteFile() ?
>> Создание нового файлового объекта по абсолютному пути, соответствующему текущему файловому объекту.
122. Методы класса File.list() ?
>> Возвращает массив строк (список) коротких имён, находящихся в папке файлов и папок. Имена элементов, находящихся во вложенных папках, не показываются. Если файловый объект не соответствует существующей папке, возвращает null.
123. Конструкторы?
>> это методы, используемые для инициализации объектов в процессе их реализации.
124. Как объекты обмениваются информацией?
>> Объекты общаются друг с другом посредством посылки сообщений.
125. Что такое this?
>> ссылка, с помощью которой объект обращается к самому себе.
126. Класс ?
>> Класс – это структурный тип данных, который включает описание полей данных, а также процедур и функций, работающих с этими полями данных.
127. Процедуры и функции, работающие с полями данных класса?
>> Называются методами.
128. Объединение полей данных и процедур и функций, работающих с этими данными, в единый пакет, при наличии специальных правил доступа к элементам пакета?
>> Инкапсуляция.
129. Основные средства разработки классов. Наследование?
>> Конструирование новых более сложных классов из уже имеющихся посредством добавления полей и определения новых методов (принцип иерархичности).
130. Основные средства разработки классов. Полиморфизм?
>> обеспечивает возможность задания различных реализаций некоторого единого по названию метода для классов различных уровней иерархии.
131. Полиморфными объектами или полиморфными переменными называются?
>> переменные, которым в процессе выполнения программы может быть присвоено значение, тип которого отличается от типа переменной.
132. К изменению свойств объекта возможен только через принадлежащие ему?
>> методы.
133. В момент времени объект характеризуется:?
>> Свойствами
134. Программа в объектно-ориентированном программировании состоит из:?
>> событийных процедур.
135. Инкапсулированные в классе процедуры и функции называются?
>> Методы
136. Процесс, при котором различный код и данные различных модулей соединяются друг с другом в процессе исполнения, называют компоновкой?
>> Динамической
137. Область исходного кода программы, из которой допустим нормальный доступ к связанному с идентификатором объекту, называется?
>> Видимостью
138. Конструктором по умолчанию называется такой конструктор, который?
>> не принимает никаких аргументов.
139. Класс-наследник называется . от базового класса?
>> Производным.
140. Что следует ожидать на экране?
System.out.print(«A»+»B»+»C»);
System.out.println(‘A’+’B’+’C’);
>> ABC198
141. int j = 0;
for (int i = 0; i< 10; i++)
j = j++;
System.out.println(j);
Что выведется в результате?
>> 0
142. int x, y;
int i;
x = 1;
for (i = 0; i< 10; i++)
Что выведется в результате?
>> 3 5 7 9 11 13 15 17 19 21
143. int x, y;
int i;
x = 1;
for (i = 0; i< 10; i++)
Что выведется в результате?
>> 2 4 6 8 10 12 14 16 18 20
144. int x=0;
for(int count=10; count < 5; count++)
x += count ;>
Чему равна х?
>> 0
145. for(inti=-10; i
System.out.print(i + » «) ;>,
Что выведется в результате?
>> -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0
147. Каков будет результат следующего примера?
Point p = new Point(1,2);
int a =p.x;
p = new Point(3,4);
System.out.println(a);
>> 1
148. Каков будет результат следующего примера?
Point p1 = new Point(3,4);
Point p2 = p1;
p1.x = 5;
p1 = new Point(4,4);
System.out.println(p2.x-p1.x);
>> 1
149. Каков будет результат следующих действий?
Point p1 = new Point(2,3);
Point p2 = new Point(2,3);
System.out.print(p1==p2);
p2=p1;
p1.x = 3;
System.out.print(» «);
System.out.println(p1==p2);
>> false true
150. Каков будет результат следующего примера?
public class testClass
public static void process (int x)
public static void main(String[] args)
int x=3; process(x);
System.out.println(x); >>
>> 3
151. Что будет напечатано в консоли в результате выполнения следующего кода:
System.out.println((byte)383+» «+(byte)384+» «+(byte)-384); ?
>> 127 -128 -128
152. Каков будет результат следующего примера?
char c = 65;
System.out.print(c);
System.out.print(+c);
System.out.print(«=»+c);
>> A65=A
153. Каков будет результат следующего примера?
class Parent
class Child extends Parent
public class testClass
public static void main(String[] args)
Child c = new Child(); System.out.print(c.a);
Parent p=c; System.out.print(p.a); >>
>> 32
154. Каков будет результат следующего примера?
class Parent
public void printX()>
class Child extends Parent
public class testClass
public static void main(String[] args)
new Child().printX(); >>
>> 0
155. Каков будет результат следующего примера?
class Parent
class Child extends Parent
public class testClass
public static void main(String[] args)
Child.a=10; Parent.a=5; System.out.println(Child.a); >>
>> 5
156. Каков будет результат следующего примера?
int i,j;
lab:for(i=0;i<6;i++)
for(j=3;j>1;j—)
if(i==j) > >
>> 2
157. Каков будет результат следующей программы?
public class testClass public static void main(String[] args) inti =5;
while(i=5) <
System.out.println(i++); >>>
>> Ошибка компиляции.
158. Каков будет результат следующего примера?
int b=5;
System.out.print(b+(b=3));
System.out.print((b=3)+3);b=5;
System.out.print(b+=(b=3));
>> 868
159. Дан код:
class Quest3
public static void main(String s[ ])
String args;
System.out.print(args + s);
>>
Результатом компиляции кода будет?
>> ошибка компиляции: переменная args используется до инициализации.
160. Дан код:
public class Quest5
public static void main()
System.out.print(«А«); >
public static void main(String args)
System.out.print(«Б«); >
public static void main(String[] args)
System.out.print(«В»);>>
Что будет выведено в результате компиляции и запуска?
>> B
161. Какие из следующихутверждений истинные?
a-nonstatic-метод не может быть вызван из статического метода;
b-static-метод не может быть вызван из нестатического метода;
c-private-метод не может быть вызван из другого метода этого класса;
d-final-метод не может быть статическим.
>> a
162. Дан код:
public class Quest5
static
Quest5()
public static void main(String[] args)
System.out.print(«4»); >>
В результате при компиляции и запуске будет выведено?
>> 24
163. Какие из объявлений корректны, если
classOwner
classInner
>>?
>> new Owner().new Inner();
164. Дан код:
public class Quest1
public static void main(String[] args)
String str = new String(«java»);
int i=1;
char j=3;
System.out.println(str.substring(i,j));>>
В результате при компиляции запуске будет выведено?
>>
165. Экземпляром какого класса является поле System.in?
>> java.io.InputStream;
166. Какой абстрактный класс является суперклассом для всех классов, используемых для чтения байтов?
>> InputStream
167. Какой интерфейс наиболее пригоден для создания класса, содержащего несортированные уникальные объекты?
>> Set
168. Дан код:
Какой код читает параметр count в переменную i?
>> int i = new Integer(getParameter(»count»)).intValue()
Экземпляром какого класса является поле system err
Anastasia Уровень 14
18 декабря 2023
Напишите пожалуйста, правильно ли я поняла, если упростить еще сильнее, до примитива: Класс — это место(файл). Типа оранжерея Объект — это предмет. Типа цветок в горшке Переменная — это деталь, она может быть деталью объекта (это поле). Типа цвет горшка — красный. Либо деталью класса(это переменная со словом static). Типа цвет оранжереи — зеленый. Массив — это много деталей в одном. Типа комода с деталями. Метод — это действия. Он может быть для предметов(т.е метод внутри которого будет работа с объектами), либо для деталей предмета(метод, внутри которого будет работа только с переменными) А абстракция — это место, где есть хранение, но нет действия. Типа комнаты хранилища, где хранятся семена нужных растений из оранжереи. Конструктор — это получается стикер на горшке, где написано что это за растение. Если нужно просто чтобы в оранжерее были растения в горшках — просто создаем обьект. Получается мы не должны ему сами прописывать конструктор, но он скрыто создастся по дефолту. А если мы хотим поместить напр в оранжерею 2 обьекта: красный апельсин и каенский перец — мы сначала создаем 2 обьекта: оба обьекты, и создаем им конструктор, в котором указываем что это красный апельсин и перец. Типа клеем стикер на каждое растение. А что написано на стикере — наши параметры, которые мы хотим написать. Правильно ли я все усвоила, отпишитесь плс, я совсем новичок
Ваня Уровень 23
17 декабря 2023
Ставлю дизлайк, так как данная статья (иногда прямо целыми кусками с кодом и объяснениями) скопипасчена с другой, написанной ранее.