|
Подготовка к ревью на junior java dev. Книга Уорбэртон Функциональное программирование в массы java8
Дробные числа в двоичной системе счисления: https://www.youtube.com/watch?v=F5OkBuzvI5g
Перевод дробной части числа:
https://math.semestr.ru/inf/drob.php
Перевод 1111 в десятичную систему и обратно: 19) Представление вещественных чисел
http://neerc.ifmo.ru/wiki/index.php?title=Представление_вещественных_чисел 20) Чем отличается метод от функции
Методы в Java — это законченная последовательность действий (инструкций), направленных на решение отдельной задачи. По сути, это функции (они же процедуры, подпрограммы) более ранних, не ООП языков. Только эти функции являются членами классов и для различия с обычными функциями, согласно терминологии объектно-ориентированного программирования, называются методами.Простой способ запомнить: F unction → F ree (Свободные означает не принадлежность к объекту или классу) M ethod → M ember (член объекта или класса)
Функция это самостоятельная сущность. Метод это часть класса(объекта) и без него не употребляется.
21) Какая размерность у Boolean
В стандартной реализации Sun JVM и Oracle HotSpot JVM тип boolean занимает 4 байта (32 бита), как и тип int. Однако, в определенных версиях JVM имеются реализации, где в массиве boolean каждое значение занимает по 1-му биту
Размер Boolean переменной зависит от виртуальной машины.
Что тут можно интересного узнать? Ну, например, теоретически, нам достаточно 1 бита информации, 0 или 1, то есть true или false. Но на самом деле Boolean будет занимать больше памяти и это будет зависеть от конкретной реализации JVM. Обычно на это тратится столько же, сколько на int. Как вариант – использовать BitSet. 23) Назовите все условные операторы?
https://highload.today/uslovnye-operatory-java-kak-ispolzovat-if-if-else-i-switch-case/
Отличия for от for each?
http://pr0java.blogspot.com/2015/04/for-foreach.html
https://russianblogs.com/article/6563782183/ 24) Пулы (String Pool) строк и integer?
https://javarush.ru/groups/posts/645-stroki-v-java
Пул примитивов Java?
https://coderoad.ru/14402794/%D0%9F%D1%83%D0%BB-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-Java-%D0%BE%D0%B1%D0%B5%D1%80%D1%82%D0%BE%D0%BA-%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA
25) Что такое char? Почему над ним можно выполнять арифметические операции
Для хранения символов Java использует специальный тип char. Он отличается от типа char в языках C/C++, где представляет собой целочисленный тип с размером 8 бит. В Java для char используется кодировка Unicode и для хранения Unicode-символов используется 16 бит или 2 байта.
Потому что в юникоде у каждого символа есть представление в виде числа.
26) При сложении char + short какой результирующий тип получим
Получим тип int (оба расширяются до int)
27) При сложении int + float какой результирующий тип получим?
Полчим тип float. Byte, Short, Char -> int -> long -> float -> double Ревью: объекты, классы и пакеты в Java
Правила хэшкод (для одного и того же объекта и тд)
Правила equals (симметричность и тд)?
Уметь переопределять equals?
Контракт между equals hashcode?
Что такое коллизия?
https://www.youtube.com/watch?v=DrQqZj5OIZc&ab_channel=%D0%A3%D1%80%D0%BE%D0%BA%D0%B8Java
ДОСТУПНОЕ (2 часа) обьяснение что такое ООП, методы ООП, конструкторы, классы, пакеты, оператор new. - Объектно-ориентированное программирование – это подход, при котором вся программа рассматривается как набор взаимодействующих друг с другом объектов. При этом нам важно знать их характеристики. У каждого объекта в системе есть свойства и поведение, как и у любого реального объекта. Например, рассмотрим объект «машина»
Что такое класс? Объект?
Что такое ООП? В чем его плюсы?
https://live.ithillel.ua/osnovy-oop-na-primere-java.-chast-1
https://youtu.be/1-BTrgexqiQ
Enum
Перечислите методы именно класса Enum?
Может ли Enum наследовать (extends) класс? Почему?
Может ли Enum имплементировать интерфейсы?
https://www.youtube.com/watch?v=GOzNp1YAm5w
https://www.youtube.com/watch?v=r-LMTa2Z5R4 - Основы объектно ориентированного программирования https://www.youtube.com/watch?v=28NP_V2yc60 - Наследование?
Перегрузка vs Переопределение
Что можно делать при переопределении метода, а что нельзя?
https://www.youtube.com/watch?v=2TlE11Bfzi0&ab_channel=%D0%A3%D1%80%D0%BE%D0%BA%D0%B8Java
https://www.youtube.com/watch?v=4i1lrPDkhTw&ab_channel=Followthewhiterabbit
Для чего нужна аннотация Override? - @Override — проверяет, переопределён ли метод. Вызывает ошибку компиляции / интерпретации, если метод не найден в родительском классе или интерфейсе;
https://www.youtube.com/watch?v=uPK2FVz6qUs - Классы и объекты? https://www.youtube.com/watch?v=KEQ043yT3F4 - Класс Object и метод toString()
Все методы Object?
https://www.youtube.com/watch?v=8pUtpVZ1Xus - Специальные классы Object и Class
Instanceof vs getClass?
https://www.youtube.com/watch?v=ndnubpPzkNE - Анонимные классы https://www.youtube.com/watch?v=7VZRmUjuS1g - Пакеты https://www.youtube.com/watch?v=e14xUIUc6y0 - Модификаторы доступа public, private, Protected и default?
Область видимоcти всех классов?
https://www.youtube.com/watch?v=fQFoUQ-vic0&feature=emb_title&ab_channel=%D0%93%D0%BE%D1%88%D0%B0%D0%94%D1%83%D0%B4%D0%B0%D1%80%D1%8C
Как классы располагаются в пакете?
https://metanit.com/java/tutorial/3.2.php
Перечислите все модификаторы доступа в порядке уменьшения закрытости, какую область видимости они имеют?
https://www.youtube.com/watch?v=GZzVfeY7yEM - Ключевое слово static.
Можно ли использовать статические методы в обычных? Наоборот? Почему?
Можно ли создавать статик методы в интерфейсах?
Может ли статический метод быть перегружен? Будет ли работать переопределение статического метода?
Модификатор static - https://topjava.ru/blog/rukovodstvo-po-modifikatoru-static-v-java
https://www.youtube.com/watch?v=uDN75SRyUzI - Интерфейсы, абстрактные классы.
Синтаксические отличия интерфейса от абстрактного класса (АК)? 5 отличий
Какие методы в интерфейсе могут иметь реализацию?
Может ли быть абстрактный класс без абстрактных методов?
Можно ли создать поля в интерфейсе?
https://www.youtube.com/watch?v=mLkgbZoB7Iw&feature=emb_title&ab_channel=TatyanaMilkina
https://www.youtube.com/watch?v=nbqgPwZJqU4&ab_channel=Followthewhiterabbit
https://hr-vector.com/java/staticheskij-metod
https://www.youtube.com/watch?v=qw9m9q9IF58&feature=emb_title&ab_channel=TatyanaMilkina
https://www.youtube.com/watch?v=uCgF5-yCbGA - Интерфейсы https://www.youtube.com/watch?v=ulewh5JQKa0 - Ключевое слово final. https://www.youtube.com/watch?v=zf3lDojNxlA - Инкапсуляция. Сеттеры и геттеры.
Что такое инкапсуляция? Приведите пример инкапсуляции?
https://www.youtube.com/watch?v=c8eGIPF-o3Q - полиморфизм, позднее связывание
Что такое полиморфизм? Приведите пример полиморфизма?
https://www.youtube.com/watch?v=Muytoo-x-KM – Конструкторы?
Может ли быть конструктор у абстрактного класса? Для чего?
Можно ли в классе вызвать один конструктор из другого? Как это сделать?
Руководство по конструкторам - https://topjava.ru/blog/rukovodstvo-po-konstruktoram-v-java
https://www.youtube.com/watch?v=M58eiYbM6AE
https://www.youtube.com/watch?v=c8eGIPF-o3Qс
https://habr.com/ru/post/87119/
https://habr.com/ru/post/87205/
Как реализовать свой Immutable тип данных?
https://www.youtube.com/watch?v=GseA8-ELmgg&ab_channel=%D0%A3%D1%80%D0%BE%D0%BA%D0%B8Java
https://www.youtube.com/watch?v=2PPPW6I-C34&ab_channel=%D0%A3%D1%80%D0%BE%D0%BA%D0%B8Java
Как реализована неизменность String?
https://javarush.ru/groups/posts/760-java-string-voprosih-k-sobesedovaniju-i-otvetih-na-nikh-ch2
Ключевое слово native
Что такое нативные методы, их плюсы и минусы?
В какой области памяти хранятся примитивы?
В какой области памяти хранятся объекты?
http://www.quizful.net/interview/java/native-keyword https://coderoad.ru/18900736/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B2-Java-%D0%B8-%D0%B3%D0%B4%D0%B5-%D0%B8%D1%85-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C https://studfile.net/preview/2854790/page:9/
Что входит в сигнатуру метода? –
Пространство имен и класс
Идентификатор метода
Порядок, тип, модификаторы(ref, out) параметров Но не включает:
Тип возвращаемого значения
Передача параметров по ссылке или по значению? Как передаются объекты в метод?
https://www.youtube.com/watch?v=1kn2moW96Co&ab_channel=VladimirVysokomornyi
В чем разница между передачей параметров по ссылке или по значению?
Ковариантность типа возвращаемого значения?
Что будет если передать массив в метод, который изменит его значения, изменятся ли они вне метода? Почему? А если передать примитив?
https://ru.stackoverflow.com/questions/1342758/%D0%A7%D1%82%D0%BE-%D0%B1%D1%83%D0%B4%D0%B5%D1%82-%D0%B5%D1%81%D0%BB%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2-%D0%B2-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82-%D0%B5%D0%B3%D0%BE-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%81%D1%8F
Что такое varargs? Какие есть ограничения при написании?
https://www.youtube.com/watch?v=-XHQclYxXJg&feature=emb_title&ab_channel=TatyanaMilkina
JDK, JVM, JRE
https://www.examclouds.com/ru/java/java-core-russian/jdk-jre-jvm#::text=JVM%20(Java%20Virtual%20Machine)%20%2D,%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC%20Java%20(javac)
какие методы могут быть в интерфейсах
Дефолтные (с реализацией), асбтрактные (только тело), статические, приватные.
зачем нужен конструктор в абстрактном классе
Для того, чтобы производные классы должны в своих конструкторах вызвать этот конструктор.
перегрузка нестатического метода на статический
Переопределять статические методы нельзя, а вот перегружать можно. Можно выполнить перегрузку нестатического метода в статический
Передача параметров по ссылке или по значению? Как передаются объекты в метод?
Java передает параметры по значению. Всегда. Слишком многие люди говорят, "Java передает примитивные типы по значению, а объекты по ссылке". Это не так как говорят. Java передает все по значению. С примитивами, вы получаете копию содержимого. Со ссылками вы тоже получаете копию содержимого
Могут ли нестатические методы перегрузить статические?
Да
Класс Object, все методы кроме wait, notify, notifyAll, назвать и объяснить, как работают
Equals ();
HashCode ();
ToString ();
Finalize ();
Clone ();
GetClass ();
|
|
|