Deprecated Event
В статье рассматривается новое событие в JDK 22 для JFR, позволяющее отслеживать вызовы устаревших методов. Это полезно для определения зависимостей в сторонних библиотеках, которые используют методы, планируемые к удалению, такие как методы Security Manager. Такое отслеживание позволяет заранее обновить библиотеки, что может сократить технический долг и упростить переход на актуальные версии библиотек и инструментов.
https://egahlin.github.io/2024/05/31/deprecated-event.html
Мы в MAX
👉@BookJava
В статье рассматривается новое событие в JDK 22 для JFR, позволяющее отслеживать вызовы устаревших методов. Это полезно для определения зависимостей в сторонних библиотеках, которые используют методы, планируемые к удалению, такие как методы Security Manager. Такое отслеживание позволяет заранее обновить библиотеки, что может сократить технический долг и упростить переход на актуальные версии библиотек и инструментов.
public class API {
public static void enableLogging(boolean enable) {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
System.setProperty("log", String.valueOf(enable));
return null;
}
});
}
public static void runTask(Runnable task) {
try {
task.run();
} catch (ThreadDeath td) {
System.out.println("Task stopped.");
}
}
}
public class Service {
public static void log(String message) {
String shouldLog = System.getProperty("log", "true");
if (new Boolean("log")) {
System.out.print(message);
}
}
}
https://egahlin.github.io/2024/05/31/deprecated-event.html
Мы в MAX
👉@BookJava
👍2👎2
Media is too big
VIEW IN TELEGRAM
Spring – эволюция или революция!? | Spring АйО Подкаст №1
В первом выпуске подкаста Spring АйО в студии собрались 4 эксперта сообщества, чтобы попытаться раз и навсегда ответить на вопрос, чем же для нас стал Spring – эволюцией или революцией?
––––– Таймкоды –––––
00:00:00 – Всем привет!
00:00:28 – Какими были ваши первые ощущения от Spring?
00:01:14 – В чём секрет популярности Spring?
00:02:56 – Существует ли Spring без Boot?
00:05:30 – Победил ли Spring?
00:07:08 – А что с другими DI-фреймворками?
00:10:15 – Spring Native – таблетка от всех проблем?
00:14:30 – Что должно быть bean, а что нет?
00:22:10 – Как правильно внедрять зависимость?
00:26:20 – Что там со Spring Data, Михаил?
00:34:19 – AI заменит StackOverflow и Baeldung?
00:36:20 – Не становится ли Spring слишком сложным?
00:39:50 – Почему документация Spring так плоха?
00:41:23 – Есть ли рудименты в Spring?
00:43:28 – Зашел ли в тупик реактивный стек?
00:52:20 – Тупеют ли разработчики из-за Spring?
01:00:42 – В чём разница между сеньором сейчас и 10 лет назад?
01:03:40 – Java/Spring – самое удобное, что есть в этом мире?
01:05:08 – Почему Java так сильно тормозит?
01:08:43 – Чего нам не хватает в Spring?
01:18:00 – Как законтрибьютить в Spring?
01:24:15 – На чём зарабатывает Spring?
01:27:12 – Что делать после открытия Pull Request?
01:30:22 – Всем спасибо!
источник
Мы в MAX
👉@BookJava
В первом выпуске подкаста Spring АйО в студии собрались 4 эксперта сообщества, чтобы попытаться раз и навсегда ответить на вопрос, чем же для нас стал Spring – эволюцией или революцией?
––––– Таймкоды –––––
00:00:00 – Всем привет!
00:00:28 – Какими были ваши первые ощущения от Spring?
00:01:14 – В чём секрет популярности Spring?
00:02:56 – Существует ли Spring без Boot?
00:05:30 – Победил ли Spring?
00:07:08 – А что с другими DI-фреймворками?
00:10:15 – Spring Native – таблетка от всех проблем?
00:14:30 – Что должно быть bean, а что нет?
00:22:10 – Как правильно внедрять зависимость?
00:26:20 – Что там со Spring Data, Михаил?
00:34:19 – AI заменит StackOverflow и Baeldung?
00:36:20 – Не становится ли Spring слишком сложным?
00:39:50 – Почему документация Spring так плоха?
00:41:23 – Есть ли рудименты в Spring?
00:43:28 – Зашел ли в тупик реактивный стек?
00:52:20 – Тупеют ли разработчики из-за Spring?
01:00:42 – В чём разница между сеньором сейчас и 10 лет назад?
01:03:40 – Java/Spring – самое удобное, что есть в этом мире?
01:05:08 – Почему Java так сильно тормозит?
01:08:43 – Чего нам не хватает в Spring?
01:18:00 – Как законтрибьютить в Spring?
01:24:15 – На чём зарабатывает Spring?
01:27:12 – Что делать после открытия Pull Request?
01:30:22 – Всем спасибо!
источник
Мы в MAX
👉@BookJava
👍5
В чем отличие между поверхностным и глубоким клонированием?
Поверхностное копирование копирует настолько малую часть информации об объекте, насколько это возможно. По умолчанию, клонирование в Java является поверхностным, т.е. класс Object не знает о структуре класса, которого он копирует. Клонирование такого типа осуществляется JVM по следующим правилам:
✔️ Если класс имеет только члены примитивных типов, то будет создана совершенно новая копия объекта и возвращена ссылка на этот объект.
✔️ Если класс помимо членов примитивных типов содержит члены ссылочных типов, то тогда копируются ссылки на объекты этих классов. Следовательно, оба объекта будут иметь одинаковые ссылки.
Глубокое копирование дублирует абсолютно всю информацию объекта:
✔️ Нет необходимости копировать отдельно примитивные данные;
✔️ Все члены ссылочного типа в оригинальном классе должны поддерживать клонирование. Для каждого такого члена при переопределении метода
✔️ Если какой-либо член класса не поддерживает клонирование, то в методе клонирования необходимо создать новый экземпляр этого класса и скопировать каждый его член со всеми атрибутами в новый объект класса, по одному.
Мы в MAX
👉@BookJava
Поверхностное копирование копирует настолько малую часть информации об объекте, насколько это возможно. По умолчанию, клонирование в Java является поверхностным, т.е. класс Object не знает о структуре класса, которого он копирует. Клонирование такого типа осуществляется JVM по следующим правилам:
✔️ Если класс имеет только члены примитивных типов, то будет создана совершенно новая копия объекта и возвращена ссылка на этот объект.
✔️ Если класс помимо членов примитивных типов содержит члены ссылочных типов, то тогда копируются ссылки на объекты этих классов. Следовательно, оба объекта будут иметь одинаковые ссылки.
Глубокое копирование дублирует абсолютно всю информацию объекта:
✔️ Нет необходимости копировать отдельно примитивные данные;
✔️ Все члены ссылочного типа в оригинальном классе должны поддерживать клонирование. Для каждого такого члена при переопределении метода
clone()
должен вызываться super.clone();
✔️ Если какой-либо член класса не поддерживает клонирование, то в методе клонирования необходимо создать новый экземпляр этого класса и скопировать каждый его член со всеми атрибутами в новый объект класса, по одному.
Мы в MAX
👉@BookJava
👍1
☄️Как устроено автодополнение в поисковых системах?
🗓 8 октября в 20:00 МСК приглашаем на открытый урок OTUS «Как вырастить префиксное дерево». На вебинаре мы пошагово построим префиксное дерево (Trie) для слов из большого текста, добавим счётчики частот и реализуем автодополнение. Вы увидите, как по первым буквам мгновенно находятся все слова с этим префиксом и выводятся самые популярные варианты продолжений.
Урок будет полезен разработчикам, которые хотят глубже понимать работу алгоритмов и применять их для оптимизации поиска, обработки текста и построения быстрых интерфейсов.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
👉Зарегистрируйтесь сейчас и узнайте, как вырастить своё первое Trie-дерево: https://vk.cc/cQ8Kxo
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🗓 8 октября в 20:00 МСК приглашаем на открытый урок OTUS «Как вырастить префиксное дерево». На вебинаре мы пошагово построим префиксное дерево (Trie) для слов из большого текста, добавим счётчики частот и реализуем автодополнение. Вы увидите, как по первым буквам мгновенно находятся все слова с этим префиксом и выводятся самые популярные варианты продолжений.
Урок будет полезен разработчикам, которые хотят глубже понимать работу алгоритмов и применять их для оптимизации поиска, обработки текста и построения быстрых интерфейсов.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
👉Зарегистрируйтесь сейчас и узнайте, как вырастить своё первое Trie-дерево: https://vk.cc/cQ8Kxo
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1