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
Метод Collections.shuffle

Метод shuffle() случайным образом перемешивает все элементы переданного списка.
👍29
Также напоминаю, что у нас есть чат для обсуждений

@Java_Learning_Chat
👍3
#Вопросы_с_собеседования

Чем полезны неизменяемые объекты?

Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками.

Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX()
вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
👍35
#вопросы_с_собеседований
Какие классы поддерживают чтение и запись потоков в компрессированном формате?

☕️ 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