This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уроки Java для начинающих
#1 — Установка JDK и IDE
#2 — Переменные. Примитивные типы данных
#3 — Строки (String). Ссылочные типы данных
#4 — Условные конструкции (if-else, switch-case)
#5 — Цикл for
#6— Циклы While и Do While
#7 — Консольный ввод данных
#8 — Массивы
#9 — Многомерные массивы
#10 — Классы и объекты
источник
👉@BookJava
#1 — Установка JDK и IDE
#2 — Переменные. Примитивные типы данных
#3 — Строки (String). Ссылочные типы данных
#4 — Условные конструкции (if-else, switch-case)
#5 — Цикл for
#6— Циклы While и Do While
#7 — Консольный ввод данных
#8 — Массивы
#9 — Многомерные массивы
#10 — Классы и объекты
источник
👉@BookJava
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👍4
🚀 Совет по API Java 🚀
java.util.IdentityHashMap
В отличие от
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html
👉@BookJava
java.util.IdentityHashMap
В отличие от
HashMap
, этот класс использует равенство ссылок (==), а не равенство объектов (equals()
) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html
👉@BookJava
Oracle
IdentityHashMap (Java SE 21 & JDK 21)
declaration: module: java.base, package: java.util, class: IdentityHashMap
👍3👏3🥰1
Может ли имя класса не совпадать с именем файла?
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
👉@BookJava
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
👉@BookJava
Telegram
Библиотека Java разработчика
Как нельзя называть переменные?
Этот вопрос подразумевает ответ из двух частей. Нужно указать, какие есть технические ограничения, и какие стилистические. Стиль – слишком большая тема, не специфичная только для Java, не будем на ней останавливаться.
Технически…
Этот вопрос подразумевает ответ из двух частей. Нужно указать, какие есть технические ограничения, и какие стилистические. Стиль – слишком большая тема, не специфичная только для Java, не будем на ней останавливаться.
Технически…
🔥4👍3
Советы по Java API 🚀
Синхронизация в Java - ReentrantLock
Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java. Достигайте более тонкого контроля и продвинутых механизмов блокировки.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html
👉@BookJava
Синхронизация в Java - ReentrantLock
Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java. Достигайте более тонкого контроля и продвинутых механизмов блокировки.
class X {
private final ReentrantLock lock = new ReentrantLock();
// ...
public void m() {
lock.lock(); // block until condition holds
try {
// ... method body
} finally {
lock.unlock();
}
}
}
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html
👉@BookJava
👍7😁2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Совет по IntelliJIDEA
Получите быстрый обзор вашего класса Java и перейдите к нужному методу, используя всплывающее окно File Structure (Структура файла)
👉@BookJava
Получите быстрый обзор вашего класса Java и перейдите к нужному методу, используя всплывающее окно File Structure (Структура файла)
(⌘F12 | Ctrl+F12)
. 👉@BookJava
👍3🥰1
🚀 Советы по Spring 🚀
Расширенная асинхронная обработка с помощью DeferredResult
Изучите использование DeferredResult и CompletionStage для более тонкого контроля над асинхронной обработкой. 🔥
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html
👉@BookJava
Расширенная асинхронная обработка с помощью DeferredResult
Изучите использование DeferredResult и CompletionStage для более тонкого контроля над асинхронной обработкой. 🔥
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html
👉@BookJava
docs.spring.io
DeferredResult (Spring Framework 6.2.7 API)
declaration: package: org.springframework.web.context.request.async, class: DeferredResult
👍1🥰1
Как обойти коллекцию?
for/while. Классический способ: целочисленная переменная-индекс, которая увеличивается от 0 до
Iterator. ООП-способ: методом
for Iterable. Синтаксический сахар для обхода итератором. Простейший синтаксис когда нужен просто обход. В отличие от явного использования итератора не дает возможности модифицировать элементы в процессе.
Стримы. Создать от коллекции стрим и работать с элементами в нём. Кроме простого
Функции Java 8. С этой версии появились удобные средства для обхода не только строк. У коллекций и хэш-таблиц добавились методы
👉@BookJava
for/while. Классический способ: целочисленная переменная-индекс, которая увеличивается от 0 до
size()
. Можно использовать для неполного обхода, с нестандартным шагом. Плата за это – возможность ошибиться в индексах и менее читабельный код.Iterator. ООП-способ: методом
iterator()
получить объект-итератор, и вызывать у него next()
пока hasNext()
возвращает true
. В реализации может быть дополнительная логика, такая как потокобезопасность. Такой «объект-итерацию» коллекции можно передать в сторонний код, не отдавая саму коллекцию. Всё еще требует слишком много кода.for Iterable. Синтаксический сахар для обхода итератором. Простейший синтаксис когда нужен просто обход. В отличие от явного использования итератора не дает возможности модифицировать элементы в процессе.
Стримы. Создать от коллекции стрим и работать с элементами в нём. Кроме простого
forEach()
, можно воспользоваться всей мощью Java Steam API – фильтровать, преобразовывать и агрегировать элементы. За это создаются лишние объекты, а синтаксис гораздо более развесистый.Функции Java 8. С этой версии появились удобные средства для обхода не только строк. У коллекций и хэш-таблиц добавились методы
forEach
для обхода и replaceAll
для модификации. Как со стримами, они дают функциональный стиль, но без избыточного создания стримов. Внутри используются простые итераторы и циклы for.👉@BookJava
👍8