1 162
Подписчики
Нет данных24 часа
-137 дней
-6930 дней
Архив постов
1 162
Совет по Java API
Используйте @FunctionalInterface в качестве защиты от ошибок компилятора! 🔥
Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
1 162
Совет по Java API
Используйте @FunctionalInterface в качестве защиты от ошибок компилятора! 🔥
Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
👉 Java Portal | #ресурсы
1 162
Maven|Мавен
Как добавлять зависимости в проект maven если их нет в его репозитории
Сегодня мы это рассмотрим!
Вот так добавляется обычная зависимость, которая есть в его удалённом репозитории:
xml <dependencies> <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.40.0.0</version> <!-- Или последняя версия --> </dependency> </dependencies>А что делать если нет зависимости у удалённом репозитории? Я думаю что каждый сталкивался с такой проблемой, и сейчас, мы это рассмотрим! Итак, чтобы добавить другую зависимость есть 2 способа Сегодня рассмотрим первый, так как оба громоздкие Вариант решения будет заключаться в добавлении URL адреса в свой, СОБСТВЕННЫЙ репозиторий Поехали! Добавим репозиторий для наших зависимостей ----------------------------------------------------
<project>
...
<repositories>
<repository>
<id>my-repo</id> <!-- Уникальный идентификатор репозитория -->
<url>http://my.repo.url/repo</url> <!-- URL репозитория -->
<releases>
<enabled>true</enabled> <!-- Разрешить загрузку релизов (по умолчанию true) -->
</releases>
<snapshots>
<enabled>false</enabled> <!-- Запретить загрузку snapshot-версий (по умолчанию false) -->
</snapshots>
</repository>
<!-- Другие репозитории ... -->
</repositories>
...
</project
>
---------------------------------------------------- Добавление репозитория для плагина
<project> ... <pluginRepositories> <pluginRepository> <id>my-plugin-repo</id> <!-- Уникальный идентификатор репозитория --> <url>http://my.plugin.repo.url/repo</url> <!-- URL репозитория --> <releases> <enabled>true</enabled> <!-- Разрешить загрузку релизов плагинов --> </releases> <snapshots> <enabled>false</enabled> <!-- Запретить загрузку snapshot-версий плагинов --> </snapshots> </pluginRepository> <!-- Другие репозитории плагинов ... --> </pluginRepositories> ... </project> --------------------------------------------------- Небольшие пояснения: <id> Уникальный идентификатор репозитория. Он используется для ссылки на репозиторий в других частях pom.xml (например, в настройках плагинов) <url> URL репозитория. Это адрес, по которому Maven будет искать артефакты. <releases><enabled> Указывает, разрешено ли Maven загружать релизы из этого репозитория. Обычно устанавливается в true. Сегодня вы узнали очень полезную вещь, ибо любое хорошее приложение на одних зависисмостях не построить)
1 162
Твой верный помощник в Java
ArrayList — динамический массив в Java, незаменимый инструмент для работы с коллекциями объектов. В отличие от обычных массивов, ArrayList может изменять свой размер по мере необходимости, что делает его невероятно гибким.
Давайте рассмотрим несколько ключевых методов ArrayList:
add(E element)
Добавляет элемент в конец списка. Просто и эффективно!
get(int index)
Возвращает элемент по указанному индексу.
set(int index, E element): Заменяет элемент по указанному индексу новым значением.
remove(int index): Удаляет элемент по указанному индексу.
size() Возвращает текущее количество элементов в списке.
contains(Object o): Проверяет, содержит ли список указанный объект.
clear()`: Удаляет все элементы из списка. Очистка за один клик!
Это лишь малая часть возможностей ArrayList. Освойте эти методы, и вы значительно упростите себе жизнь при работе с коллекциями в Java.1 162
Интерфейсы/interface
Итак давайте разбираться что такое interface и зачем он нужен.
1 Слайд
Чтобы создать интерфейс, нужно вместо слова class после идентификаиора доступа public указать interface
2 Слайд
Чтобы его реализовать нужно добавить ключевое слово implements.
Когда вы реализовываете интерфейс, вы обязаны пере определить абстрактный метод.
Интересный факт:
Интерфейсы называют - Сделка с дьяволом
По описаным выше причинам
3 Слайд
Также в методы интерфейса мы можем добавил любые аргументы в параметры метода
4 Слайд
При переопределение методов с параметрами, мы обязаны их туда вставить иначе будет вызвано исключение
5 Слайд
Есть такое понятие как Functional Interface
Так называют интерфейсы когда у них один - функциональный метод
Подробный гайд на Functional Interface будет в скором времени
1 162
⌨️ Pattern Matching для instanceof
С появлением Pattern Matching в Java, начиная с версии 16, работа с оператором instanceof стала намного проще.
Эта функциональность позволяет одновременно проверять тип объекта и объявлять переменную для его использования, устраняя необходимость явного приведения типов.
Раньше:
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
Теперь:
if (obj instanceof String str) {
System.out.println(str.length());
}
Ранее нужно было явно приводить тип после проверки, но с Pattern Matching переменная создаётся автоматически и доступна внутри блока if.
Pattern Matching также поддерживает сложные логические условия:
if (obj instanceof String str && !str.isEmpty()) {
System.out.println("Строка: " + str);
}
Pattern Matching упрощает проверки типов и делает работу с кодом более удобной, особенно при обработке разных типов объектов.
👍 — если было полезно
1 162
Kubuntu - Ubuntu на максималках
Что такое Kubuntu и почему оно отличается лишь одной буквой? Это что вообще такое?
Kubuntu - это Ubuntu
-Админ ты дебил?
-Нет!
Kubuntu отдельный дистрибутив но является почти всей сущностью Ubuntu
В отличии от UI тут оно пред установлено не GNOME а KDE Plasma!
Поняли откуда буква появилась?
K - KDE plasma
И получается:
KDE Plasma + Ubuntu = K+Ubuntu=Kubuntu
Вот так тут интресно)
И это не единственный такой случай, просто он самый распространённый
👍 - было полезно
P.S на фото моя Kubuntu)1 162
Начнем потихоньку рассматривать дистрибутивы
Первый на очереди будет Ubuntu
Ubuntu долгое время стоял у меня на слабом ноутбуке, и могу сказать что по сравнению с Windows по загруженности ЦП это просто небо и земля!
На OS Windows мой ноутбук просто взлетал(кулера сходили с ума) , а на Ubuntu, не только все плавно, но ещё и более так сказать - легко
Также хотелось бы сказать что Ubuntu идеально подходит для новеньких в освоении Linux'а, ибо моим первым дистрибутивов был именно он - Ubuntu
UI(user interface) на OS Ubuntu стоит по умолчанию GNOME
Рассказать про UI на Linux'e поподробнее?
👍 - давай
P.S на фото изображён именно Ubuntu на GNOMe1 162
Вот и закончилась рабочая неделя
Всем хотелось бы пожелать хорошо провести время, и славно отдохнуть, ибо работа крайне сильно утомляет.
Тем кому завтра в школу/лицей тоже удачи продержаться последний день
Всем всего самого наилучшего!
1 162
Итак, поры бы что-то про линукс писать
Линукс - классная OS вернее не так!
Linux - лишь ядро системы, а уже все что вы видите и все как работает это все зависит от дистрибутива
Дистрибутив - разное приподнесение чего либо, например есть много разных
- Arch Linux
- Ubuntu
- Manjaro
- NixOs
-Kubuntu
Все они различаются
Рассказать поподробнее про эту тематику?
👍 - давай
1 162
StremAPI представляет из себя большой набор инструментов сортировки данных
Работает он как?
Подробнее буду рассказывать в серии постов а так если в кратце
Мы нашу коллекцию преобразовывается в поток(stream)
И с потоком данных уже работаем
Это лишь концепция StreamAPI в будущем расскажу о его методах и нюансах
1 162
⌨️ StringJoiner
StringJoiner — это класс, добавленный в Java 8 для удобного объединения строк с заданным разделителем, префиксом и суффиксом.
Принцип работы:
▶️ Создаётся объект StringJoiner с разделителем, опциональным префиксом и суффиксом
▶️ Строки добавляются с помощью метода add()
▶️ Итоговая строка формируется вызовом метода toString()
▶️ Если строки не добавлены, toString() вернёт только префикс и суффикс
StringJoiner делает форматирование строк и генерацию списков в заданном формате простым и удобным.👍 — если было полезно и хочешь быстрее почты про StreamAPI
1 162
Класс System
Начинаем небольшое знакомство
Класс является статическим и несёт в себе смысл потоков
Потоков не который вы подумали! Нет это не StreamAPI и не Многопотосночть, это потоки ввода и вывода!
Вы могли заметить что когда в классе Scanner мы указывали в конструктор аргумент - а именно ТИП потока(new Scanner(System.in))
in - означает что JVM(гайд на неё будет также) будет что-то принимать на вход
А если вы также заметили то в казалось бы простой строчке которую все тыкают не думаю sout(System.out.println)
Есть слово out которое как не трудно догадатся отвечает за вывод!
Это еще не все, это лишь небольшое введение в такую обширную тему
👍 - хочешь продолжение
1 162
Хотите полный гайд вообще по Spring?
на 5 лайков делаю прям вообще полнейший
👍 - ставь
1 162
Что такое Scanner?
Scanner - класс который отвечает за input данных
Например чтобы задать значение переменной private String string
Scanner sc = new Scanner(System.in(этот означает поток верхнего уровня ))
string = sc.nextLine(line т.к тип данных String)
И у нас есть переменная string!
Далее выведем её на экран
System.out.println(string)
Хотите подробный гайд на static class System?
👍 - дадада
1 162
Чтобы хорошо изучить массивы мало будет одного поста
Специально для вас нашел исчерпывающее руководство по массивам, ведь само обучение - залог хороших знаний
Ссылочка - полное погружение в массивы
