Java | Фишки и трюки
Ir al canal en Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
Mostrar más6 824
Suscriptores
+724 horas
-97 días
-6030 días
Archivo de publicaciones
6 824
⌨️ Effectively final - это термин, который используется для описания переменной в Java, которая фактически ведет себя как final, хотя она не объявлена с ключевым словом final. То есть, хотя вы можете изменять значение этой переменной, вы это не делаете. Компилятор Java позволяет использовать такие переменные в лямбда-выражениях и анонимных классах, даже если они не объявлены как final.
В примере переменная
x объявлена с ключевым словом final, поэтому ее значение не может быть изменено. Переменная y не объявлена как final, но внутри метода она не изменяется после инициализации, поэтому она считается "effectively final" и может быть использована в анонимных классах и лямбда-выражениях.6 824
🧑💻Ты Java-разработчик?
Присоединяйся к IT_One CAREER HACKATHON 2024! 💚
Приглашаем Java-разработчиков, ИТ-специалистов уровня junior, middle и senior, провести 3 дня за решением кейса от IT_One.
🚀Рассказываем подробнее:
- Кейс, который предстоит решить: Разработка приложения для управления финансами
- Формат: мероприятие пройдёт онлайн
- Даты хакатона: 17 - 19 мая 2024
- Дедлайн регистрации: до 13.05.2024, 23:59 МСК
🔥Что тебя ждёт?
- Новый кейс в портфолио
- Мерч для победителей и сертификаты всем участникам
- Призовой фонд – 500.000 рублей
- Встречи с экспертами и питчи
- Командная работа
Проведи выходные с максимальной пользой, участвуй в хакатоне и решай задачу под руководством специалистов на хакатоне от IT_One! 💚
Регистрация уже доступна по ссылке: https://tglink.io/b060f6dd317b
6 824
☕️Использование SonarQube
SonarQube – это инструмент статического анализа кода, который помогает программистам выявлять и исправлять ошибки, обнаруживать потенциальные уязвимости и улучшать качество кода. Он поддерживает множество языков программирования, включая Java.
🔔Один из основных методов SonarQube для анализа кода - это использование правил (rules). Правила определяют набор проверок, которые применяются к коду для выявления потенциальных проблем. SonarQube поставляется с большим количеством предустановленных правил, которые можно настраивать и расширять под конкретные нужды проекта.
➡️Еще один важный метод SonarQube - это использование метрик (metrics) для измерения качества кода. Метрики позволяют оценить различные аспекты кода, такие как сложность, размер, покрытие тестами и др. SonarQube предоставляет отчеты на основе метрик, которые помогают программистам понять, где можно улучшить свой код.
🔖В целом, SonarQube является мощным инструментом для улучшения качества и безопасности вашего кода на Java. Правильное использование его методов поможет вам избежать многих ошибок и повысить производительность вашего проекта.
6 824
⚡️ Пройди хардкорный тест по Java и проверь свои знания.
Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .
👉 ПРОЙТИ ТЕСТ:
https://otus.pw/XzRH/?erid=LjN8JuNoG
🎫 А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.
6 824
☕️Использование Java Cryptography Architecture (JCA)
Java Cryptography Architecture (JCA) - это набор классов и интерфейсов, который обеспечивает безопасные функции шифрования, подписи и генерации ключей в Java. JCA предоставляет программистам удобный способ использования криптографических алгоритмов в своих Java приложениях.
➡️Одной из ключевых особенностей JCA является возможность подключения различных провайдеров криптографических служб (Cryptography Service Providers - CSP), которые реализуют алгоритмы шифрования и хэширования. Это позволяет программистам легко заменять или дополнять стандартные алгоритмы криптографии.
Ниже приведен пример использования JCA для шифрования и дешифрования данных с использованием алгоритма AES:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class JCAExample {
public static void main(String[] args) throws Exception {
// Генерируем секретный ключ
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
SecretKey secretKey = keyGenerator.generateKey();
// Шифруем данные
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedData = cipher.doFinal("Hello, World!".getBytes());
// Дешифруем данные
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
System.out.println("Original data: " + new String(decryptedData));
}
}
В этом примере мы сначала генерируем секретный ключ для алгоритма AES, затем шифруем строку "Hello, World!" и дешифруем ее обратно. Это простой пример использования JCA для криптографии.
⚙️Java Cryptography Architecture предоставляет широкий выбор криптографических алгоритмов и возможность использования криптографии в безопасных Java приложениях. Использование JCA помогает программистам обеспечить безопасность и конфиденциальность данных в их приложениях.6 824
📸 Думаю, многие слышали про OSINT — это разведка по открытым источникам, которая позволяет на продвинутом уровне искать информацию и делать выводы.
Она часто применяется для решения задач в области кибербезопасности, маркетинга, аналитики данных и многих других сферах.
Если вы хотите научиться использовать OSINT и узнать самые передовые методы работы с открытыми источниками информации, то наш канал - идеальное место для вас!
⚜️ Присоединяйся к нам, чтобы получить доступ к эксклюзивным советам, инструментам и урокам по OSINT: Digital-разведка
6 824
final String pig = "length: 10";
final String dog = "length: " + pig.length();
System.out.println(pig == dog);6 824
☕️Использование JavaFX
JavaFX - это библиотека для создания графических пользовательских интерфейсов (GUI) на языке программирования Java. Она предоставляет инструменты для создания различных элементов интерфейса, анимаций, эффектов и многих других возможностей.
🔔Одной из ключевых особенностей JavaFX является использование XML-подобного языка разметки FXML для описания интерфейса приложения. FXML позволяет создавать интерфейс без необходимости писать большое количество кода, что делает разработку проще и более удобной.
Пример кода на JavaFX:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Hello World");
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
➡️В данном примере создается простое окно с кнопкой "Hello World", которая выводится на экран.
JavaFX также полностью интегрируется с языком Java, что позволяет программистам легко работать с различными Java библиотеками и функциональными возможностями.
🔖JavaFX предоставляет множество возможностей для создания современных и красивых пользовательских интерфейсов, что делает ее отличным выбором для разработки приложений с графическим интерфейсом на языке Java.6 824
⚡️ Тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java
Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .
👉 ПРОЙТИ ТЕСТ:
https://otus.pw/MX7Z/?erid=LjN8K2MLz
🎫 А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.
Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля
6 824
☕️Использование классов Pattern и Matcher
Pattern и Matcher - это классы, предоставляемые Java для работы с регулярными выражениями. Pattern используется для компиляции регулярного выражения, а Matcher используется для сравнения этого выражения с определенной последовательностью символов.
➡️Пример использования Pattern и Matcher:
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "The cat in the hat";
// Компилируем регулярное выражение
Pattern pattern = Pattern.compile("\\bcat\\b");
// Создаем Matcher, сравниваем его с текстом и выводим результат
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
System.out.println("Найдено совпадение!");
} else {
System.out.println("Совпадений не найдено");
}
}
}
🔹В данном примере мы создаем регулярное выражение, которое ищет слово "cat" как отдельное слово. Затем мы создаем Matcher, который сравнивает это выражение с текстом "The cat in the hat". Результатом выполнения программы будет сообщение "Найдено совпадение!", так как слово "cat" есть в тексте.
📌Pattern и Matcher позволяют удобно работать с регулярными выражениями и обрабатывать текстовые данные. Они широко используются в поиске и замене текста, валидации ввода и других задачах, связанных с обработкой строк.6 824
public class ShadesOfGray {
public static void main(String[] args) {
System.out.println(X.Y.Z);
}
}
class X {
static class Y {
static String Z = "BLACK";
}
static C Y = new C();
}
class C {
String Z = "WHITE";
}6 824
⌨️ В какой момент происходит статическая инициализация класса?
В Java статическая инициализация класса происходит во время загрузки класса в JVM (Java Virtual Machine), которая происходит перед созданием объектов этого класса или вызовом статических методов или статических полей этого класса.
Статическая инициализация выполняется при помощи статических блоков кода или статических переменных класса.
Статическая инициализация выполняется единожды при загрузке класса в JVM, вне зависимости от того, сколько раз этот класс будет использоваться в программе.
public class MyClass {
static {
// Код статической инициализации
System.out.println("Статическая инициализация MyClass");
}
public MyClass() {
System.out.println("Конструктор MyClass");
}
}
public class Start {
public static void main(String[] args) {
System.out.println("start");
new MyClass();
System.out.println("stop");
}
}
Вывод в консоль:
start Статическая инициализация MyClass Конструктор MyClass stop
6 824
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF.
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
Реклама АО «Тинькофф Банк» ИНН 7710140679
6 824
☕️Использование библиотеки Quartz
Quartz - это мощный планировщик задач для языка программирования Java, который позволяет создавать и управлять задачами, выполняемыми по определенному расписанию. Quartz позволяет создавать различные типы задач, такие как одноразовые, повторяющиеся, параллельные и многие другие.
Основные методы библиотеки Quartz:
1. SchedulerFactory - фабрика создания планировщика задач.
Пример кода:
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
2. Job - интерфейс, представляющий выполняемую задачу.
Пример кода:
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) {
System.out.println("Hello, Quartz!");
}
}
3. JobDetail - содержит информацию о задаче, такую как класс задачи, идентификатор задачи и другие свойства.
Пример кода:
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob")
.build();
4. Trigger - позволяет указать расписание выполнения задачи, такое как время запуска, повторяемость и другие параметры.
Пример кода:
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
5. Scheduler - основной класс для управления планированием задач.
Пример кода:
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();