Секреты Java
رفتن به کانال در Telegram
Обсуждаем Java, архитектуру, фреймворки и всё, о чем должны говорить разработчики. Владелец: @Alexey_Morl Реклама на бирже: https://telega.in/c/java_secrets
نمایش بیشتر7 991
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
7 991
Выбирайте профессию по душе, а не по советам из интернета.
Попробуйте 4 лучшие IT-профессии, которые помогут вам зарабатывать 150 000+ рублей в месяц после обучения. Для этого не нужно будет даже бросать текущую работу или учёбу. Всё пройдёт в комфортном для вас формате.
Пора начинать менять свою жизнь к лучшему — и освоить то, что всегда будет высокооплачиваемо, на курсе «Профессия Разработчик» от Skillbox.
За первый месяц вы освоите основы и сможете выбрать одно из 4 направлений в разработке:
— Python
— Тестирование
— Фронтенд
— Java
Все они очень востребованы, а значит, сейчас таких программистов активно ищут. Поэтому ждать не стоит — лучше начинать заниматься чем-то новым, интересным и прибыльным для себя.
👉 Начать бесплатно вместе со Skillbox https://epic.st/EseKxD?erid=2VtzquhBD7Z
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
7 991
Java + QA + ML = IT Talk by Sber в Рязани!⚡️
24 октября поговорим об особенностях работы с Apache Kafka, генерации Unit тестов с помощью AI ассистента и поделимся опытом использования LLM GigaChat при написании SQL-запросов.
Спикеры и темы:
✅ Артем Симешин – «Проверяем генерацию Unit тестов с AI ассистентом через мутационное тестирование»
✅ Вадим Сурпин и Семён Горохов (RnD) – «Наш опыт использования LLM GigaChat для написания SQL-запросов к базам данных, которые отвечают на вопрос пользователя. Рассмотрим, как вопросы дообучения модели, так и prompt tuning»
✅ Виталий Куценко – «Рассмотрим неочевидные особенности применения Apache Kafka, погрузимся в архитектурную идеологию Kafka и поймем, почему не все привычные шаблоны работают как ожидается».
А еще вас ждет много нетворкинга и «умные» призы, обязательно регистрируйтесь!💚
7 991
✅ Использование var в Java
С Java 10 появился новый способ объявления локальных переменных с использованием ключевого слова
var. Этот механизм называется Local Variable Type Inference (LVTI) и позволяет компилятору автоматически выводить тип переменной на основе присваиваемого значения.
Итак, основные моменты:
▫️Тип переменной по-прежнему статический. Несмотря на использование var, тип переменной известен на этапе компиляции и не меняется. Это не динамическая типизация, как в языках вроде JavaScript.
var list = new ArrayList<String>(); // Тип переменной — ArrayList<String>
▫️Использование только для локальных переменных. var может быть использован только в локальных переменных в методах, конструкторах, try-with-resources выражениях, циклах и блоках инициализации. Он не может использоваться для:
- Полей класса
- Параметров методов
- Возвращаемых значений методов
▫️Однозначность типа. Переменные, объявленные с var, должны быть сразу инициализированы, чтобы компилятор мог определить их тип.
Неправильно:
var x; // Ошибка: тип не может быть выведен
Правильно:
var x = 10; // Тип переменной: int
▫️Читаемость кода. Одним из важных аспектов использования var является то, что код должен оставаться читаемым. В ситуациях, где тип данных очевиден (например, создание коллекций), var улучшает лаконичность. Но в сложных контекстах его использование может ухудшить понимание.
Хорошо:
var name = "John"; // Очевидно, что это строка
Не очень:
var result = someComplexMethodCall(); // Какой тип возвращает метод?
Примеры использования var
1. Простые типы:
var number = 5; // int
var message = "Hello"; // String
2. Использование с коллекциями:
var list = new ArrayList<String>(); // ArrayList<String>
var map = new HashMap<Integer, String>(); // HashMap<Integer, String>
3. Циклы:
var list = List.of("a", "b", "c");
for (var item : list) {
System.out.println(item);
}
Заключение
var в Java — это удобный инструмент для вывода типа переменных, который помогает упростить код в ситуациях, где тип очевиден. Однако его использование требует осторожности: код должен оставаться понятным и поддерживаемым.
🫡 Секреты Java
#java #java10 #var7 991
IT Community Day в Санкт-Петербурге прошёл идеально! 👨💻
Сотни IТ-специалистов встретились, чтобы послушать доклады топовых спикеров, прокачать hard и soft skills, познакомиться, повеселиться на афтерпати, и главное — стать частью крупнейшего IТ-комьюнити!
Завидуем тем, кто смог попасть на это мероприятие. А остальным советуем не расстраиваться: совсем скоро состоятся IT Community Day в:
✔️ В Казани 12 октября научимся управлять большими данными, укрощать искусственный интеллект, создавать успешное резюме и находить подход к карьере.
✔️ И в Екатеринбурге 19 октября поговорим об интеграции LLM в приложение, методологии API-first и комбинации личного и профессионального развития.
Успейте зарегистрироваться! 💚
👉 Казань, 12 октября
👉 Екатеринбург, 19 октября
7 991
Коллеги, не хочу вас грузить технической информацией на выходных, поэтому держите мемасы🤓 Хороших выходных!
7 991
❓Какой вариант описывает корректный путь создания Spring Data JPA приложения используя Spring Boot?
⃝ Пометить класс @Entity и определить интерфейс репозитория, который расширяет интерфейс Repository
⃝ Пометить класс @Entity и создать класс репозитория, который реализует интерфейс Repository
⃝ Пометить класс @Table и определить интерфейс репозитория, который расширяет интерфейс Repository
⃝ Пометить класс @Table и создать класс репозитория, который реализует интерфейс Repository
7 991
✅ Как пропустить выполнение тестов при сборке Gradle?
Иногда в процессе сборки проекта бывает нужно пропустить выполнение тестов (очень редко:) ) , например, чтобы ускорить сборку или если тесты временно не проходят. Вы можете это легко сделать через Gradle:
▫️Передача флага при запуске команды
Самый простой и быстрый способ — передать флаг
-x test при выполнении команды gradle build. Этот флаг исключает задачу тестирования из сборки.
gradle build -x test
Здесь -x test — это опция, которая говорит Gradle пропустить выполнение задачи test.
▫️Настройка в build.gradle
Если вы хотите всегда пропускать тесты или контролировать это через настройки в проекте, вы можете настроить это в вашем файле build.gradle.
tasks.withType(Test) {
enabled = false
}
Вижу только один кейс, когда стоит пропустить тесты - если вы локально хотите собрать и развернуть приложение с только что написанным сырым функционалом (и это еще если мы не работаем по TDD). Если хотите полностью отключить тесты для проекта, то скорее всего вы делаете что-то не так)
🫡 Секреты Java
#gradle7 991
✅ Как получить расширение файла File?
В Java есть несколько способов получить расширение файла. Помимо стандартного подхода с использованием методов класса
String, можно воспользоваться готовыми методами из библиотек, таких как Guava и Apache Commons IO, чтобы упростить задачу.
▫️Через методы String:
import java.io.File;
public class Example {
public static void main(String[] args) {
File file = new File("document.txt");
String fileName = file.getName();
String extension = getFileExtension(fileName);
System.out.println("Расширение файла: " + extension);
}
public static String getFileExtension(String fileName) {
int lastIndexOfDot = fileName.lastIndexOf('.');
// Проверка, что точка найдена
if (lastIndexOfDot > 0) {
return fileName.substring(lastIndexOfDot + 1);
} else {
return ""; // Нет расширения
}
}
}
▫️Использование библиотеки Guava:
Guava — это популярная библиотека от Google с множеством утилит. В ней есть класс Files, который предоставляет метод для извлечения расширения файла.
Добавьте зависимость Guava в проект через gradle:
implementation 'com.google.guava:guava:33.2.1-jre'
Пример использования:
import com.google.common.io.Files;
import java.io.File;
public class Example {
public static void main(String[] args) {
File file = new File("document.txt");
String extension = Files.getFileExtension(file.getName());
System.out.println("Расширение файла: " + extension);
}
}
В библиотеке Guava метод Files.getFileExtension() автоматически возвращает расширение файла, или пустую строку, если точки нет.
▫️Использование библиотеки Apache Commons IO:
Apache Commons IO — ещё одна популярная библиотека, которая предоставляет множество утилит для работы с файлами. В ней есть класс FilenameUtils, который может получить расширение файла.
Добавьте зависимость Apache Commons IO в проект:
implementation 'commons-io:commons-io:2.16.1'
Пример использования:
import org.apache.commons.io.FilenameUtils;
public class Example {
public static void main(String[] args) {
File file = new File("document.txt");
String extension = FilenameUtils.getExtension(file.getName());
System.out.println("Расширение файла: " + extension);
}
}
Метод FilenameUtils.getExtension() возвращает строку с расширением файла, а если его нет — пустую строку.
Заключение:
- Для простых задач можно использовать стандартные методы класса String.
- Если ваш проект уже использует Guava или Apache Commons IO, эти библиотеки предлагают готовые, надёжные решения для работы с файлами, включая получение расширения.
🫡 Секреты Java
#java #file7 991
Бесплатный интенсив: Java-разработчик: старт в профессии с нуля.
📆 Когда: 15-16 октября в 19:00 по мск.
За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете:
✔️ Познакомиться с синтаксисом и основными конструкциями языка Java.
✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика.
✔️ Создать Telegram-бота с нуля.
✔️ Узнать ответы интересующие вас вопросы.
✔️ Получить доступ к закрытому профессиональному сообществу.
🎁 Подарки для участниковинтенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика и доступ в закрытое сообщество «Старт в Java» от Хекслета!
7 991
❓Какой вариант кода приведет к ошибке если вставить его вместо // insert here на изображении выше?
