Одинарные и двойные кавычки
В Java есть такое понятие, как символ (Char). Это определённая буква, цифра, эмодзи и т.д. Несколько таких символов уже составляют строку (String).
Так вот, в одинарных кавычках мы записываем только один символ, а в двойных кавычках мы создаём строку.
С этим нужно быть очень осторожным, поскольку пытаясь получить
#java #lesson #theory
В Java есть такое понятие, как символ (Char). Это определённая буква, цифра, эмодзи и т.д. Несколько таких символов уже составляют строку (String).
Так вот, в одинарных кавычках мы записываем только один символ, а в двойных кавычках мы создаём строку.
С этим нужно быть очень осторожным, поскольку пытаясь получить
"MY", выполняя 'M' + 'Y', вы получите 166.#java #lesson #theory
Перегрузка функций
Если у вас есть несколько функций с одним и тем же именем, но они принимают разные типы, то будет вызван тот что больше всего подходит.
Перегрузка позволяет нам менять поведение функции в зависимости от типа или кол-ва параметров, которые мы получили.
Самой простой пример —
#java #lesson #overloading
Если у вас есть несколько функций с одним и тем же именем, но они принимают разные типы, то будет вызван тот что больше всего подходит.
Перегрузка позволяет нам менять поведение функции в зависимости от типа или кол-ва параметров, которые мы получили.
Самой простой пример —
System.out.println(). Если вы посмотрите определение метода, то увидите что он принимает и String, и char, и int.#java #lesson #overloading
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
😁2
Класс LinkedList
Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.
У него есть все методы, которые определены в интерфейсах List, Queue, Deque.
📌 Документация
#java #lesson #collections
Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.
У него есть все методы, которые определены в интерфейсах List, Queue, Deque.
addFirst() / offerFirst() — добавляет элемент в начало списка. addLast() / offerLast() — в конец.removeFirst() / pollFirst() — удаляет первый элемент из начала списка. removeLast() / pollLast() — с конца списка.getFirst() / peekFirst(); getLast() / peekLast() — возвращает первый/последний элемент списка.📌 Документация
#java #lesson #collections
❤2🌚2
Теория дженериков в Java
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Аннотация FunctionalInterface
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
Нужно быстро отправить файлы с одного компьютера на другой?
Важное условие, чтобы они были в одной локальной сети. Вы можете запустить сервер на Java и перекинуть файлы с одного компьютера на другой.
Для этого вводите:
📌 Документация
Доступно с Java 18
#java #lesson #tricks
Важное условие, чтобы они были в одной локальной сети. Вы можете запустить сервер на Java и перекинуть файлы с одного компьютера на другой.
Для этого вводите:
jwebserver -b 0.0.0.0, а на другом компьютере открываете сервер по IP, выбираете и загружаете нужный вам файл.📌 Документация
Доступно с Java 18
#java #lesson #tricks
Media is too big
VIEW IN TELEGRAM
Сохраняй огромный сборник задач на практику по разным языкам включая Java + Код и статьи к проектам
🟢 Парсинг
🟢 Боты для популярных соц.сетей
🟢 Веб-приложения на Django и Flask
🟢 Big data и Machine learning
🟢 Компьютерное зрение
🟢 Глубокое обучение и много чего интересного
🔜 Ссылка: тык
👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🌭2🔥1
Совет по Java : Если нужно посчитать количество вхождений элемента в списке, можно использовать
#Java #Collections
👉 Java Portal
Collections.frequency(...).#Java #Collections
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
Java 21 открывает новую эпоху конкурентности с виртуальными потоками — лёгкими потоками, управляемыми JVM, которые значительно повышают производительность I/O-bound приложений.
Подробнее - https://lttr.ai/Ap1Np
#Java #MongoDB #VirtualThread
👉 Java Portal
Подробнее - https://lttr.ai/Ap1Np
#Java #MongoDB #VirtualThread
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
Java Virtual Threads in Action: Optimizing MongoDB Operation
This article was written by Otavio Santana, a renowned contributor to the Java and open-source...
❤2
#Java Совет: вы можете откатить транзакцию БД, созданную аннотацией
👉 Java Portal
@Transactional, получив текущий TransactionStatus через класс TransactionAspectSupport и установив для него rollback через setRollbackOnly();. Таким образом, не нужно выбрасывать исключение.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1🤣1
Java: используйте WeakHashMap для кэширования, когда ключи без ссылок должны удаляться сборщиком мусора.
❌ В HashMap, пока существует сама мапа, ключи и связанные с ними значения не будут удаляться сборщиком мусора.
✅ В WeakHashMap ключи хранятся через слабые ссылки, и если на ключ больше нет сильных ссылок в программе, сборщик мусора может его удалить, и он автоматически исчезнет из мапы.
✅ Пример:
#Java #JavaDev
👉 Java Portal
Map<User, String> map = new WeakHashMap<>();
User u1 = new User("Mick");
map.put(u1, "Cached data");
...
u1 = null;
// С этого момента ключ u1 доступен для сборки мусора.
#Java #JavaDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3
JavaDoc получил реальное улучшение удобства использования в Java 24.
Парень написал практический туториал, который показывает, как использовать JavaDoc с Markdown через комментарии
http://buff.ly/RmaVWSt
#Java #Java24 #Javadoc #Maven
👉 Java Portal
Парень написал практический туториал, который показывает, как использовать JavaDoc с Markdown через комментарии
/// в небольшой библиотеке на Maven + JUnit, включая документацию пакетов, записи, запечатанные типы, генерацию JavaDoc и всплывающие подсказки в IDE.http://buff.ly/RmaVWSt
#Java #Java24 #Javadoc #Maven
Please open Telegram to view this post
VIEW IN TELEGRAM
The-Main-Thread
Write Better JavaDoc in Java 24 with Markdown Comments
Build a small Java library with Maven and JUnit, replace classic JavaDoc with /// Markdown comments, and generate cleaner API docs for humans and AI tools.
❤4
Совет по Java: можно избежать чрезмерного количества параметров метода, сгруппировав связанные значения в объекты. #Java #РазработкаПО
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2😁2👀2
В Java можно использовать
✅ Fail-fast означает, что ошибки фиксируются ближе к месту возникновения, за счёт чего стек вызовов проще читать и анализировать
#Java #РазработкаПО
👉 Java Portal
Optional.orElseThrow() для реализации так называемого fail-fast поведения.#Java #РазработкаПО
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
Совет по Java: удаляйте неиспользуемые импорты и переменные — это улучшает читаемость кода.
До:
После:
#Java #CleanCode
👉 Java Portal
До:
import java.util.Date; // неиспользуемый импорт
import java.util.Scanner;
public class Greeting {
private int age; // неиспользуемая переменная
public void sayHello() {
Scanner sc = new Scanner(System.in);
System.out.println("Hello, world!");
sc.close();
}
}
После:
import java.util.Scanner;
public class Greeting {
public void sayHello() {
Scanner sc = new Scanner(System.in);
System.out.println("Hello, world!");
sc.close();
}
}
#Java #CleanCode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Используй
Проверяет, ссылаются ли два объекта
#Java #РазработкаПО
👉 Java Portal
Files.isSameFile(path1, path2), чтобы проверить, указывают ли два пути на один и тот же файл. Метод также резолвит симлинки.Проверяет, ссылаются ли два объекта
Path на один и тот же реальный файл в файловой системе.#Java #РазработкаПО
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
image_2026-05-02_07-05-20.png
291.1 KB
Паттерны в Java: паттерн «Строитель» позволяет гибко и прозрачно конструировать сложные объекты. #Java #ПаттерныПроектирования
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Java-совет : можно использовать
✅ Это быстрый способ создать немодифицируемые списки и множества без использования
#Java #Коллекции
👉 Java Portal
List.of() и Set.of() для создания неизменяемых коллекций.Collections.unmodifiableList().#Java #Коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM