Collection.removeIf
Метод перебирает коллекцию, и удаляет те элементы, которые соответствуют
В нашем примере мы в одну строку удаляем из списка все числа больше 5.
👉@BookJava
Метод перебирает коллекцию, и удаляет те элементы, которые соответствуют
filter
.В нашем примере мы в одну строку удаляем из списка все числа больше 5.
👉@BookJava
👍5❤1
Map.putIfAbsent
Раньше, чтобы добавить пару в Map, если её там нет, необходимо было делать следующее (часть 1 на картинке).
С появлением Java 8 всё стало гораздо проще (часть 2 на картинке).
👉@BookJava
Раньше, чтобы добавить пару в Map, если её там нет, необходимо было делать следующее (часть 1 на картинке).
С появлением Java 8 всё стало гораздо проще (часть 2 на картинке).
👉@BookJava
👍9
Forwarded from Java Geek
Метод trimToSize()
Метод
@java_geek
Метод
trimToSize()
класса ArrayList
в Java обрезает емкость экземпляра ArrayList
до текущего размера списка. Этот метод используется для обрезки экземпляра ArrayList
по числу содержащихся в нем элементов.@java_geek
👍6
Внутренний мир: Project Reactor
У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но, все-таки, как оно работает?".
https://habr.com/ru/post/694850/
👉@BookJava
У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но, все-таки, как оно работает?".
https://habr.com/ru/post/694850/
👉@BookJava
👍1
Love, Spring and HTTP Bugs
Мы команда Marketing Management GlowByte, занимаемся автоматизацией маркетинговых процессов в крупных компаниях. Решили написать небольшую статью, которая будет интересна неравнодушным к Java. Хотим поделиться на первый взгляд простыми особенностями поведения библиотек Spring Security, Spring Web, которые могут сбить с толку разработчиков, которые никогда не сталкивались с такими ситуациями.
Рассмотрим проблему, проведём анализ, тесты, проверяющие наши гипотезы, сделаем выводы и, конечно, оставим ссылку на код, чтобы можно было самостоятельно поиграться.
https://habr.com/ru/company/glowbyte/blog/695352/
👉@BookJava
Мы команда Marketing Management GlowByte, занимаемся автоматизацией маркетинговых процессов в крупных компаниях. Решили написать небольшую статью, которая будет интересна неравнодушным к Java. Хотим поделиться на первый взгляд простыми особенностями поведения библиотек Spring Security, Spring Web, которые могут сбить с толку разработчиков, которые никогда не сталкивались с такими ситуациями.
Рассмотрим проблему, проведём анализ, тесты, проверяющие наши гипотезы, сделаем выводы и, конечно, оставим ссылку на код, чтобы можно было самостоятельно поиграться.
https://habr.com/ru/company/glowbyte/blog/695352/
👉@BookJava
👍1
Шифрование и расшифровка файла с помощью Java
В области криптографии шифрование - это процесс превращения открытого текста или информации в шифротекст, или текст, который может быть расшифрован только предполагаемым получателем.
https://bookflow.ru/shifrovanie-i-rasshifrovka-fajla-s-pomoshhyu-java/
👉@BookJava
В области криптографии шифрование - это процесс превращения открытого текста или информации в шифротекст, или текст, который может быть расшифрован только предполагаемым получателем.
https://bookflow.ru/shifrovanie-i-rasshifrovka-fajla-s-pomoshhyu-java/
👉@BookJava
👍3
Неблокирующий повтор (retry) в Java и проект Loom
Повтор (retry) операции является старейшим механизмом обеспечения надежности программного обеспечения. Мы используем повторы при выполнении HTTP запросов, запросов к базам данных, отсылке электронной почты и проч. и проч.
https://habr.com/ru/post/702628/
👉@BookJava
Повтор (retry) операции является старейшим механизмом обеспечения надежности программного обеспечения. Мы используем повторы при выполнении HTTP запросов, запросов к базам данных, отсылке электронной почты и проч. и проч.
https://habr.com/ru/post/702628/
👉@BookJava
Хабр
Неблокирующий повтор (retry) в Java и проект Loom
Неблокирующий повтор (retry) в Java и проект Loom Введение Повтор (retry) операции является старейшим механизмом обеспечения надежности программного обеспечения. Мы используем повторы при выполнении...
Useful & Unknown Java Libraries
https://piotrminkowski.com/2023/01/30/useful-unknown-java-libraries/
👉@BookJava
https://piotrminkowski.com/2023/01/30/useful-unknown-java-libraries/
👉@BookJava
Запросы к MongoDB из Java с помощью билдера фильтров
https://www.baeldung.com/java-mongodb-filters
👉@BookJava
https://www.baeldung.com/java-mongodb-filters
👉@BookJava
Baeldung
Guide to Filters in MongoDB | Baeldung
Learn how to use Filters builders to perform filter operations on a MongoDB collection.
👍3
Вопросы с реального собеседования Senior Java Developer
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы
https://www.youtube.com/watch?v=sMGYAucH9yY
👉@BookJava
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы
https://www.youtube.com/watch?v=sMGYAucH9yY
👉@BookJava
YouTube
Вопросы с реального собеседования Senior Java Developer
Сегодня мы рассмотрим обзор реального интервью на позицию Senior Java Developer.
Поговорим о вопросах и ответах, а главное что из этого всего получилось.
Погнали!
Программа
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли…
Поговорим о вопросах и ответах, а главное что из этого всего получилось.
Погнали!
Программа
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли…
👍9
Что такое класс Object? Какие в нем есть методы?
Object это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы:
public boolean equals(Object obj) – служит для сравнения объектов по значению;
int hashCode() – возвращает hash код для объекта;
String toString() – возвращает строковое представление объекта;
Class getClass() – возвращает класс объекта во время выполнения;
protected Object clone() – создает и возвращает копию объекта;
void notify() – возобновляет поток, ожидающий монитор;
void notifyAll() – возобновляет все потоки, ожидающие монитор;
void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
👉@BookJava
Object это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы:
public boolean equals(Object obj) – служит для сравнения объектов по значению;
int hashCode() – возвращает hash код для объекта;
String toString() – возвращает строковое представление объекта;
Class getClass() – возвращает класс объекта во время выполнения;
protected Object clone() – создает и возвращает копию объекта;
void notify() – возобновляет поток, ожидающий монитор;
void notifyAll() – возобновляет все потоки, ожидающие монитор;
void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;
protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
👉@BookJava
Пишем Java-код с помощью Project Lombok
https://www.toptal.com/java/write-fat-free-java-code-project-lombok
👉@BookJava
https://www.toptal.com/java/write-fat-free-java-code-project-lombok
👉@BookJava
Toptal
Write Fat-free Java Code with Project Lombok
Java has some idiosyncrasies of its own and design choices that can make it rather verbose. While Java is a mature and performant programming language, developers frequently need to write boilerplate code that brings little or no real value other than complying…
👍2
Java. Многопоточность
Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс Runnable. Класс Thread. Доступ к объекту потока. Остановка выполнения и прерывание выполнения потока. Остановка текущего потока для окончания другого. Термины, связанные с многопоточностью. Критический участок кода. Семафор, Mutex. Мягкая и обязательная блокировки. Высокоуровневая конструкция Monitor. Взаимодействие потоков. Возможные ошибки одновременного доступа. Модель взаимодействия потоков через общую память. Синхронизация, её методы и состояния. Блокировка объектов. Ситуация Deadlock. Служба в отдельном потоке. Методы wait() и notify(). Контейнеры, безопасные для многопоточного доступа.
https://www.youtube.com/watch?v=dLDhB6SRXzw
👉@BookJava
Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс Runnable. Класс Thread. Доступ к объекту потока. Остановка выполнения и прерывание выполнения потока. Остановка текущего потока для окончания другого. Термины, связанные с многопоточностью. Критический участок кода. Семафор, Mutex. Мягкая и обязательная блокировки. Высокоуровневая конструкция Monitor. Взаимодействие потоков. Возможные ошибки одновременного доступа. Модель взаимодействия потоков через общую память. Синхронизация, её методы и состояния. Блокировка объектов. Ситуация Deadlock. Служба в отдельном потоке. Методы wait() и notify(). Контейнеры, безопасные для многопоточного доступа.
https://www.youtube.com/watch?v=dLDhB6SRXzw
👉@BookJava
YouTube
Java. Многопоточность (лекция 9)
«Технопарк Mail.ru Group» при МГТУ им. Н. Э. Баумана.
Курс «Углублённое программирование на Java» (зима 2015).
Лекция № 9: «Многопоточность».
Лектор — Виталий Чибриков.
Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс…
Курс «Углублённое программирование на Java» (зима 2015).
Лекция № 9: «Многопоточность».
Лектор — Виталий Чибриков.
Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс…
👍9
Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?
Метод clone() объявлен в классе Object с указанием модификатора native, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов. Одновременно он объявлен и как protected, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone() у не Cloneable объекта вызовет выбрасывание CloneNotSupportedException.
👉@BookJava
Метод clone() объявлен в классе Object с указанием модификатора native, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов. Одновременно он объявлен и как protected, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone() у не Cloneable объекта вызовет выбрасывание CloneNotSupportedException.
👉@BookJava
👍8❤1
Интервью с создателем Java Джеймсом Гослингом
Джеймс Гослинг, более известный как отец языка программирования Java, — специалист в области Computer Science из Канады. Он придумал изначальную архитектуру языка программирования Java, написал для него первый компилятор и виртуальную машину. Наш DevRel, Григорий Петров, взял интервью у Джеймса, и мы приводим полный текст этого интервью в русском переводе. Приятного чтения!
https://evrone.ru/james-gosling-interview
👉@BookJava
Джеймс Гослинг, более известный как отец языка программирования Java, — специалист в области Computer Science из Канады. Он придумал изначальную архитектуру языка программирования Java, написал для него первый компилятор и виртуальную машину. Наш DevRel, Григорий Петров, взял интервью у Джеймса, и мы приводим полный текст этого интервью в русском переводе. Приятного чтения!
https://evrone.ru/james-gosling-interview
👉@BookJava
evrone.ru
Интервью создателя Java Джеймса Гослинга для Evrone
Джеймс Гослинг, более известный как отец языка программирования Java, — специалист в области Computer Science из Канады. Он придумал изначальную архитектуру языка программирования Java, написал для него первый компилятор и виртуальную машину. Наш DevRel,…
👍9
Где и как вы можете использовать приватный конструктор?
Приватный (помеченный ключевым словом
👉@BookJava
Приватный (помеченный ключевым словом
private
, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.👉@BookJava
👍6
Не верьте ChatGPT и используйте KotUniL
В последние недели медиа и социальные сети захлеснул поток сообщений о диалогах с ChatGPT. Только на Хабре поиск по этому термину показывает сегодня полтора десятка статей.
Попробовал пообщаться с ChatGPT и я. Результат общения вынесен в заголовок.
Хотите узнать, почему ChatGPT верить нельзя и почему лучше использовать KotUniL - читайте дальше.
А если вы решили читать дальше, не воспринимайте заголовок буквально. Это все-таки ирония. К сожалению, я не предупредил об этом читателей в первом варианте этой статьи и получил в результате массу минусов.
Итак, как было дело.
Сначала я пообщался с ChatGPT (далее для простоты я буду иногда обозначать его ИИ) на английском, а потом на русском.
https://habr.com/ru/post/707548/
👉@BookJava
В последние недели медиа и социальные сети захлеснул поток сообщений о диалогах с ChatGPT. Только на Хабре поиск по этому термину показывает сегодня полтора десятка статей.
Попробовал пообщаться с ChatGPT и я. Результат общения вынесен в заголовок.
Хотите узнать, почему ChatGPT верить нельзя и почему лучше использовать KotUniL - читайте дальше.
А если вы решили читать дальше, не воспринимайте заголовок буквально. Это все-таки ирония. К сожалению, я не предупредил об этом читателей в первом варианте этой статьи и получил в результате массу минусов.
Итак, как было дело.
Сначала я пообщался с ChatGPT (далее для простоты я буду иногда обозначать его ИИ) на английском, а потом на русском.
https://habr.com/ru/post/707548/
👉@BookJava
👍6