Java | Фишки и трюки
Відкрити в Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna
Показати більше6 954
Підписники
-124 години
-117 днів
+1330 день
Архів дописів
6 954
public class Quest {
static {
main(new String[] { "Hello" });
}
public static void main(String[] args) {
System.out.print("Hi");
}
}
#java #quest6 954
⌨️ Java AWT vs Swing vs JavaFX
Java AWT, Swing и JavaFX – библиотеки Java для создания графических интерфейсов (GUI), каждая со своими особенностями.
✔️ Java AWT (Abstract Window Toolkit)
Описание: Первая библиотека GUI (JDK 1.0), использует нативные компоненты ОС.
Особенности: Низкая гибкость, простой набор компонентов, ограниченные возможности стилизации.
Применение: Простые приложения с базовым интерфейсом.
✔️ Java Swing
Описание: Расширение AWT, платформа-независимая (JDK 1.2).
Особенности: Большой набор компонентов, поддержка Look and Feel, настройка и стилизация.
Применение: Более сложные десктопные приложения с гибким интерфейсом.
✔️ JavaFX
Описание: Современная библиотека (2008), поддержка мультимедиа и анимации.
Особенности: Стилизация через CSS, разделение логики и интерфейса (FXML), поддержка 3D.
Применение: Современные, интерактивные приложения с мультимедиа.
JavaFX – предпочтительный выбор для новых проектов благодаря современным функциям и поддержке мультимедиа, в то время как AWT и Swing остаются популярными для легких и совместимых приложений.
#java #AWT #Swing #JavaFX
6 954
⌨️ Java AWT vs Swing vs JavaFX
Java AWT, Swing и JavaFX – библиотеки Java для создания графических интерфейсов (GUI), каждая со своими особенностями.
✔️ Java AWT (Abstract Window Toolkit)
Описание: Первая библиотека GUI (JDK 1.0), использует нативные компоненты ОС.
Особенности: Низкая гибкость, простой набор компонентов, ограниченные возможности стилизации.
Применение: Простые приложения с базовым интерфейсом.
✔️ Java Swing
Описание: Расширение AWT, платформа-независимая (JDK 1.2).
Особенности: Большой набор компонентов, поддержка Look and Feel, настройка и стилизация.
Применение: Более сложные десктопные приложения с гибким интерфейсом.
✔️ JavaFX
Описание: Современная библиотека (2008), поддержка мультимедиа и анимации.
Особенности: Стилизация через CSS, разделение логики и интерфейса (FXML), поддержка 3D.
Применение: Современные, интерактивные приложения с мультимедиа.
JavaFX – предпочтительный выбор для новых проектов благодаря современным функциям и поддержке мультимедиа, в то время как AWT и Swing остаются популярными для легких и совместимых приложений.
#java #AWT #Swing #JavaFX
6 954
Короче, ищем менторов — Middle и Senior Java-разработчиков
Ищем в ШОРТКАТ — менторскую платформу от команды разработчиков из бигтеха. Мы помогаем найти крутую работу, апнуть грейд или сменить стек.
Что надо будет делать: проводить тестовые собесы → оценивать грейд → помогать разбираться в сложных темах.
Что взамен:
— От 40К за 5-7 часов работы в неделю
— Доступ к обучению и комьюнити сильных менторов из Booking, Сбер, Oracle, Tinkoff
— Возможность выступать на эфирах, куда уже приходят 500+ джавистов, и стать заметнее на рынке
Заполняй форму — свяжемся и расскажем подробности ➡️ https://forms.gle/rFY9z9GKggqfgSS76
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2Vtzqvdsmwa
6 954
⌨️ Desktop
Класс
Desktop используется для взаимодействия с приложениями операционной системы, такими как веб-браузер, почтовый клиент, просмотрщик изображений и т.д. Этот класс входит в пакет java.awt и позволяет, например, открыть веб-ссылку в браузере или отправить письмо через почтовый клиент.
Основные возможности класса Desktop:
✔️ browse(URI uri) – открывает URI (например, веб-страницу) в браузере.
✔️ open(File file) – открывает файл в приложении, ассоциированном с его типом (например, текстовый файл в текстовом редакторе).
✔️ edit(File file) – открывает файл в режиме редактирования (если доступно).
✔️ mail(URI mailtoURI) – открывает почтовое приложение с указанным URI.
✔️ print(File file) – отправляет файл на печать.
Пример:
import java.awt.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class DesktopExample {
public static void main(String[] args) throws IOException, URISyntaxException {
// Проверяем, поддерживает ли система класс Desktop
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
// Пример: Открытие веб-страницы
URI uri = new URI("http://www.google.com");
desktop.browse(uri);
} else {
System.out.println("Класс Desktop не поддерживается на этой системе.");
}
}
}
Проверка Desktop.isDesktopSupported() обязательна, так как класс может не поддерживаться на некоторых системах.
#java #Desktop6 954
⌨️ Maven. Фазы и команды
Maven использует жизненный цикл сборки, который делится на несколько фаз. Фазы определяют последовательность задач, которые Maven выполняет для сборки и управления проектом.
Основные фазы жизненного цикла Maven включают:
1️⃣ validate – Проверяет, что проект правильный и вся необходимая информация указана.
2️⃣ compile – Компилирует исходный код проекта.
3️⃣ test – Запускает тесты (обычно с использованием JUnit или TestNG) и проверяет, что они проходят успешно.
4️⃣ package – Собирает скомпилированный код и пакует его, например, в JAR или WAR-файл.
5️⃣ verify – Проверяет собранные артефакты и результаты тестов.
6️⃣ install – Устанавливает пакет в локальный репозиторий для использования как зависимость в других проектах.
7️⃣ deploy – Отправляет финальный пакет в удаленный репозиторий для использования в других проектах или на сервере.
Основные команды Maven:
✔️
mvn clean – Удаляет папку target, очищая проект от предыдущих сборок.
✔️ mvn compile – Компилирует исходный код проекта.
✔️ mvn test – Запускает тесты.
✔️ mvn package – Пакует скомпилированный код в конечный артефакт (обычно JAR или WAR).
✔️ mvn install – Устанавливает артефакт в локальный репозиторий.
✔️ mvn deploy – Деплоит артефакт в удаленный репозиторий.
✔️ mvn site – Генерирует документацию проекта на основе кода и зависимостей.
Фазы выполняются последовательно, то есть если вы запускаете команду mvn install, Maven автоматически пройдет через все предыдущие фазы – от validate до install.
Примеры команд:
✔️ mvn clean install – очищает проект, компилирует, тестирует и устанавливает артефакт в локальный репозиторий.
✔️ mvn package -DskipTests – собирает проект в артефакт, пропуская тесты.
#java #Maven6 954
Введение в смарт-контракты и пример создания своего токена
Бесплатный вебинар для погружения в смарт-контракты и написание на языке Solidity
**Время и дата проведения:** 31.10.2024 в 20:00
**Особенности вебинара:**
- Общая информация про блокчейн, смарт-контракты
- Введение в смарт-контракты
- Практическая часть - написание своего токена
**Спикер:**
Александр Куперман, Senior Solidity Engineer (Швейцария). Программирует более 20 лет, специалист по Solidity, блокчейн стеку. Работал в Blue Brain Project, Cleverdist, Huawei, Valory. Образование: НГТУ (Россия), UOU (Корея), RPI (США).
Этот вебинар — часть курса Solidity Developer. В рамках курса вы получите знания и сможете применять их на практике под руководством опытных преподавателей.
👉 Для участия в вебинаре зарегистрируйтесь на сайте: https://otus.pw/hhiO/?erid=LjN8JuMft
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 954
public class Null {
public static void greet() {
System.out.println("HI!");
}
public static void main(String[] args) {
((Null) null).greet();
}
}
#java #quest6 954
Яндекс Директ
Только этой осенью Яндекс Директ добавит до 20 000 ₽ на рекламу для вашего бизнеса ⚡
Узнать больше
#реклама
yandex.ru
О рекламодателе
6 954
⌨️ Functional Interfaces (Функциональные интерфейсы)
Функциональные интерфейсы — это интерфейсы, которые содержат только один абстрактный метод. Они используются как целевые типы для лямбда-выражений и позволяют передавать функциональность в виде параметров. В Java 8 было добавлено несколько встроенных функциональных интерфейсов, таких как
Predicate, Consumer, Supplier, и Function.
Пример функционального интерфейса:
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}
Теперь, используя лямбда-выражение, мы можем легко реализовать этот интерфейс:
MyFunctionalInterface printer = message -> System.out.println(message);
printer.printMessage("Hello, World!"); // Hello, World!
Java включает несколько предопределенных функциональных интерфейсов, например:
✔️ Predicate<T> — принимает объект типа T и возвращает boolean.
✔️ Consumer<T> — принимает объект типа T и ничего не возвращает.
✔️ Supplier<T> — ничего не принимает, но возвращает объект типа T.
✔️ Function<T, R> — принимает объект типа T и возвращает объект типа R.
Использование функциональных интерфейсов позволяет создавать гибкий и лаконичный код.
#java #FunctionalInterface6 954
По статистике Forbes, более трети россиян планируют сменить профессию в ближайшее время. Хотели бы оказаться в их числе?
Мощной поддержкой для тех, кто решил войти в новую сферу, станут обучающие программы от Skillbox. Ключевые преимущества:
✅ Свободный график обучения.
✅ Бессрочный доступ к материалу и его обновлениям после завершения занятий.
✅ Регулярная обратная связь от куратора.
✅ Помощь в трудоустройстве.
На платформе представлены обучающие программы по маркетингу, программированию и множеству других направлений. Выбирайте курс и меняйте свою жизнь уже сегодня!
6 954
Приветствую, друзья!
Никто из нас не застрахован от мошеннических действий. И сегодня украли канал у нашего коллеги, админа канала "Секреты Java".
Среди наших подписчиков, должны быть подписчики этого канала. Прошу кинуть жалобу на канал "Секреты Java", тогда появится шанс что канал вернут. В жалобе нужно выбрать Other/Другое и написать что канал украли.
6 954
⌨️ Lambda-выражения
Лямбда-выражения появились в Java 8 и предоставили простой способ описывать анонимные функции, что позволяет писать более лаконичный и читабельный код. Лямбды активно используются при работе с коллекциями, потоками данных и функциональными интерфейсами.
Раньше для создания анонимного класса нужно было писать много кода:
List<String> names = Arrays.asList("John", "Alice", "Bob");
names.forEach(new Consumer<String>() {
@Override
public void accept(String name) {
System.out.println(name);
}
});
С лямбда-выражениями:
List<String> names = Arrays.asList("John", "Alice", "Bob");
names.forEach(name -> System.out.println(name));
Лямбды позволяют сократить код и сделать его более читабельным, особенно когда нужно передавать поведение как параметр (например, для фильтрации, сортировки и других операций).
#java #lambda6 954
✍️ Простые советы для тех, кто столкнулся с высшей математикой:
1) Помните, что математика — это не какой-то набор формул. Это язык, который описывает мир вокруг нас.
2) Используйте знания в повседневной жизни.
3) Читайте канал преподавателя по высшей математике @lav_math - он понятным языком объяснит все сложные вещи.
Вас ждут бесплатные практикумы на различные темы, готовые шпаргалки уроков и активное комьюнити 🔥
Приятный бонус - вы всегда можете обратиться за помощью с учёбой или решением задач.
Не теряйте 👉 @lav_math
6 954
⌨️ Immutable Collections (неизменяемые коллекции)
Неизменяемые коллекции обеспечивают безопасность от случайных изменений данных, что особенно полезно в многопоточных приложениях или когда нужно гарантировать, что данные не будут изменены.
Вместо того чтобы создавать обычные коллекции и вручную делать их неизменяемыми с помощью метода
Collections.unmodifiableList(), теперь можно легко создать неизменяемую коллекцию с помощью новых фабричных методов.
Пример создания неизменяемого списка:
List<String> names = List.of("Иван", "Мария", "Анна");
Пример создания неизменяемого множества:
Set<String> items = Set.of("Яблоко", "Груша", "Банан");
Попытка изменить такую коллекцию (например, names.add("Петр")) приведёт к исключению UnsupportedOperationException.
Использование неизменяемых коллекций помогает избежать ошибок, связанных с нежелательными изменениями, и улучшает безопасность данных.
#java #Immutable #Unmodifiable6 954
Готовы получить уникальные знания, которые не найдёте даже на Stackoverflow?
Приглашаем вас на бесплатную IT-конференцию TerraTech MeetUp 31 октября!
Что вас ждёт:
— Презентации от ведущих специалистов на актуальные темы;
— Последние тренды из мира IT;
— Полезные знакомства;
— Ответы на все интересующие вопросы!
Посетить мероприятие может каждый — от начинающего разработчика до опытного специалиста, и абсолютно бесплатно!
Ждём вас 31 октября 2024 года! Сбор гостей начнется в 19:00 по адресу: Варшавское шоссе, 33с12, Megapolis Hall
Регистрация по ссылке
erid: LjN8JxdTt
6 954
⌨️ Pattern Matching для instanceof
Начиная с Java 16, проверка типов с помощью
instanceof стала гораздо удобнее благодаря Pattern Matching. Раньше, после проверки объекта на принадлежность к определённому классу, нужно было выполнять явное приведение типа. Теперь это можно сделать в одной строке.
Пример до Java 16:
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
Пример с Pattern Matching:
if (obj instanceof String str) {
System.out.println(str.length());
}
Теперь после instanceof можно сразу же использовать объект нужного типа в коде, что делает программу более читабельной и компактной.
#java #PatternMatching #instanceof6 954
Забирай пошаговую roadmap по JAVA
FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ:
– Redis - 5 улучшений для твоего пет-проекта
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Из свежих пополнений – Инструкция по работе с Git (ключевой навык для любого разработчика!)
Библиотека знаний пополняется постоянно, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.
6 954
⌨️ Ещё одна мощная фишка Java — это try-with-resources, которая значительно упрощает работу с ресурсами (например, файлами или сетевыми соединениями) и автоматически закрывает их после использования.
Обычно ресурсы, такие как файлы или потоки, нужно явно закрывать, чтобы избежать утечек. Но с помощью конструкции try-with-resources Java автоматически закроет ресурсы, когда они больше не нужны, даже если возникнет исключение.
Пример работы с файлом:
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
В этом коде BufferedReader автоматически закроется после выполнения блока try, что исключает риск утечки ресурсов. Эта конструкция делает код более чистым и безопасным.
#java #tryWithResources
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
