Библиотека джависта | Java, Spring, Maven, Hibernate
24.8K subscribers
1.88K photos
38 videos
42 files
2.67K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Каким образом из вложенного класса получить доступ к полю внешнего класса?

Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
🧵 Введение в многопоточность в Java. Часть 2. Жизненный цикл потоков, Thread.join() и потоки-демоны

В этой части узнаем, какие состояния проходят потоки в своем жизненном цикле, что такое ожидание потоков и что такое потоки-демоны.

🔗 Основной сайт
🔗 Зеркало
Сборка мусора в неисправных JVM, проактивный подход

Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.

https://habr.com/ru/company/timeweb/blog/700224/
Создаем умные типы данных при помощи records и enums

Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".

Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями.
🤔

Приятного чтения!

https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums
В следующем году состоится релиз Java 20, но мы уже сегодня можем говорить о том, что нового будет в новой версии.

В предложенном сегодня видео рассмотрены:
✔️ Последовательные коллекции
✔️ Фабричные методы для коллекций
✔️ Сопоставление с образцом для оператора Switch
✔️ Паттерны для записей
✔️ Примитивные классы
и др.

Приятного просмотра!
Spring: новости за прошедшую неделю

Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).

Приятного чтения! 😃

Читать статью
🐕🖥 16 универсальных идей для пет-проектов вне зависимости от языка

Хотите создать что-нибудь эдакое, но вам не хватает фантазии и вдохновения? Держите 16 идей для разработки собственного проекта от «Библиотеки программиста».

🔗 Основной сайт
🔗 Зеркало
💡 8 IT-профессий для тех, кто не хочет программировать

В погоне за большими и, как оказывается впоследствии, совсем не легкими деньгами некоторые люди задумываются об IT-профессиях. Но что делать, если вы не любите программировать, но хотите попасть в IT и получать достойную зарплату? Рассказываем о 8 IT-профессиях, в которых не нужно программировать.

🔗 Основной сайт
🔗 Зеркало
Друзья, Vlad Mihalcea подготовил небольшое видео на тему извлечения объектов при помощи JPA и Hibernate. 😃

В этом видео рассмотрено следующее:
✔️ Непосредственное извлечение объектов
✔️ JPQL запросы
✔️ SQL запросы
✔️ Запросы Criteria API

Приятного просмотра!
🛠 Программирование без кода: немного о no-code и low-code разработке

Не нравится кодить или просто не получается, но очень хочется? Или нужно быстро собрать и протестировать MVP? Попробуй no-code и low-code программирование.

🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?

Непосредственно вызов finalize() происходит в отдельном потоке Finalizer (java.lang.ref.Finalizer.FinalizerThread), который создаётся при запуске виртуальной машины (в статической секции при загрузке класса Finalizer). Методы finalize() вызываются последовательно в том порядке, в котором были добавлены в список сборщиком мусора. Соответственно, если какой-то finalize() зависнет, он подвесит поток Finalizer, но не сборщик мусора. Это в частности означает, что объекты, не имеющие метода finalize(), будут исправно удаляться, а вот имеющие будут добавляться в очередь, пока поток Finalizer не освободится, не завершится приложение или не кончится память.

То же самое применимо и выброшенным в процессе finalize() исключениям: метод runFinalizer() у потока Finalizer игнорирует все исключения выброшенные в момент выполнения finalize(). Таким образом возникновение исключительной ситуации никак не скажется на работоспособности сборщика мусора.
#вопросы_с_собеседований
Какие есть особенности класса String?

• Это неизменяемый (immutable) и финализированный тип данных;
• Все объекты класса String JVM хранит в пуле строк;
• Объект класса String можно получить, используя двойные кавычки;
• Можно использовать оператор + для конкатенации строк;
• Начиная с Java 7 строки можно использовать в конструкции switch.