Определение и отличие IP адресов LAN, PPP в Java. Использование DatagramSocket для нестандартных ситуаций
В некоторых случаях, например, при работе с Linux-системами, InetAddress.getLocalHost() может давать неожиданный результат. В таких ситуациях может быть полезно использовать другой способ — через DatagramSocket, отправляя запрос в сеть:
import java.net.*;
public class GetPreferredIP {
public static void main(String[] args) throws SocketException {
try (final DatagramSocket socket = new DatagramSocket()) {
socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
System.out.println(socket.getLocalAddress().getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
⚡ Пишем веб-сервис на Java, а затем преобразуем его в Kotlin!
📅 Дата: 12 ноября в 19:00 МСК
Записаться на урок: 👉 https://otus.pw/KiBHk/?erid=2VtzqvgwWxu
Будет интересно: Java-разработчикам и бэкенд-разработчикам на Kotlin.
В первой части занятия познакомимся с основными концепциями:
✅ null-безопасность
✅ сокращение шаблонного кода
✅ лямбда-выражения
Во второй части – напишем веб-сервис с CRUD-операциями на Java, а затем преобразуем его в Kotlin. Так вы увидете, как синтаксис Kotlin упрощает код.
👨🏫 Вебинар проведёт Сергей Прощаев, ведущий инженер и Java-разработчик в крупной компании.
После вебинара вы сможете приобрести курс «Kotlin Backend Developer. Professional» по специальной цене и даже в рассрочку!
🔗 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/KiBHk/?erid=2VtzqvgwWxu
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Подборка Telegram каналов для программистов
/channel/piterspb Канал о Санкт-Петербурге 🌇❤️💙
Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин 👩
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
/channel/Excel_lifehack
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Приглашаем на пятый юбилейный митап IT Talk by Sber в Новосибирске! ⚡️
В этот раз мы вернёмся к истокам — поговорим про Java и всё, что с ним связано. Гарантируем, что на митапе тебе будет что и кого послушать и с кем пообщаться!
Когда и где: 14 ноября, Новосибирск, лофт-парк «Подземка».
Темы и спикеры:
✅Разделяй и властвуй: Практический подход к горизонтальному масштабированию реляционных баз данных в Java (Дмитрий Дрожжин, Lead Java-разработчик)
✅Различия и особенности локального запуска и запуска в контейнере (Вячеслав Гуров, Senior Java-разработчик)
✅Использование коллекций java.util.concurrent для разных моделей Producer-Consumer с различной интенсивностью операций добавления, удаления, поиска и количеством участников (Роман Бондарь, Lead Java-разработчик)
Как попасть на мероприятие? Регистрируйся и приходи 14 ноября!💚
👩💻 Обучение для тех, кто хочет освоить Java на профессиональном уровне — JVM с профилированием и оптимизацией приложений в облаках.
Пройди тест по Java и проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на продвинутый курс "Java Developer. Advanced" от OTUS по специальной цене.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cEdAyT
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Хотите упростить JPA-запросы в Spring Data?
Ознакомьтесь с демонстрацией Query By Example (QBE)! Создавайте динамические, безопасные для типов запросы без шаблонов.
Идеально подходит для гибких форм поиска
Java 23 + Spring Boot + Spring Data JPA
https://github.com/danvega/qbe
👉@BookJava
В чем отличие между поверхностным и глубоким клонированием?
Поверхностное копирование копирует настолько малую часть информации об объекте, насколько это возможно. По умолчанию, клонирование в Java является поверхностным, т.е. класс Object не знает о структуре класса, которого он копирует. Клонирование такого типа осуществляется JVM по следующим правилам:
✔️ Если класс имеет только члены примитивных типов, то будет создана совершенно новая копия объекта и возвращена ссылка на этот объект.
✔️ Если класс помимо членов примитивных типов содержит члены ссылочных типов, то тогда копируются ссылки на объекты этих классов. Следовательно, оба объекта будут иметь одинаковые ссылки.
Глубокое копирование дублирует абсолютно всю информацию объекта:
✔️ Нет необходимости копировать отдельно примитивные данные;
✔️ Все члены ссылочного типа в оригинальном классе должны поддерживать клонирование. Для каждого такого члена при переопределении метода clone()
должен вызываться super.clone();
✔️ Если какой-либо член класса не поддерживает клонирование, то в методе клонирования необходимо создать новый экземпляр этого класса и скопировать каждый его член со всеми атрибутами в новый объект класса, по одному.
👉@BookJava
Три быстрых способа отображения Java-объектов в пользовательском интерфейсе
В процессе разработки часто наступает момент, когда необходимо быстро отобразить на экране структуры данных в удобочитаемом формате. Во время разработки отладчики часто предоставляют красивое древовидное представление объектов данных, которое помогает визуализировать структуру. Создать нечто подобное для пользовательского интерфейса вручную, конечно, можно, но во многих случаях это слишком дорого - особенно в случае быстрой разработки приложений (RAD) или внутренних бизнес-приложений.
Сегодня генеративный ИИ может создавать достойные визуализации, но на ранних этапах разработки более идеальным было бы полностью динамическое решение.
https://vaadin.com/blog/three-quick-ways-to-display-your-java-objects-in-the-ui
👉@BookJava
Совет💡
До Hibernate 6 для правильной настройки требовалось установить правильный dialect для используемой БД. Начиная с версии 6 это больше не требуется. Теперь Hibernate 6 определяет правильный Dialect на основе JDBC URL и JDBC Metadata.
https://docs.jboss.org/hibernate/orm/6.3/javadocs/org/hibernate/cfg/JdbcSettings.html#DIALECT
👉@BookJava
Тестовое собеседование на Middle Python-разработчика в четверг
31 октября(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
1. Савва Демиденко, ex. TechLead в Яндексе, Авито и другом русском бигтехе будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Савве
Что узнаешь на прямом эфире от ШОРТКАТ:
— Чего ждут от кандидатов на Middle позиции в Python-разработке
— Какие вопросы задают на интервью и зачем
— Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_python_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvRsoXA
⁉️ Открытый урок «Spring - разбор (не)стандартных вопросов интервью»
🗓 6 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
На вебинаре разберем:
✔️какие вопросы могут встретиться на интервью по теме разработки на Spring Framework
✔️ а так же разберем ровно тот объем информации, который необходим для того, чтобы дать на них развернутый, комплексный ответ.
🔗 Ссылка на регистрацию: https://vk.cc/cDxCWyРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Помеченные операторы (break и continue):
Улучшите читаемость управления потоком с помощью меток.
loop:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break loop; // Exit the loop labeled 'loop'
}
System.out.println(i);
}
Двойная инициализация с помощью фигурных скобок (Java SE 7+):
Кратко инициализируйте коллекции.
Map<String, Integer> fruits = Map.of("apple", 1, "banana", 2);
System.out.println(fruits); // Output: {apple=1, banana=2}
Проверка на null с помощью OptionalOptional
помогает избежать NullPointerExceptions.
String name = "Alice";
Optional<String> maybeName = Optional.ofNullable(name);
System.out.println(maybeName.orElse("Nobody")); // Output: Alice
Как жить без IntelliJ IDEA? Часть №1. Собери сам
На российском рынке сложилась сложная ситуация с IDE для Java-разработчиков. Новости, связанные с ограничением скачивания IntelliJ IDEA Ultimate, недоступностью JetBrains маркетплейса и блокировкой лицензий, которые использовались на территории РФ порождают огромное количество вопросов, на которые не у всех есть ответы.
Команда Spring АйО подготовила цикл статей, в которых постарается ответить на все вопросы, связанные с уходом IntelliJ IDEA из России.
https://habr.com/ru/companies/spring_aio/articles/852526/
👉@BookJava
Определение и отличие IP адресов LAN, PPP в Java
Чтобы определить IP-адрес локальной машины с использованием Java, примените следующий код:
import java.net.*;
public class GetIP {
public static void main(String[] args) throws UnknownHostException {
System.out.println(InetAddress.getLocalHost().getHostAddress());
}
}
import java.net.*;
import java.util.*;
public class GetMultiIPs {
public static void main(String[] args) throws SocketException {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface iface = interfaces.nextElement();
if (iface.isLoopback() || !iface.isUp()) continue;
Enumeration<InetAddress> addresses = iface.getInetAddresses();
while(addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
if (addr instanceof Inet4Address) {
System.out.println(iface.getDisplayName() + " – " + addr.getHostAddress());
}
}
}
}
}
Mastering Java Streams: Полное руководство для разработчиков
Java Streams, представленные в Java 8, — одно из самых мощных дополнений к языку. Они позволяют выполнять операции в функциональном стиле с коллекциями и последовательностями, изменяя подход к обработке данных в Java. Streams упрощают такие задачи, как фильтрация, отображение и сбор данных, а также поддерживают параллельные операции для повышения производительности. В этой статье мы рассмотрим основы Streams, обсудим виды поддерживаемых операций и приведем примеры, которые помогут вам максимально эффективно использовать эту важную функцию.
https://dev.to/be11amer/mastering-java-streams-a-complete-guide-for-developers-495d
👉@BookJava
Примеры поведенческих шаблонов проектирования
🔴Цепочка обязанностей (Chain of responsibility) - Предназначен для организации в системе уровней ответственности.
🔴Команда (Command) - Представляет действие. Объект команды заключает в себе само действие и его параметры.
🔴Интерпретатор (Interpreter) - Решает часто встречающуюся, но подверженную изменениям, задачу.
🔴Итератор (Iterator) - Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого + __из объектов, входящих в состав агрегации.
🔴Посредник (Mediator) - Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.
🔴Хранитель (Memento) - Позволяет, не нарушая инкапсуляцию зафиксировать и сохранить внутренние состояния объекта так, чтобы позднее восстановить его в этих состояниях.
🔴Наблюдатель (Observer) - Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии.
🔴Состояние (State) - Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.
🔴Стратегия (Strategy) - Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости.
🔴Шаблонный метод (Template method) - Определяет основу алгоритма и позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
🔴Посетитель (Visitor) - Описывает операцию, которая выполняется над объектами других классов. При изменении класса Visitor нет необходимости изменять обслуживаемые классы.
👉@BookJava
Советы по Spring 💡
Чтобы выполнять действия в транзакции базы данных, вы можете использовать шаблон Spring TransactionTemplate вместо @Transactional
👉@BookJava
Лучшие книги по Java
Основы Java:
1. "Head First Java" от Кэти Сьерра и Берт Бейтс
Эта книга предлагает уникальный подход к обучению с использованием визуальных элементов и интерактивных упражнений. Она идеально подходит для тех, кто только начинает изучать Java и хочет получить прочные основы. Книга написана в легком и доступном стиле, что делает процесс обучения увлекательным и эффективным.
2. "Java: A Beginner's Guide" от Герберта Шилдта
Герберт Шилдт — известный автор учебников по программированию, и его книга "Java: A Beginner's Guide" является отличным ресурсом для начинающих. В этой книге он подробно объясняет основные концепции Java, начиная с самых простых и заканчивая более сложными. Книга написана в доступном стиле и включает множество примеров кода.
3. "Effective Java" от Джошуа Блоха
Хотя эта книга не предназначена исключительно для новичков, она является незаменимым ресурсом для тех, кто хочет писать качественный и эффективный код на Java. Джошуа Блох делится своими рекомендациями и лучшими практиками, которые помогут вам избежать распространенных ошибок и улучшить качество вашего кода.
Продвинутый уровень:
1. "Java Concurrency in Practice" от Брайана Гетца и других авторов
Эта книга является обязательной для тех, кто хочет углубиться в тему многопоточности и конкурентного программирования на Java. Она охватывает все аспекты, начиная от базовых концепций и заканчивая сложными паттернами. Книга написана командой экспертов, что делает её особенно ценной.
2. "Clean Code: A Handbook of Agile Software Craftsmanship" от Роберта Мартина
Хотя эта книга не посвящена исключительно Java, она является важным ресурсом для любого программиста. Роберт Мартин делится своими принципами написания чистого и поддерживаемого кода. Книга написана в доступном стиле и включает множество примеров кода.
3. "Java Performance: The Definitive Guide" от Скотта Оукса
Эта книга поможет вам понять, как оптимизировать производительность ваших Java-приложений. Скотт Оукс объясняет, как измерять и улучшать производительность кода. Книга написана в доступном стиле и включает множество примеров кода.
👉@BookJava
👩💻 Пройди тест по Java
Проверь насколько хорошо ты знаешь Java и готов освоить 👩💻 Spring!
Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cE5WKC
🎫 Начни обучение со скидкой, подробности у менеджеров.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
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 – Всем спасибо!
источник
👉@BookJava
⚡️ Открытый урок «Введение в GraalVM: ускоряем ваши Java-приложения»
🗓 7 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от Otus.
В современной инфраструктуре всё чаще используются облачные решения, в которых контроль используемых ресурсов напрямую влияет на затраты бизнеса. Поэтому все способы экономии ресурсов важны. Тут на помощь придёт GraalVM!
Но является ли это панацеей?
На вебинаре разберем:
✔️ JIT и AOT: что это такое и в чём разница;
✔️ Причём тут GraalVM и какие особенности его применения.
🔗 Ссылка на регистрацию: https://vk.cc/cDMvBBРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Deprecated Event
В статье рассматривается новое событие в 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);
}
}
}
Spring Boot с SAML2 и Keycloak
Эта статья научит вас, как использовать аутентификацию SAML2 с Spring Boot и Keycloak. Security Assertion Markup Language (SAML) — это стандарт для обмена данными об аутентификации и авторизации между поставщиком удостоверений (IdP) и поставщиком услуг. Это протокол на основе XML, который использует токены безопасности с информацией о субъекте. В настоящее время SAML менее популярен, чем OICD (OpenID Connect), но еще не устарел. На самом деле, многие организации до сих пор используют SAML для единого входа (SSO).
https://piotrminkowski.com/2024/10/28/spring-boot-with-saml2-and-keycloak/
👉@BookJava
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
/channel/Excel_lifehack
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Подчеркивания в числовых литералах (Java SE 7+):
Улучшите читаемость с помощью подчеркиваний в числах.
long largeNumber = 123_456_789L;
System.out.println(largeNumber); // Output: 123456789
⁉️Хотите повысить свою квалификацию в Java-разработке?
👩💻 Инвестируйте в успех своей карьеры прямо сейчас! На курсе «Java Developer. Professional» вы получите:
✔️ знание актуального стека технологий;
✔️ 96 часов практической работы с детальным разбором технологий изнутри;
✔️ понимание основ функционирования JVM (сборка мусора, byteCode);
✔️ освоение приемов применения многопоточности;
✔️ практику решения сложных задач с подробным код-ревью от экспертных Java-разработчиков;
✔️ расширение возможностей использования языка Java;
- умение использовать современные фреймворки: Spring WebFlux, Kafka, реактивный Postgres, Kubernetes.
Вы получите инструменты и знания, которые помогут вам писать код быстрее и чище. Все практические навыки вы сможете незамедлительно применять в своей работе.
Готовы прокачать свою востребованность?
➡️ Пройдите короткий тест прямо сейчас, чтобы получить специальную цену на обучение: https://vk.cc/cD6pWH
🎁 А еще приятный бонус: до конца октября действует скидка 10% на обучение.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Манипуляции со строками с помощью StringBuilder
Используйте StringBuilder для частых изменений, чтобы избежать создания новых объектов String.
StringBuilder message = new StringBuilder(“Hello”);
message.append(“ World!”);
System.out.println(message); // Output: Hello World!