Java Learning
18.8K subscribers
1.61K photos
1 video
3 files
986 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#вопросы_с_собеседований
Какие классы поддерживают чтение и запись потоков в компрессированном формате?

☕️ DeflaterOutputStream — компрессия данных в формате deflate.
☕️ Deflater — компрессия данных в формат ZLIB.
☕️ ZipOutputStream — потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream — потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream — декомпрессия данных в формате deflate.
☕️ Inflater — декомпрессия данных в формате ZLIB.
☕️ ZipInputStream — потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream — потомок InflaterInputStream для декомпрессии данных в формате GZIP.
👍12
#Вопросы_с_собеседования

Сколько объектов типа String создает эта программа?

Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
👍34🤔5😱5
#Вопросы_с_собеседования

Как принудительно запустить поток?

Ответ:
Никак. В Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.
👍32
#Вопросы_с_собеседования

Что такое «абсолютный путь» и «относительный путь»?

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

Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активного приложения.
👍16
Небольшая задачка

Напишите программу, которая случайным образом выводит порядковый номер дня недели и сообщает рабочий этот день или выходной.
👍17
#Вопросы_с_собеседования

Чем различаются 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, примеры, документацию, различные утилиты.
👍341
Краткая шпаргалка по паттернам проектирования
👍671
Что такое полиморфизм?

Полиморфизм — это способность программы идентично использовать объекты с одинаковым интерфейсом без информации о конкретном типе этого объекта. Как говорится, один интерфейс — множество реализаций.

При помощи полиморфизма можно объединять и использовать разные типы объектов по их общему поведению.

Например, есть у нас класс Animal, у которого есть два наследника — Dog и Cat. У общего класса Animal есть общее поведение для всех — издавать звук. В случае, когда нужно собрать воедино всех наследников класса Animal и выполнить метод “издавать звук”, используем возможности полиморфизма. Вот как будет это выглядеть(см картинку).

Таким образом, полиморфизм помогает нам. Причем это относится и к полиморфным (перегруженным) методам.
👍23😢1
Бинарный поиск в массивах

Допустим, мы хотим вставить новый элемент в отсортированную таблицу. Arrays.binarySearch() возвращает индекс ключа поиска, если он содержится в таблице. В противном случае она возвращает точку вставки, которую мы можем использовать для подсчета индекса для нового ключа: -(insertion point)-1. Более того, метод binarySearch является самым простым и эффективным методом поиска элемента в отсортированном массиве в Java.

Рассмотрим следующий пример. У нас есть таблица ввода с четырьмя элементами, упорядоченными по возрастанию. Мы хотели бы вставить номер 3 в эту таблицу. Вот как мы можем подсчитать индекс точки вставки.
👍11🤔3
Дорожная карта Java-разработчика в 2023 году: путь с нуля до первой работы

В данной статье мы расскажем, в каком порядке изучать Java, чтобы начать свой путь в разработке и стать востребованным специалистом в 2023 году.

Смотреть статью
👍9
#Вопросы_с_собеседования

Что выведет эта программа?

Ответ:
Программа напечатает “String method”. Прежде всего стоит отметить, что null не является объектом в Java. Но null можно присвоить любой ссылке. Java String является объектом класса java.lang.String. В этой программе компилятор Java выбирает вызов перегруженного метода с наиболее конкретными параметрами. Это будет String, потому что класс String более конкретен, чем класс Object.
👍49😱251
#Вопросы_с_собеседования

Что такое «поток-демон»(daemon thread)?

Потоками-демонами называются потоки, работающие в фоновом режиме для нашей программы.

В Java процесс завершается тогда, когда завершается последний его поток. Даже если метод main() уже завершился, но еще выполняются порожденные им потоки, система будет ждать их завершения.
Однако это правило не относится к особому виду потоков – демонам. Если завершился последний обычный поток процесса, и остались только потоки-демоны, то они будут принудительно завершены и выполнение процесса закончится. Чаще всего потоки-демоны используются для выполнения фоновых задач, обслуживающих процесс в течение его жизни.
👍26🤔1
Java Learning
#Вопросы_с_собеседования Что такое «поток-демон»(daemon thread)? Потоками-демонами называются потоки, работающие в фоновом режиме для нашей программы. В Java процесс завершается тогда, когда завершается последний его поток. Даже если метод main() уже…
#Вопросы_с_собеседования

Как создать поток-демон?

Объявить поток демоном достаточно просто — нужно перед запуском потока вызвать его метод setDaemon(true).

Проверить, является ли поток демоном, можно вызвав его метод boolean isDaemon().
👍19
#вопросы_с_собеседований
Как получить текущую дату с использованием Date Time API из Java 8?

LocalDate.now();

Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?

LocalDate.now().plusWeeks(1);
LocalDate.now().plusMonths(1);
LocalDate.now().plusYears(1);
LocalDate.now().plus(1, ChronoUnit.DECADES);
👍27
В чем разница между sleep() и wait(), notify() и notifyAll() методами?

Метод sleep()заставляет поток "заснуть" на определенное время(указывается в миллисекундах) после чего поток продолжит свою работу. Метод wait() освобождает монитор занятый потоком так что другие потоки могут использовать указанный блок кода и поток переходит в состояние waiting - поток будет ждать вызова метода notify() или notifyAll() другим потоком. Разница между notify() и notifyAll()в том что notify() "высвободит" один поток(какой именно определить нельзя) а notifyAll() "освободит" все потоки из состояния waiting в состояние running.
👍20
1👍1🔥1