Java Developer – Telegram
Java Developer
15.8K subscribers
1.85K photos
135 videos
2 files
2.06K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Что выведет код сверху?
Anonymous Quiz
23%
0
58%
100
6%
200
12%
Ошибка компиляции
1
👩‍💻 HashMap в Java (Часть 3)

Если вы ещё не читали 1 и 2 часть, то вот они:
Часть №1
Часть №2

Сегодня мы пойдем дальше и первым делом узнаем, как получить ключи и значения по отдельности:
passportsAndNames.put(111222, "Иванов Иван Иванович");
passportsAndNames.put(123123, "Сергеев Сергей Сергеевич");

Set<Integer> keys = passportsAndNames.keySet();
System.out.println("Ключи: " + keys);

ArrayList<String> values = new ArrayList<>(passportsAndNames.values());
System.out.println("Значения: " + values);


Ключи извлекаются в коллекцию Set, а значения — в ArrayList. Стоит знать ещё и то, что в Set не может быть повторяющихся элементов.

Ключи: [111222, 123123] 
Значения: [Иванов Иван Иванович, Сергеев Сергей Сергеевич]


🔵Метод size() — возвращает число элементов в словаре на текущий момент:
System.out.println(passportsAndNames.size());
// Output: 2


🔵Метод isEmpty() — проверяет, есть ли в HashMap хотя бы один элемент:
if (!passportsAndNames.isEmpty()) {
System.out.println(passportsAndNames);
}
// Output: {111222=Иванов Иван Иванович, 123123=Сергеев Сергей Сергеевич}


🔵Метод clear() — удаляет все элементы:
passportsAndNames.clear();
System.out.println(passportsAndNames);
// Output: {}


🔵Кроме того, если вы не знали, две «мапы» можно объединить в одну. Для этого существует метод putAll():
HashMap<Integer, String> passportsAndNames = new HashMap<>();
HashMap<Integer, String> passportsAndNames2 = new HashMap<>();

passportsAndNames.put(111222, "Иванов Иван Иванович");
passportsAndNames.put(123123, "Сергеев Сергей Сергеевич");

passportsAndNames2.put(333333, "Максимов Максим Максимович");
passportsAndNames2.put(555555, "Андреев Андрей Андреевич");

passportsAndNames.putAll(passportsAndNames2);
System.out.println(passportsAndNames);

// {111222=Иванов Иван Иванович, 123123=Сергеев Сергей Сергеевич, 333333=Максимов Максим Максимович, 555555=Андреев Андрей Андреевич}


100 🕺 и я разбираю другую тему

➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
1551
Вопрос с собеседования

Можно ли считать Final переменную константой?

Ответ: Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд.

Если тип данных, на который ссылается переменная — immutable, то да, это константа.

А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя.

Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.


➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
3910
👩‍💻 5 основных фреймворков для Java-разработчиков

Размышляете над тем, какой фреймворк освоить, чтобы стать полноценным специалистом?

В нашем распоряжении десятки фреймворков, но не обязательно знакомиться со всеми. Какие-то вы начнете изучать по мере необходимости, но есть ряд фреймворков, подлежащих освоению в первую очередь, например Spring и Hibernate.

Ссылка на статью — КЛИК

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
10🤣53💯2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5211🤣94
👩‍💻 Генерация уникального идентификатора

Данный код позволяет сгенерировать случайный уникальный идентификатор с помощью класса java.util.UUID.

Для удаления знака тире "-" из уникального идентификатора воспользуемся методом replace():
String uuidString = uuid.toString().replace("-", "");
System.out.println("UUID: " + uuidString);

// b80ecc19ac5a4e299a7ffb4a6a4a0264


❤️если было полезно

➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
668💯2
🤣3412
Под какой буквой правильный ответ?
Anonymous Quiz
5%
A
2%
B
89%
C
3%
D
🤣4123😁6👍2
👩‍💻 Liquibase + Spring Boot: настройка и написание миграций баз данных

Благодаря этой статье вы узнаете, как подключить и настроить Liquibase в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы БД, а также дополнить уже существующие changelog файлы новыми скриптами миграции.

Ссылка на статью КЛИК

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
127💯4👍1
Вопрос с собеседования

Что такое JAXP?

Ответ: JAXP, The Java API for XML Processing (Java API для обработки XML) — набор API, упрощающих обработку XML данных в программах написанных на Java. Содержит реализации DOM, SAX и StAX парсеров, поддерживает XSLT и возможность работать с DTD.

➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
126💯2
Please open Telegram to view this post
VIEW IN TELEGRAM
72😁35💯8👍2
👩‍💻 Принципы SOLID (Часть 1)

Что такое SOLID?

🟣 S: Single Responsibility Principle (Принцип единственной ответственности).

🟣 O: Open-Closed Principle (Принцип открытости-закрытости).

