JAVA CORE Flashcards

1
Q

Что такое класс Object?

A

Базовый клаасс джава от которого наследуются остальные классы в языке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие в классe Object есть методы?

A

hashcode()
equals()

clone()
toString()

getClass()
finalize()

notify()
notifyAll()
wait()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое метод equals(). Чем он отличается от операции ==.

A

equals по умолчанию сравниваются ссылки, а не

поля.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Если вы хотите переопределить equals(), какие условия должны удовлетворяться для переопределенного метода?

A

Объект должен равняться себе самому.
Всегда должен быть равным такому же обьекту в обе стороны.
У них должен быть одинаковый хешкод

 @Override
    public boolean equals(Object obj) {
    if (obj == this) {
        return true;
    }
    if (obj == null || obj.getClass() != this.getClass()) {
        return false;
    }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

A

по умолчанию хешкод -адрес ячейки памяти смещенное на три…в старых версиях java, который сохр в переменную(т.е сслучайное число)…сейчас
Последовательность случайных чисел, генерируемая упомянутым алгоритмом, зависит от некоторого начального значения - если его не менять, то и числа будут одни и те же.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

модификаторы доступа в Java

A
private - only class
default - package
protected - package & subclasses
public - all
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Если у класса-родителя есть метод, объявленный как private, может ли наследник расширить его видимость? А если protected? А сузить видимость?

A

модификатор доступа переопределенных методов дочерних классов может идти только в сторону расширения области видимости package->protected->public…а приватную переменную подкласс не увидит

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что означает ключевое слово final?

A

Для переменной - это станет константой
для метода - его нельзя переопределить
для класса - ему нельзя создать наследников

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Имеет ли смысл объявлять метод private final?

A

метод final уже является private

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какие особенности инициализации final переменных?

A
  • Если она static, то инициализация при первом обращении к этой переменной, либо при первом создании объекта такого класса.
  • Если не static то инициализируются в конструкторе
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что будет, если единственный конструктор класса объявлен как final

A

Ошибочка компиляции

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

К каким конструкциям Java применим модификатор static

A

К методу.
К внутреннему классу.
К полю.
К импортируемым классам

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Модификатор static и какие ограничения накладываются на методы?

A

Модификатор static говорит о том, что метод или поле класса принадлежат не объекту, а классу. Т.е. доступ можно будет получить и не создавая объекта класса
На методы, объявленные как static, накладывается ряд ограничений.

Они могут вызывать только другие статические методы.
Они должны осуществлять доступ только к статическим переменным.
Они не могут ссылаться на члены типа this или super.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Что будет, если в static блоке кода возникнет исключительная ситуация?

A

Если в явном виде написать любое исключение в static-блоке, то компилятор не скомпилирует исходники. Это все от того, что компилятор умный. В остальном, взаимодействие с исключениями такое же как и в любом другом месте.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Можно ли перегрузить static метод?

A

Перегрузить можно, но переопределить нельзя

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Что такое статический класс, какие особенности его использования?

A
Это вложенный класс, который может обращаться только к статическим полям обертывающего его класса, в том числе и приватным. Доступ к нестатическим полям обрамляющего класса может быть осуществлен только через ссылку на экземпляр обрамляющего объекта. К классу высшего уровня модификатор static неприменим.
public class Test { 
  class A { } 
  static class B { }
  public static void main(String[] args) { 
    /*will fail - compilation error, you need an instance of Test to instantiate A*/
    A a = new A(); 
    /*will compile successfully, no instance of Test is needed to instantiate B */
    B b = new B(); 
  }

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Какие особенности инициализации final static переменных?

A

Переменные должны быть инициализированы во время объявления или в static блоке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Дайте определение понятию “интерфейс”.

A

Ключевое слово interface используется для создания полностью абстрактных классов. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов.
Наличие слова interface означает, что именно так должны выглядеть все классы, которые реализуют данный интерфейс. Таким образом, любой код, использующий конкретный интерфейс, знает только то, какие методы вызываются для этого интерфейса, но не более того.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Какие модификаторы по умолчанию имеют поля и методы интерфейсов?

A

Интерфейс может содержать поля, но они автоматически являются статическими (static) и неизменными (final). Все методы и переменные неявно объявляются как public.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

. Почему нельзя объявить метод интерфейса с модификатором final или static?

A

Final модификатор просто бессмысленный. Все методы по умолчанию абстрактные, т.е. их невозможно создать не реализовав где-то еще, но это нельзя будет сделать, если у метода идентификатор final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Каким образом из вложенного класса получить доступ к полю внешнего класса?

A

Если вложенный класс не статический и поле не статическое, то можно просто обратиться к этому полю из внутреннего класса, если только у внутреннего класса не существует поля с таким же литералом, в этом случае нужно обращаться через ссылку на внешний класс так — OuterClass.this.имяПоля

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Какие вы знаете способы запустить некоторое действие в отдельном потоке

A

Thread,Runnable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

как запустить поток через Runnable

A
public class Program  {
 public static void main(String[] args) {
  Thread potokB = new Thread(new Runnable()х  {
   public void run()   {
    System.out.println("Привет из побочного потока!");
   }  });
  potokB .start(); 

class KodA implements Runnable { public void run() { System.out.println(“Привет из побочного потока!”); }

public class Program  
 static KodA kodA; 
 public static void main(String[] args) {
  kodA= new KodA ();    
  Thread potokB = new Thread(kodA); 
  potokB .start();     }}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

как запустить поток через Thread

A
class AffableThread extends Thread{
 @Override
 public void run()х {  System.out.println("Привет из побочного потока!"); }}
public class Program{ 
static AffableThread mSecondThread;
 public static void main(String[] args) {  
 mSecondThread = new AffableThread(); 
  mSecondThread.start();   
 }}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Завершение потока

A
public class ThreadClass extends Thread {
    boolean a=true;
    public void run(){
        while(!a)  //выключатель
        {
         Thread.sleep(1500); ///спим
        }
     Thread.Stop();
  }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Какие ключевые слова Java, связанные с многопоточностью Вы знаете?

A

Я много интересных слов знаю, расскажите лучше, что из этого вы используете на проекте

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Для чего используется ключевое слово syhcronized?

A
Захватить монитор обьекта
public void myMethod(){
    private Object key = new Object();        
    synchronized (key) {
        System.out.println("Hi I'm synchronized block!");  }}

либо
synchronized void myMethod() {
System.out.println(“Hi I’m synchronized method!”);
}

Недостатком использования synchronized является как раз то, что другие потоки вынуждены ждать, пока нужный объект или метод освободится.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Есть некоторый метод, который исполняет операцию i++. Переменная i типа int. Предполагается, что код будет исполнятся в многопоточной среде. Следует ли синхронизировать блок?

A

Да. В противном случае будут race condition…значение будет не всегда актуальным
инкремент/декремент - не атомарные операции

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Что служит в качестве mutex, если метод объявлен synchronized?

A

Экземпляр данного класса…он является тем самым семафором

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Можно ли вызвать в разных потоках два synchronized метода одного и того же объекта

A

нет, второй поток будет ждать, отпущеного монитора

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Для чего используется ключевое слово volatile?

A

Не используется кэш (имется ввиду область памети в которой JVM может сохранять локальную копию переменной, чтобы уменьшить время обращения к переменной) при обращении к полю.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Для чего используется ключевое слово transient?

A

Для указание того, что при сериализации/десериализации данное поле не нужно сериализовать/десериализовывать.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

wait()

A

Приводит поток в ожидание, пока другой поток не вызовит notify() или notifyAll() методы для этого объекта. При этом все эти методы должны быть вызваны в блоке synchronized.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

notify()

A
  • просыпается один поток, который ждет на “мониторе” данного объекта.
35
Q

notifyAll()

A

просыпаются все потоки, которые ждут на “мониторе” данного объекта.

36
Q

Какие стандартные инструменты Java вы бы использовали для реализации пула потоков?

A

LinkedList, synchronized, wait(), notify()/notifyAll() и библиотеку по многопоточности

37
Q

Какие виды исключений в Java вы знаете, чем они отличаются?

A

checked/unchecked. Если checked исключение не отлавливается, то это приводит к ошибке на этапе компиляции. Unchecked исключение - то, которое разработчик не должен допустить, т.к. имеет для этого возможность.
Если исключение потомок RuntimeException или Error, то это unchecked исключение. Если исключение потомок Exception (и не потомок RuntimeException), то это checked исключение.

38
Q

Иерархия исключений

A
Throwable
     Error
         TrowableDeath
          VirtualMachineError
              OutOfMemory
              StackOverFlow
              Unknown
     Exception
          ReflectionOperationException                      
          SQLException
          IOException
          RuntimeException
             Выход за границы массива
             Null
             Не тот тип
             Деление на ноль и др. Ошибки арефметич
39
Q

Всегда ли исполняется блок finally?

A

Только если поток ещё исполняется и JVM ещё работает к этому моменту.

40
Q

Что такое finalize? Зачем он нужен? Что Вы можете рассказать о сборщике мусора и алгоритмах его работы.

A

Метод finalize() вызывается перед тем, как объект будет удален gc. Существует много различных реализаций gc. Основа работы следующая, gc помечает объекты на которых больше не ссылаются другие объекты для их удаления. Затем на одном из проходов помеченные объекты удаляются.
Вызов finalize() не гарантируется, т.к. приложение может быть завершено до того, как будет запущена ещё одна сборка мусора. Да, можно отменить сборку объекта с помощью метода finalize(), присвоив его ссылку какому-то статистическому мето

41
Q

Почему метод clone объявлен как protected? Что необходимо для реализации клонирования?

A

Это сигнализирует о том, что хоть метод и есть в классе Object, но если им разработчик желает воспользоваться, то его нужно переопределить. Для этого нужно реализовать интерфейс Clonable, чтобы соблюсти контракт.

42
Q

Сколько ключевых слов зарезервировано языком,

A

50, два из них не используются: const, goto;
Примитивы (byte, short, int, long, char, float, double, boolean)
Циклы и ветвления (if, else, switch, case, default, while, do, break, continue, for)
Исключения (try, catch, finally, throw, throws)
Области видимости (private, protected, public)
Объявление \ Импорт (import, package, class, interface, extends, implements, static, final, void, abstract, native)
Создание \ Возврат \ Вызов (new, return, this, super)
Многопоточность (synchronized, volatile)
instanceof, enum, assert, transient, strictfp, const, goto

43
Q

Что значит слово “инициализация”?

A

С точки зрения Java — выделение памяти под объект,

44
Q

преобразовании примитивных типов данных

A

один тип преобразуется в другой, если с расширением то норм, если в низ - то возможна потеря данных

45
Q

значениями инициализируются переменные по умолчанию?

A

Числа инициализируются 0 или 0.0. Объекты (в том числе String) — null, char — \u0000; boolean — false;

46
Q

Как передается значение переменной (по ссылке/значению)?

A

Java передает всё по значению. Java никогда не передает ничего по ссылке. Примитивы, ссылки, null — всё передается по значению, не по «ссылке».
: Когда передается параметр в метод, то параметр копируется в другую переменную и она передается в метод. Поэтому это и называется «передача по значению».
Передача по ссылке: Если мы передаем в метод ссылочный тип (объект), то так же происходит передача копии этого объекта (ссылки)

47
Q

функция main

A

public static void main(String[] args) {/тело метода/ }

48
Q

тернарный оператор выбора?

A

a=условие ? да : нет

49
Q

унарные и бинарные арифметические операции

A

Унарные операции выполняются над одним операндом, бинарные — над двумя операндами, а также тернарные — выполняются над тремя операндами.
Примеры
+ - инкременты декременты и арифметические операции

50
Q

switch

A
switch(a) {
case 1: a++;break;
case 2:a=0; break 
default: a=10;break;
}
51
Q

виды массивов вы знаете?

A

В Java — одномерные и многомерные массивы.

52
Q

классы оболочки?

A

Для каждого примитивного типа есть соответствующий класс (Byte, Double, Float, Integer, Long, Short)

53
Q

автоупаковка (boxing/unboxing)?

A

Это автоматическое преобразование из примитивных типов данных к ссылочным и наоборот.

54
Q

Javac, jvm, jre что такое вообще это

A

javac - компилятор,
jvm - виртуалка для байт кода которая через JNI интерфейс взаимодействует с устройством
jre - среда выполнения - виртуалка + классы

55
Q

Memory in JAVA

A

non heap метаинформация и кеш JVM

Stack area: Для каждого потока
PC Registers: Хранит адреса
текущих инструкций потока.

methods Area все информация о классе
Native method stacks информация о нативных методах.

heap Здесь хранится вся
информация об объектах.

56
Q

heap in java

A

New Generation & Old Generation

New Generation Eden Space(heap) все создаваемые из программы объекты Если мы попробуем разместить ещё
объект, JVM обнаружит, что Eden полон
и надо провести чистку.

Tenured (Old) Generation (heap) — Здесь
скапливаются долгоживущие объекты
Survivor Space (heap) – сюда перемещаются объекты из предыдущей,
после того, как они пережили хотя бы одну сборку мусора

57
Q

non heap in java

A
Permanent Generation (non-heap) – Здесь хранится
метаинформация, используемая JVM
(используемые классы, методы и т.п.).
-XX:PermSize – задаёт минимальный
-XX:MaxPermSize – задаёт
максимальный размер

Code Cache (non-heap) — эта область используется JVM,
когда включена JIT-компиляция, в ней кешируется
скомпилированный платформенно — зависимый код

58
Q

Существует 3 политики удержания
аннотации. Такие политики
инкапсулированы в перечисление
java.lang.annotation.RetentionPolicy.

A

Аннотации с политикой SOURCE
содержаться только в исходном файле и
отбрасываются при компиляции.

Аннотации с политикой Class
сохраняются в файле, однако они
недоступны JVM во время выполнения.

Аннотации с политикой удержания RUNTIME
сохраняются в файле во время компиляции и остаются
доступными JVM во время выполнения.

59
Q

Отличие soap от rest

A

По русски: rest более прост. А soap
более типизирован для защиты
данных как java через потокобезопасность и транзакционность

SOAP активно использует XML для кодирования запросов и ответов, а также
строгую типизацию данных, гарантирующую их целостность при передаче между
клиентом и сервером. С другой стороны, запросы и ответы в REST могут
передаваться в ASCII, XML, JSON или любых других форматах, распознаваемых
одновременно и клиентом, и сервером. Кроме того, в модели REST отсутствуют
встроенные требования к типизации данных. В результате пакеты запросов и
ответов в REST имеют намного меньшие размеры, чем соответствующие им пакеты
SOAP.В модели SOAP уровень передачи данных протокола HTTP является
«пассивным наблюдателем», и его роль ограничивается передачей запросов SOAP от
клиента серверу с использованием метода POST. Детали сервисного запроса, такие
как имя удаленной процедуры и входные аргументы, кодируются в теле запроса.
Архитектура REST, напротив, рассматривает уровень передачи данных HTTP как
активного участника взаимодействия, используя существующие методы НТТР, такие
как GET, POST, PUT и DELETE, для обозначения типа запрашиваемого сервиса.
Следовательно, с точки зрения разработчика, запросы REST в общем случае более
просты для формулирования и понимания, так как они используют существующие и
хорошо понятные интерфейсы HTTP.Модель SOAP поддерживает определенную
степень интроспекции, позволяя разработчикам сервиса описывать его API в файле
формата Web Service Description Language (WSDL, язык описания веб-сервисов).
Создавать эти файлы довольно сложно, однако это стоит затраченных усилий,
поскольку клиенты SOAP могут автоматически получать из этих файлов подробную
информацию об именах и сигнатурах методов, типах входных и выходных данных и
возвращаемых значениях. С другой стороны, модель REST избегает сложностей
WSDL в угоду более интуитивному интерфейсу, основанному на стандартных методах
HTTP, описанных выше.В основе REST лежит концепция ресурсов, в то время как
SOAP использует интерфейсы, основанные на объектах и методах. Интерфейс SOAP
может содержать практически неограниченное количество методов; интерфейс
REST, напротив, ограничен четырьмя возможными операциями, соответствующими
четырем методам HTTP.

60
Q

CleanCode

A

нет лишнего кода
Строка между логическими блоками
Классы и Интерфейсы - название в виде CamelCase
Методы и переменные- название в виде сamelCase
Константы - static final переменные, ЗАГЛАВНЫМИ_БУКВАМИ с андерскопом
строки 80 символов
Как можно более короткий код
///подделки(XXX ) и сломанное(FIXME )/ todo для дел
названия переменных. Говорящие четкие и однозначные
метод 40 строк
///массивы с разнотипными данными заменить на обьекты

61
Q

Защита от SQL иньекций

A

приходящие на REST
числа - передай в значение целочисленного типа

экранируй кавычки

public static String addSlashes(String s) {
    s = s.replaceAll("\\\\", "\\\\\\\\");
    s = s.replaceAll("\\n", "\\\\n");
    s = s.replaceAll("\\r", "\\\\r");
    s = s.replaceAll("\\00", "\\\\0");
    s = s.replaceAll("'", "\\\\'");
    return s;
}
62
Q

что такое инлайн функция

A

это функция которая компилируеться джит-компилятором

она выполняеться очень быстро

63
Q

что нужно сделать чтобы функция с большой вероятностью стала инлайн функцией

A

В общем если метод файнал и в нем менее 25 операций то он может быть инфйн

64
Q

Что будет если реализовать метод clone() у объекту с final полем

A

Ошибка CloneNotSupportedException

65
Q

Какие есть способы клонировать объект?

A
  • Переопределение метода clone() и реализация интерфейса Cloneable();
  • Использование конструктора копирования;
  • Использовать для клонирования механизм сериализации
66
Q

В чем недостаток clone()?

A

clone() подразумевает, что вы будете использовать механизм так называемого «поверхностного клонирования» и сами позаботитесь о клонировании полей-объектов. Метод clone() в родительском классе Object является protected, поэтому требуется переопределение его с объявлением как public. Он возвращает экземпляр объекта с копированными полями-примитивами и ссылками. И получается что у оригинала и его клона поля-ссылки указывают на одни и те же объекты.

67
Q
Где ошибка ?
class A {}
class B {
public B(){
System.out.println("A");
super.A();
}
}
A

super.A() - конструктор суперкласса должен вызываться первой строчкой в конструкторе наследника.

68
Q

Что делает метод String.intern()?

A
Когда метод intern() вызван, если пул строк уже содержит строку, эквивалентную к нашему объекту, что подтверждается методом equals(Object), тогда возвращается ссылка на строку из пула. В противном случае объект строки добавляется в пул и ссылка на этот объект возвращается.
Этот метод всегда возвращает строку, которая имеет то же значение, что что и текущая строка, но гарантирует что это будет строка из пула уникальных строк.
Ниже приведен пример работы метода intern()
public class StringPool {
    public static void main(String[] args) {
        String a = "string a";
        String b = new String("string a");
        String c = b.intern();
        System.out.println(a == b);
        System.out.println(b == c);
        System.out.println(a == c);
    }
}
Программа выведет следующее:
false
false
true
69
Q

Есть 2 объекта . REF0 != REF1; Может ли быть REF0.equals(REF1) = true;

A

Да, если переопределить equals

70
Q

Checked\Unchecked Exception

A

checked exception = проверяемое исключение, проверяемое компилятором, его нужно либо обрабатывать либо пробрасывать дальше.

Throwable и Exception и все их наследники (за исключением наследников Error-а и RuntimeException-а) — checked
— Error и RuntimeException и все их наследники — unchecked

71
Q

Расскажите о классах загрузчиках

A

базовый загрузчик(из $java.home/lib)
загрузчик расширений(из $java.home/lib/ext)
системный загрузчик все классы в classPath

72
Q

Unicode что такое

A

стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира.

Стандарт состоит из двух основных частей: универсального набора символов (англ. Universal character set, UCS) и семейства кодировок (англ. Unicode transformation format, UTF).

73
Q
Конструкторы и методы класса BufferedWriter
BufferedWriter(Writer)
close()
flush()
newLine()
write()
A
BufferedWriter(Writer) // Создает буферный поток ввода символов который использует размер буфера по умолчанию.
close() закрыть
flush() записать буфер в файл
newLine() // перенос на новую строку
write() запись в буфер
74
Q
Конструкторы и методы класса FileWriter
FileWriter(File)
FileWriter(String)
close()
flush()
write()
A

FileWriter(File) конструктор из File
FileWriter(String) конструктор из имени фала
close() закрывает поток
flush() записывает оставшиеся буферные данные в файл.ставить перед закрытием
write() пишет, как посимвольно так и строкой

75
Q

Конструкторы и методы класса BufferedReader
BufferedReader(Reader)
read()
readLine()

A

BufferedReader(Reader in) // Создает буферный поток ввода символов который использует размер буфера по умолчанию.
int read() // прочитать буфер
readLine()// следующая строка

76
Q

КОнструкторы и методы класса FileReader
FileReader(File)
FileReader(String)
read()

A

FileReader(File file) конструктор по файлу
FileReader(String fileName) конструктор по имени

public int read() throws IOException Читает один символ. Возвращает int, который представляет прочитанный символ.

77
Q
КОнструкторы и методы класса File
File(File, String)
File(String)
File(String, String)
createNewFile()
delete()
exists()
isDirectory()
isFile()
list()
mkdir()
renameTo()
A

File(File parent, String child)Конструктор создает
новый экземпляр файла из родительского абстрактного пути и строки дочернего пути.
File(String pathname)
File(URI uri)

createNewFile() создает если нет
delete() удаляет
isDirectory() наличие директории 
isFile()наличие файла
exists()провеоряет нличие файла\каталога
list() список обьектов в каталоге ()массив строк
mkdir()создать директорию
renameTo() переименовать
78
Q

array.deepToString

A

вывести весь массив

79
Q

Порядок загрузки классов и иницализации обьектов

A

читается файл *.class
проверяется на корректность
создается представление в памяти
грузятся суперклассы
грузятся суперинтерфейсы
линкуются все классы для обращений между собой
инициализируется ленивая\энергичная загрузка(то что выбрал разработчик)
код интерпретируется в jvm команды либо CPU(зависит от компилятор JIT налету, Aot перед использованием)
инициализируются другие классы
вызов полей и методов

80
Q

чем занимается JVM

A

организует доступ к классам в памяти(heap,создает удаляет представления классов

управляет потоками и синхронизирует(java.io.Input\ouput Stream абстрактные - а потом реализуют куда слать)

обеспечивает функционирование монитора toolInterface

JNI интерфейс доступа к внешним устройствам(через него Awt написана)

грузит классы загрузчика

81
Q

ПОрядок инициализации обьекта

A
Static Super
Static
Public super
super constructor
public
constructor
82
Q

сериализация

A

Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов.

83
Q

недостатки сериализации

A

Библиотека Serializable уступает в скорости работы практически всем другим способам сохранения и восстановления данных. пишется довольно много служебной информации, в результате чего файлы получаются значительно больше того объема, который требуется для хранения самих данных.Самый важный недостаток этого метода заключается в том, что он способен работать только с полями.

84
Q

структуры данных

A

это все что наследуется от интерфейса collection