Какой результат работы данного фрагмента кода?
for(;;) {
}
for(;;) {
}
Anonymous Quiz
7%
Ошибка на этапе выполнения
62%
Бесконечный цикл
17%
Ошибка на этапе компиляции
6%
Все варианты неверные
8%
Узнать ответ
👍23🤔6🔥1
#Вопросы_с_собеседования
❓Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
❓Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
👍19
#Вопросы_с_собеседования
❓Чем полезны неизменяемые объекты?
Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable , которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками.
Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX() вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
❓Чем полезны неизменяемые объекты?
Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX()
👍35
Корректно ли такое выражение?
Anonymous Quiz
42%
Да
50%
Нет, будет ошибка компиляции
8%
Нет, будет ошибка во время выполнения
👍17
#вопросы_с_собеседований
Какие классы поддерживают чтение и запись потоков в компрессированном формате?
☕️ DeflaterOutputStream — компрессия данных в формате deflate.
☕️ Deflater — компрессия данных в формат ZLIB.
☕️ ZipOutputStream — потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream — потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream — декомпрессия данных в формате deflate.
☕️ Inflater — декомпрессия данных в формате ZLIB.
☕️ ZipInputStream — потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream — потомок InflaterInputStream для декомпрессии данных в формате GZIP.
Какие классы поддерживают чтение и запись потоков в компрессированном формате?
☕️ DeflaterOutputStream — компрессия данных в формате deflate.
☕️ Deflater — компрессия данных в формат ZLIB.
☕️ ZipOutputStream — потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream — потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream — декомпрессия данных в формате deflate.
☕️ Inflater — декомпрессия данных в формате ZLIB.
☕️ ZipInputStream — потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream — потомок InflaterInputStream для декомпрессии данных в формате GZIP.
👍12
📌 Разработка на Java (видеокурс)
1. Знакомство с платформой Java
2. Базовые конструкции языка
3. Объектно-ориентированное программирование
4. Исключения. Reflection API
5. Коллекции и параметризация
6. Взаимодействие потоков
7. Внутренние и анонимные классы
8. Работа с базой данных
9. Сокеты, разбор задачи Мессенджер
10. Основы тестирования
11. Потоки
12. NIO
13. Тестирование
14. Memory Model
1. Знакомство с платформой Java
2. Базовые конструкции языка
3. Объектно-ориентированное программирование
4. Исключения. Reflection API
5. Коллекции и параметризация
6. Взаимодействие потоков
7. Внутренние и анонимные классы
8. Работа с базой данных
9. Сокеты, разбор задачи Мессенджер
10. Основы тестирования
11. Потоки
12. NIO
13. Тестирование
14. Memory Model
👍22
#Вопросы_с_собеседования
Сколько объектов типа String создает эта программа?
Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
Сколько объектов типа String создает эта программа?
Ответ:
👍34🤔5😱5
#Вопросы_с_собеседования
❓Как принудительно запустить поток?
Ответ:
Никак. В Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.
❓Как принудительно запустить поток?
Ответ:
👍32
63 маленьких видео по фичам IntelliJ IDEA
https://youtube.com/playlist?list=PLG1Jgal0l0oiyoa9ba894ggu031z2YzYr
https://youtube.com/playlist?list=PLG1Jgal0l0oiyoa9ba894ggu031z2YzYr
YouTube
IntelliJ IDEA Tips & Tricks (Java)
You can find interesting tips & tricks for using IntelliJ IDEA for drastically improving your productivity. This playlist has videos that cover keyboard shor...
👍18
#Вопросы_с_собеседования
❓Что такое «абсолютный путь» и «относительный путь»?
Абсолютный (полный) путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущей рабочей директории или других обстоятельств. Полный путь всегда начинается с корневого каталога.
Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активного приложения.
❓Что такое «абсолютный путь» и «относительный путь»?
Абсолютный (полный) путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущей рабочей директории или других обстоятельств. Полный путь всегда начинается с корневого каталога.
Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активного приложения.
👍16
#Вопросы_с_собеседования
❓Чем различаются JRE, JVM и JDK?
TL;DR: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.
☕️ JVM, Java Virtual Machine (Виртуальная машина Java) — основная часть среды времени исполнения Java (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.
☕️ JRE, Java Runtime Environment (Среда времени выполнения Java) — минимально-необходимая реализация виртуальной машины для исполнения Java-приложений. Состоит из JVM и стандартного набора библиотек классов Java.
☕️ JDK, Java Development Kit (Комплект разработки на Java) — JRE и набор инструментов разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты.
❓Чем различаются JRE, JVM и JDK?
TL;DR: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.
☕️ JVM, Java Virtual Machine (Виртуальная машина Java) — основная часть среды времени исполнения Java (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.
☕️ JRE, Java Runtime Environment (Среда времени выполнения Java) — минимально-необходимая реализация виртуальной машины для исполнения Java-приложений. Состоит из JVM и стандартного набора библиотек классов Java.
☕️ JDK, Java Development Kit (Комплект разработки на Java) — JRE и набор инструментов разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты.
👍34❤1
Что такое полиморфизм?
Полиморфизм — это способность программы идентично использовать объекты с одинаковым интерфейсом без информации о конкретном типе этого объекта. Как говорится, один интерфейс — множество реализаций.
При помощи полиморфизма можно объединять и использовать разные типы объектов по их общему поведению.
Например, есть у нас класс Animal, у которого есть два наследника — Dog и Cat. У общего класса Animal есть общее поведение для всех — издавать звук. В случае, когда нужно собрать воедино всех наследников класса Animal и выполнить метод “издавать звук”, используем возможности полиморфизма. Вот как будет это выглядеть(см картинку).
Таким образом, полиморфизм помогает нам. Причем это относится и к полиморфным (перегруженным) методам.
Полиморфизм — это способность программы идентично использовать объекты с одинаковым интерфейсом без информации о конкретном типе этого объекта. Как говорится, один интерфейс — множество реализаций.
При помощи полиморфизма можно объединять и использовать разные типы объектов по их общему поведению.
Например, есть у нас класс Animal, у которого есть два наследника — Dog и Cat. У общего класса Animal есть общее поведение для всех — издавать звук. В случае, когда нужно собрать воедино всех наследников класса Animal и выполнить метод “издавать звук”, используем возможности полиморфизма. Вот как будет это выглядеть(см картинку).
Таким образом, полиморфизм помогает нам. Причем это относится и к полиморфным (перегруженным) методам.
👍23😢1
Бинарный поиск в массивах
Допустим, мы хотим вставить новый элемент в отсортированную таблицу. Arrays.binarySearch() возвращает индекс ключа поиска, если он содержится в таблице. В противном случае она возвращает точку вставки, которую мы можем использовать для подсчета индекса для нового ключа: -(insertion point)-1. Более того, метод binarySearch является самым простым и эффективным методом поиска элемента в отсортированном массиве в Java.
Рассмотрим следующий пример. У нас есть таблица ввода с четырьмя элементами, упорядоченными по возрастанию. Мы хотели бы вставить номер 3 в эту таблицу. Вот как мы можем подсчитать индекс точки вставки.
Допустим, мы хотим вставить новый элемент в отсортированную таблицу. Arrays.binarySearch() возвращает индекс ключа поиска, если он содержится в таблице. В противном случае она возвращает точку вставки, которую мы можем использовать для подсчета индекса для нового ключа: -(insertion point)-1. Более того, метод binarySearch является самым простым и эффективным методом поиска элемента в отсортированном массиве в Java.
Рассмотрим следующий пример. У нас есть таблица ввода с четырьмя элементами, упорядоченными по возрастанию. Мы хотели бы вставить номер 3 в эту таблицу. Вот как мы можем подсчитать индекс точки вставки.
👍11🤔3