Java | Фишки и трюки
前往频道在 Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna
显示更多6 954
订阅者
-124 小时
-117 天
+1330 天
帖子存档
6 954
⌨️ ORM и JPA
ORM (Object-Relational Mapping) — это технология, которая позволяет автоматически преобразовывать данные между объектами в программном коде и записями в реляционной базе данных. Благодаря ORM, программисты могут работать с базой данных на уровне объектов, а не SQL-запросов, что упрощает разработку.
JPA (Java Persistence API) — это стандарт спецификации ORM в Java. JPA определяет набор интерфейсов и аннотаций для работы с объектами и их сохранением в базу данных. Однако JPA сама по себе не является реализацией, а только задает стандарт. Реализации JPA включают Hibernate, EclipseLink и другие.
#java #jpa
6 954
⌨️ POJO (Plain Old Java Object) — это простой Java-объект, не зависящий от каких-либо специфичных библиотек, фреймворков или технологий. Такой объект обычно содержит только поля (атрибуты) и методы доступа (геттеры и сеттеры), без дополнительной логики, аннотаций или наследования от специфических классов.
Пример POJO:
public class Person {
private String name;
private int age;
// Конструктор
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Геттеры и сеттеры
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
POJO используется для создания простых объектов без привязки к какой-либо специфической архитектуре или фреймворку. Например, в JPA объекты-сущности часто являются POJO, что позволяет их использовать независимо от платформы.
#java #pojo6 954
+9
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
6 954
public class Survive {
private Survive internalInstance = new Survive();
public Survive() throws Exception {
throw new Exception("I'm not coming out");
}
public static void main(String[] args) {
try {
Survive b = new Survive();
System.out.println("WIN!");
} catch (Exception ex) {
System.out.println("LOSE!");
}
}
}
#java #quest6 954
⌨️ Логические операторы
«И» (AND): конъюнкция, логическое умножение
true && true = true
false && false = false
true && false = false
false && true = false
true & true = true
false & false = false
true & false = false
false & true = false
Побитовые операции:
1010
&&&&
1001
====
1000
Включающее «ИЛИ» (OR): дизъюнкция, логическое сложение
true || true = true
false || false = false
true || false = true
false || true = true
true | true = true
false | false = false
true | false = true
false | true = true
Побитовые операции:
1010
||||
1001
====
1011
Исключающее «ИЛИ» (XOR): строгая дизъюнкция, логическое вычитание
true ^ true = false
false ^ false = false
true ^ false = true
false ^ true = true
Побитовые операции:
1010
^^^^
1001
====
0011
«НЕ» (NOT): инверсия, отрицание
!true = false
!false = true
Побитовый унарный оператор NOT:
~~
01
==
10
Порядок выполнения операторов
Когда в выражении несколько логических операторов, результат вычисляется с учётом их приоритета. Если нет логических скобок, то операции выполняются в таком порядке:
! ~ (NOT) & (AND) ^ (XOR) | (OR) && (условный AND) || (условный OR)Если одинаковые операции стоят по соседству, то раньше выполняется та, что левее.
6 954
Repost from Грамота от Кузьмича
Интересный факт - стектрейс можно прочитать и сверху вниз и снизу вверх.
🕵🏻Хочешь захватывающий детектив - читай сверху вниз и с каждой главой приближайся к личности убийцы.
😢Хочешь остросюжетную драму и историю крушения в хронологическом порядке - читай снизу вверх и лей слезы, глядя как медленно умирает запущенная программа.
А о том, почему все проблемы от синего - читай на инфографике.
#java #debug #автотесты
6 954
⌨️ Семейство классов *SummaryStatistics
Классы
DoubleSummaryStatistics, IntSummaryStatistics и LongSummaryStatistics служат для хранения агрегированных данных о числовом потоке. А конкретно: количество, сумма, минимальное, максимальное и среднее.
Пример:
List<Integer> iList = List.of(1, 2, 3);
IntSummaryStatistics stats = iList.stream().collect(Collectors.summarizingInt(i -> i));
System.out.println(stats);
// IntSummaryStatistics{count=3, sum=6, min=1, average=2,000000, max=3}
#java #IntSummaryStatistics #DoubleSummaryStatistics #LongSummaryStatistics6 954
Короче, ищем менторов — Middle и Senior Java-разработчиков
Ищем в ШОРТКАТ — менторскую платформу от команды разработчиков из бигтеха. Мы помогаем найти крутую работу, апнуть грейд или сменить стек.
Что надо будет делать: проводить тестовые собесы → оценивать грейд → помогать разбираться в сложных темах.
Что взамен:
От 40К за 5-7 часов работы в неделю
Доступ к обучению и комьюнити сильных менторов из Booking, Сбер, Oracle, Tinkoff
Возможность выступать на эфирах, куда уже приходят 500+ джавистов, и стать заметнее на рынке
Заполняй форму — свяжемся и расскажем подробности ➡️ https://forms.gle/rFY9z9GKggqfgSS76
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid 2VtzqwfQhLM
6 954
⌨️ Несколько способов избежать NullPointerException:
✔️ Используйте класс
Optional из пакета java.util для работы с потенциально пустыми значениями.
✔️ При сравнении константы с переменной, полученной извне, вызывайте метод equals() на константе, а не на переменной.
✔️ Для сравнения двух переменных используйте метод java.util.Objects#equals.
✔️ Применяйте библиотеки, обеспечивающие null-безопасность, например, Apache Commons StringUtils.
✔️ Всегда вызывайте методы equals() и equalsIgnoreCase() на объектах, которые гарантированно не равны null.
✔️ Вместо метода toString(), который может вызвать NullPointerException, используйте String.valueOf().
✔️ Используйте аннотации @NotNull и @Nullable, доступные в вашей IDE, для указания допустимости null.
✔️ Возвращайте пустую коллекцию (например, java.util.Collections#emptyList) вместо null при работе с коллекциями в методах.
#java #NullPointerException #Optional6 954
⚡️ Статьи крупнейших IT изданий теперь в Telegram!
Здесь публикуют лучшие статьи для программистов со всех направлений — заходи, читай, изучай!
Недельный дайджест:
🔎 Что почитать по машинному обучению: подборка из 6 книг
🔎 Черт тебя возьми, CSS. Часть 3
🔎 Ассемблер для программистов на языках высокого уровня: Hello World
🔎 Python: как переменные работают на самом деле? Погружаемся в байткод и C
🔎 Как мы перенесли web-сервис в Telegram Mini Apps. Опыт Точка.Нетворк
🔎 Обход блокировок с помощью Double
🔎 Как починить GoodbyeDPI, если он перестал работать 22.09.24
🔎 «Голая Java» или разработка без всего
🔎 CodeChecker: анализируем большой проект на С++ быстро, эффективно и бесплатно
🔎 Реагирование на инциденты ИБ в Linux-системах: база
🔗 Ссылки скоро сгорят, успей подать заявку
6 954
⌨️ Вычислить максимальное значение в одну строку
В этом нам помогут наши любимые стримы.
Так:
List<Integer> iList = List.of(1,2,3,4,5);
Integer max = iList.stream().reduce(Integer::max).orElse(null);
System.out.println(max);
А еще лучше вот так:
List<Integer> iList = List.of(1,2,3,4,5);
iList.stream().reduce(Integer::max).ifPresent(System.out::println);
#java #Stream #max6 954
♨️Clojure в действии: как он меняет правила игры для бэкенд-разработчиков?
Приглашаем вас на открытый вебинар 3 октября в 20:00 мск, где мы обсудим:
- с какими задачами сталкиваются разработчики Clojure;
- основные особенности и преимущества Clojure по сравнению с другими языками;
- какие возможности и перспективы предлагает Clojure для разработчиков.
Встречаемся в преддверии старта курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!
➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: РЕГИСТРАЦИЯ
Ждем вас!
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 954
⌨️ Stream.reduce() vs Collectors.joining()
Когда требуется конкатенировать строки с использованием
Stream, можно выбрать один из двух методов: Stream.reduce() или Stream.collect(Collectors.joining()).
Пример с Stream.reduce():
List<String> list = List.of("Str1", "Str2", "Str3");
String result = list.stream().reduce("", (a, b) -> a + b);
System.out.println(result); // Str1Str2Str3
Пример с Collectors.joining():
List<String> list = List.of("Str1", "Str2", "Str3");
String result = list.stream().collect(Collectors.joining());
System.out.println(result); // Str1Str2Str3
Использование reduce() для конкатенации строк не является оптимальным с точки зрения производительности. При каждом вызове операции +, создается новая строка, так как строки в Java неизменяемы. Это приводит к увеличению нагрузки на память из-за создания множества промежуточных объектов.
В свою очередь, метод Collectors.joining() использует StringBuilder для сборки строк, что значительно эффективнее. Он избегает создания лишних объектов и снижает потребление памяти.
#java #Stream #reduce #joining6 954
Cамый простой способ изучить Java — залезть в голову профи
Один из лучших айтишников России учит базе кодинга в Telegram. Даже гуманитарий поймёт, как создавать приложения, сайты, игры и чат-боты.
Достаточно подписаться на «Секреты Java», где каждый день появляются гайды, готовые примеры кода и лучших практик.
И всё это бесплатно — вместо сотен тысяч рублей за курсы. Стартовать в прибыльной профессии с нуля вы сможете гораздо проще!
Теперь обучиться Java может каждый: @java_secrets
6 954
public class Quest {
public static void main(String[] args) {
Integer a = 128;
Integer b = 128;
System.out.print(a == b);
System.out.print("-");
Integer x = 1;
Integer y = 1;
System.out.print(x == y);
}
}
#java #quest6 954
👩💻 Java уже в Telegram!
Вот обширная база контента по разработке на Java,
которая ежедневно пополняется новыми постами:
Обучение Java с нуля
Обучение Spring с нуля
Обучение Hibernate с нуля
Обучение JUnit с нуля
Обучение Maven с нуля
📌 Ресурсы, гайды, шпаргалки, задачи и книги — всё собрано в одном месте: @java_ready
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
