TGViewer
Channel Public Channel
Java Developer

Java Developer

@java_tg

Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Subscribers
14.8K
Photos
2.2K
Videos
162
Links
2.5K

Showing posts older than #1521 · Back to latest

Older Posts 20 shown
Post #1520 5.64K
👩‍💻 Java: Введение в коллекции

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

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

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

➡️ Java Developer | #статья
  • ❤ 14
  • ⚡ 1
  • 👍 1
Post #1517 6.56K
👩‍💻 Библиотека 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 | #полезное
  • ❤ 33
  • 👍 2
Post #1516 5.54K
👩‍💻 Создатель Java вышел на пенсию

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

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


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

➡️ Java Developer | #новости
  • ❤ 225
Post #1514 6.02K
👩‍💻 Деплой Java приложения на удаленный сервер

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

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

➡️ Java Developer | #статья
  • ❤ 19
  • 💯 1
Post #1513 5.4K
❔ Вопрос с собеседования

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

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

➡️ Java Developer | #собеседование
  • ❤ 21
Post #1511 6.34K
👩‍💻 Принципы 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
  • ❤ 121
  • 🔥 2
Post #1508 5.43K
❔ Вопрос с собеседования

Что такое JAXP?

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

➡️ Java Developer | #собеседование
  • ❤ 6
  • 💯 2
Post #1506 9.75K
👩‍💻 Liquibase + Spring Boot: настройка и написание миграций баз данных

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

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

➡️ Java Developer | #статья #spring
  • ❤ 12
  • 💯 4
  • 👍 1
Post #1504 7.29K
  • 🤣 41
  • 😁 6
  • 👍 2
Post #1501 6.31K
👩‍💻 Генерация уникального идентификатора

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

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

// b80ecc19ac5a4e299a7ffb4a6a4a0264


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

➡️ Java Developer | #обучение
  • ❤ 67
  • 💯 2
Post #1499 5.52K
👩‍💻 5 основных фреймворков для Java-разработчиков

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

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

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

➡️ Java Developer | #статья
  • 🤣 5
  • ❤ 3
  • 💯 2
Post #1498 4.93K
❔ Вопрос с собеседования

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

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

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

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

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


➡️ Java Developer | #собеседование
  • ❤ 10
Post #1496 4.99K
👩‍💻 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 | #обучение
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →