LocalDateTime объединяет вместе LocaleDate и LocalTime, содержит дату и время в календарной системе ISO-8601 без привязки к часовому поясу. Время хранится с точностью до наносекунды. Содержит множество удобных методов, таких как plusMinutes, plusHours, isAfter, toSecondOfDay и т.д.
💥 Вышла Java 18
Вышла общедоступная версия Java 18. В этот релиз попало более 2000 закрытых задач и 9 JEP'ов. Release Notes можно посмотреть здесь. Изменения API можно посмотреть по этой ссылке.
Ссылки на скачивание:
Oracle JDK
OpenJDK
Подробнее
Вышла общедоступная версия Java 18. В этот релиз попало более 2000 закрытых задач и 9 JEP'ов. Release Notes можно посмотреть здесь. Изменения API можно посмотреть по этой ссылке.
Ссылки на скачивание:
Oracle JDK
OpenJDK
Подробнее
Oracle
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
#вопросы_с_собеседований
Какое из следующих утверждений о потоках неверно?
☕️ Если метод start() вызывается дважды для одного и того же объекта Thread, во время выполнения генерируется исключение.
☕️ Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения.
☕️ Если метод run() вызывается напрямую для объекта Thread, во время выполнения генерируется исключение.
☕️ Если метод sleep() вызывается для потока, во время выполнения синхронизированного кода, блокировка не снимается.
Какое из следующих утверждений о потоках неверно?
☕️ Если метод start() вызывается дважды для одного и того же объекта Thread, во время выполнения генерируется исключение.
☕️ Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения.
☕️ Если метод run() вызывается напрямую для объекта Thread, во время выполнения генерируется исключение.
☕️ Если метод sleep() вызывается для потока, во время выполнения синхронизированного кода, блокировка не снимается.
Правильный ответ: 3. Если метод run() вызывается напрямую для объекта Thread, во время выполнения исключение не генерируется. Однако, код, написанный в методе run() будет выполняться текущим, а не новым потоком. Таким образом, правильный способ запустить поток – это вызов метода start(), который приводит к выполнению метода run() новым потоком.
Вызов метода start() дважды для одного и того же объекта Thread приведёт к генерированию исключения IllegalThreadStateException во время выполнения, следовательно, утверждение 1 верно. Утверждение 2 верно, так как порядок, в котором выполняются потоки, определяется Планировщиком потоков, независимо от того, какой поток запущен первым. Утверждение 4 верно, так как поток не освободит блокировки, которые он держит, когда он переходит в состояние Ожидания.
Вызов метода start() дважды для одного и того же объекта Thread приведёт к генерированию исключения IllegalThreadStateException во время выполнения, следовательно, утверждение 1 верно. Утверждение 2 верно, так как порядок, в котором выполняются потоки, определяется Планировщиком потоков, независимо от того, какой поток запущен первым. Утверждение 4 верно, так как поток не освободит блокировки, которые он держит, когда он переходит в состояние Ожидания.
🗣 Путь в Java, или Зачем нужен ментор: интервью
Поговорили с Java-разработчиком Анатолием Марандюком. О выборе Java, курсах, собеседованиях и хобби-проектах. Анатолий готов ответить на ваши вопросы в комментариях к посту.
Читать далее
Поговорили с Java-разработчиком Анатолием Марандюком. О выборе Java, курсах, собеседованиях и хобби-проектах. Анатолий готов ответить на ваши вопросы в комментариях к посту.
Читать далее
Библиотека программиста
🗣 Путь в Java, или Зачем нужен ментор: интервью
Поговорили с Java-разработчиком Анатолием Марандюком. О выборе Java, курсах, собеседованиях и хобби-проектах. Анатолий готов ответить на ваши вопросы в комментариях к посту.
Метод filter() является промежуточной операцией, принимающей предикат, который фильтрует все элементы, возвращая только те, что соответствуют условию.
Вакансия Javascript, Python, QT
Требования к кандидату:
1. Опыт работы в игровой индустрии или над анимационными проектами
2. Опыт работы с программами ToonBoom и Maya
Обязательно знание:
Java Script (ECMA);
QT;
Python.
Ссылка: http://javazavr.staya.vc/job/1355815
Требования к кандидату:
1. Опыт работы в игровой индустрии или над анимационными проектами
2. Опыт работы с программами ToonBoom и Maya
Обязательно знание:
Java Script (ECMA);
QT;
Python.
Ссылка: http://javazavr.staya.vc/job/1355815
#вопросы_с_собеседований
Есть ли смысл определять для сервлета конструктор? Каким образом лучше инициализировать данные?
Есть ли смысл определять для сервлета конструктор? Каким образом лучше инициализировать данные?
Есть ли смысл определять для сервлета конструктор? Каким образом лучше инициализировать данные?
Большого смысла определять для сервлета конструктор нет, т.к. инициализировать данные лучше не в конструкторе, а переопределив метод
Большого смысла определять для сервлета конструктор нет, т.к. инициализировать данные лучше не в конструкторе, а переопределив метод
init()
, в котором имеется возможность доступа к параметрам инициализации сервлета через использование объекта ServletConfig
.Для тех, кто любит тесты по Java - https://yangx.top/javaquize.
Решай и учи темы, в которых ты плаваешь.
Решай и учи темы, в которых ты плаваешь.
Класс StringJoiner используется, чтобы создать последовательность строк, разделенных разделителем с возможностью присоединить к полученной строке префикс и суффикс:
StringJoiner joiner = new StringJoiner(".", "prefix-", "-suffix");
for (String s : "Hello the brave world".split(" ")) {
joiner.add(s);
}
System.out.println(joiner); //prefix-Hello.the.brave.world-suffix
StringJoiner joiner = new StringJoiner(".", "prefix-", "-suffix");
for (String s : "Hello the brave world".split(" ")) {
joiner.add(s);
}
System.out.println(joiner); //prefix-Hello.the.brave.world-suffix
Forwarded from Python Books. Книги по питону
Кто из вас каким либо образом связан с криптовалютами?
Anonymous Poll
6%
Да, торгую, владею
11%
Да владею
11%
Сталкиваюсь
72%
Не связан никак
Инкапсуляция — в информатике размещение в одном компоненте данных и методов, которые с ними работают. Также может означать скрытие внутренней реализации от других компонентов.
Наследование — создание новой сущности на базе уже существующей.
Полиморфизм — возможность иметь разные формы для одной и той же сущности.
Абстракция — набор общих характеристик.
Посылка сообщений — форма связи, взаимодействия между сущностями.
Переиспользование — все что перечислено выше работает на повторное использование кода.
Это единственно верный порядок парадигм ООП, так как каждая последующая использует предыдущие.
Наследование — создание новой сущности на базе уже существующей.
Полиморфизм — возможность иметь разные формы для одной и той же сущности.
Абстракция — набор общих характеристик.
Посылка сообщений — форма связи, взаимодействия между сущностями.
Переиспользование — все что перечислено выше работает на повторное использование кода.
Это единственно верный порядок парадигм ООП, так как каждая последующая использует предыдущие.