🟣 L: Liskov Substitution Principle (Принцип подстановки Барбары Лисков).

🟣 I: Interface Segregation Principle (Принцип разделения интерфейса).

🟣 D: Dependency Inversion Principle (Принцип инверсии зависимостей).

1. Принцип единственной ответственности

Класс должен быть ответственен лишь за что-то одно. Если класс отвечает за решение нескольких задач, его подсистемы, реализующие решение этих задач, оказываются связанными друг с другом. Изменения в одной такой подсистеме ведут к изменениям в другой.

Рассмотрим код:
class Animal {
constructor(name: string){ }
getAnimalName() { }
saveAnimal(a: Animal) { }
}


Класс Animal описывает какое-то животное и нарушает принцип единственной ответственности:
В соответствии с принципом класс должен решать лишь какую-то одну задачу. Он же решает две, занимаясь работой с хранилищем данных в методе saveAnimal и манипулируя свойствами объекта в конструкторе и в методе getAnimalName.


Как такая структура класса может привести к проблемам?

Если изменится порядок работы с хранилищем данных, то придётся вносить изменения во все классы, работающие с хранилищем. Такая архитектура не отличается гибкостью, изменения одних подсистем затрагивают другие, что напоминает эффект домино.

Приведём в порядок и создадим ещё один класс, единственной задачей которого является работа с хранилищем, в частности — сохранение в нём объектов класса Animal:
class Animal {
constructor(name: string){ }
getAnimalName() { }
}
class AnimalDB {
getAnimal(a: Animal) { }
saveAnimal(a: Animal) { }
}


В следующих частях мы рассмотрим остальные принципы SOLID, а пока что оставьте свои реакции:

❤️ — если было полезно
🕺если уже знаком с SOLID

«Проектируя классы, мы должны стремиться к тому, чтобы объединять родственные компоненты, то есть такие, изменения в которых происходят по одним и тем же причинам. Нам следует стараться разделять компоненты, изменения в которых вызывают различные причины» — Стив Фентон.


➡️ Java Developer | #полезное #solid
Please open Telegram to view this post
VIEW IN TELEGRAM
12145🔥2
Вопрос с собеседования

Для чего используется аннотация @Bean?

Ответ: В классах конфигурации Spring, @Bean используется для определения компонентов с кастомной логикой.

➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
2110
👩‍💻 Деплой Java приложения на удаленный сервер

К вашему вниманию любимая рубрика «инструкция для чайников — как самостоятельно сделать свой первый деплой».

Ссылка на статью

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
195💯1
👩‍💻 Создатель Java вышел на пенсию

Джеймс Гослинг, создатель Java, вышел на пенсию и поделился этой новостью в LinkedIn:

Наконец-то я вышел на пенсию. После многих лет работы инженером-программистом настало время просто наслаждаться жизнью. Последние 7 лет в Amazon были замечательными, несмотря на COVID-19 и индустриальные потрясения. У меня длинный список сторонних проектов, которые теперь могу завершить. Это будет весело.


❤️ — если заслуживает уважения

➡️ Java Developer | #новости
Please open Telegram to view this post
VIEW IN TELEGRAM
2252
👩‍💻 Библиотека Instancio

Instancio — это библиотека, которая позволяет автоматически создавать объекты для юнит-тестов.

Вместо ручной настройки данных:
Address address  = new Address();
address.setStreet("street");
address.setCity("city");
//...

Person person = new Person();
person.setFirstName("first-name");
person.setLastName("last-name");
person.setAge(22);
person.setGender(Gender.MALE);
person.setAddress(address);
//...


Вы можете просто выполнить следующее:
Person person = Instancio.create(Person.class);


Эта строка возвращает полностью заполненный объект person, включая вложенные объекты и коллекции. Объект заполняется случайными значениями, которые могут быть воспроизведены в случае сбоя теста.

❤️если было полезно
🕺если видишь это впервые

➡️ Java Developer | #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
11332👍2
8
Под какой буквой правильный ответ?
Anonymous Quiz
43%
A
39%
B
5%
C
13%
D
213
👩‍💻 Java: Введение в коллекции

Эта статья для тех, кто только начинает свой путь в изучении Java.

Здесь автор не сильно углубляется в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться, достаточно хотя бы на базовом уровне понять, что это такое и с чем это "едят".

Ссылка на статью

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
1481👍1
Вопрос с собеседования

Что такое Reflection?

Ответ: Рефлексия (Reflection) — это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.

➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
158
👩‍💻 Метод Collections.shuffle

Метод shuffle() случайным образом перемешивает все элементы переданного списка.

В примере на картинке создаётся список из упорядоченных элементов, затем срабатывает метод shuffle(), элементы перемешиваются в случайном порядке и выводятся на экран при помощи цикла for.

❤️если было полезно
🕺если не знал об этом

➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
5436