Size: a a a

Библиотека джависта

2020 April 06
Библиотека джависта
Почему вы не смотрите курсы? Что вам в них не нравится?
источник
Библиотека джависта
Уроки по реализации шаблонов проектирования в Java.

https://proglib.io/w/40f61152
источник
2020 April 07
Библиотека джависта
Что такое Dependency Injection?
источник
Библиотека джависта
Dependency Injection (внедрение зависимости) — это набор паттернов и принципов разработки программного обеспечения, которые позволяют писать слабосвязный код. В полном соответствии с принципом единой обязанности объект отдаёт заботу о построении требуемых ему зависимостей внешнему, специально предназначенному для этого общему механизму.
источник
2020 April 08
Библиотека джависта
Принципы обработки тысяч соединений в Java

Общие принципы создания софта на Java, способного обрабатывать тысячи коннектов: кэширование TCP-соединений, работа с потоками и буферами, пропускная способность и специальные утилиты.

https://proglib.io/w/d036d3c9
источник
Библиотека джависта
источник
Библиотека джависта
Что выведет программа?
Анонимная викторина
41%
null
18%
IndexOutOfBoundException
41%
NoSuchElementException
Проголосовало: 2396
источник
2020 April 09
Библиотека джависта
В LinkedList нет элемента, поэтому он возвращает исключение NoSuchElementException. NoSuchElementException унаследовано от RuntimeException.
источник
Библиотека джависта
Что такое «зелёные потоки» и есть ли они в Java?
источник
2020 April 10
Библиотека джависта
Зелёные (легковесные) потоки (green threads) — потоки, эмулируемые виртуальной машиной или средой исполнения. Создание зелёного потока не подразумевает под собой создание реального потока ОС.

Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.

Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.

Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.

Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
источник
Библиотека джависта
источник
Библиотека джависта
Что выведет программа?
Анонимная викторина
17%
HELLO
11%
HELLO (Infinitely)
51%
Error: Unreachable statement
21%
Error: ; expected
Проголосовало: 2784
источник
2020 April 11
Библиотека джависта
В приведенном примере есть синтаксическая ошибка в цикле do-while, так как в нем нет фигурных скобок и выражений.
источник
Библиотека джависта
#вопросы_с_собеседований
Кто кого расширяет: Queue расширяет Deque, или Deque расширяет Queue?
источник
2020 April 12
Библиотека джависта
Queue - это очередь, которая обычно (но не обязательно) строится по принципу FIFO (First-In-First-Out) - соответственно извлечение элемента осуществляется с начала очереди, вставка элемента - в конец очереди. Хотя этот принцип нарушает, к примеру, PriorityQueue, использующая «natural ordering» или переданный Comparator при вставке нового элемента.

Deque (Double Ended Queue) расширяет Queue и, согласно документации, это линейная коллекция, поддерживающая вставку/извлечение элементов с обоих концов. Помимо этого реализации интерфейса Deque могут строится по принципу FIFO, либо LIFO.

Реализации и Deque, и Queue обычно не переопределяют методы equals() и hashCode(), вместо этого используются унаследованные методы класса Object, основанные на сравнении ссылок.
источник
Библиотека джависта
источник
Библиотека джависта
Что выведет программа?
Анонимная викторина
23%
Base::show() called
45%
Derived::show() called
32%
Compiler Error
Проголосовало: 2347
источник
2020 April 13
Библиотека джависта
Как и в C++, когда функция статическая, нет runtime-полиморфизма.
источник
Библиотека джависта
#вопросы_с_собеседований
В чем заключаются преимущества и недостатки объектно-ориентированного подхода в программировании?
источник
Библиотека джависта
Хочешь стать Java экспертом? Подписывайся на канал @java_fillthegaps

✅ статьи по Java и её экосистеме
✅ паттерны и принципы разработки
✅ прохождение собеседований и карьерный рост

Посты, обязательные к прочтению:
▪️JDK, JRE, JVM, JIT и Java 11.
▪️Полный гайд по сравнению переменных.
▪️Принцип подстановки Барбары Лисков: теория и практика.
▪️Сборщики мусора. Плюсы и минусы G1.

Подписывайся: @java_fillthegaps
источник