uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

Библиотека Java разработчика

Библиотека Java разработчика

Відкрити в Telegram

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Показати більше
9 993
Підписники
Немає даних24 години
-157 днів
-5830 днів
Архів дописів
💡Совет по IntelliJIDEA Получите быстрый обзор вашего класса Java и перейдите к нужному методу, используя всплывающее окно File Structure (Структура файла) (⌘F12 | Ctrl+F12). 👉@BookJava

Советы по Java API 🚀 Синхронизация в Java - ReentrantLock Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в J
Советы по Java API 🚀 Синхронизация в 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

Может ли имя класса не совпадать с именем файла? Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла. Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета. Так что ответ – может. 👉@BookJava

👩‍💻 Как стать востребованным Java-разработчиком с нуля? Получить все необходимые навыки до уровня Middle на комплексном онл
👩‍💻 Как стать востребованным Java-разработчиком с нуля? Получить все необходимые навыки до уровня Middle на комплексном онлайн-курсе «Специализация Java-разработчик» от OTUS. После обучения вы сможете: ➡️ Создавать приложения на Java ➡️ Работать с реляционными базами данных ➡️ Разрабатывать серверные веб-приложения ➡️ Претендовать на позиции Middle Java Developer 📌Вы освоите все необходимые инструменты, создадите выпускной проект под руководством опытных специалистов из ведущих компаний и добавите его в портфолио. ➡️ Как понять, подойдет ли вам программа? Оставьте заявку прямо сейчас и получите 3 урока от экспертов курса в подарок: https://vk.cc/ctB1LV 🌲 А ещё, сейчас действуют новогодние скидки! Предложение ограничено. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

🚀 Совет по API Java 🚀 java.util.IdentityHashMap В отличие от HashMap, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥 https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html 👉@BookJava

+6
Уроки Java для начинающих #11 — Методы в Java #12 — Тип возвращаемого значения метода #13 — Параметры метода #14 — Инкапсуляция. Getter и Setter методы #15 — Ключевое слово final #16 — Ключевое слово this #17 — Конструкторы источник 👉@BookJava

⚡️ Тест по Java от OTUS Проверь насколько хорошо ты знаешь Java и готов освоить Spring! Ответишь — пройдешь на продвинутый ку
⚡️ Тест по Java от OTUS Проверь насколько хорошо ты знаешь Java и готов освоить Spring! Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене. 👉 ПРОЙТИ ТЕСТ: https://vk.cc/ctzElZ 🎫 Курс можно приобрести в рассрочку 🌲 А ещё, сейчас действуют новогодние скидки! Предложение ограничено. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

+9
Уроки Java для начинающих #1 — Установка JDK и IDE #2 — Переменные. Примитивные типы данных #3 — Строки (String). Ссылочные типы данных #4 — Условные конструкции (if-else, switch-case) #5 — Цикл for #6— Циклы While и Do While #7 — Консольный ввод данных #8 — Массивы #9 — Многомерные массивы #10 — Классы и объекты источник 👉@BookJava

👩‍💻 Набор в последнюю группу курса "Java Developer. Professional" в уходящем 2023 году! 🎉 В Otus праздничные цены для отли
👩‍💻 Набор в последнюю группу курса "Java Developer. Professional" в уходящем 2023 году! 🎉 В Otus праздничные цены для отличной карьеры в IT! Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса . 🎄 Новогодние скидки! Возможна оплата в рассрочку! Предложение ограничено. ➡️ ПРОЙТИ ТЕСТ: https://vk.cc/ctypek Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Как работает память Java? Прежде чем мы перейдем к вопросам производительности, нам нужно узнать, что на самом деле происходит в фоновом режиме JVM (Java Virtual Machine). Это отправная точка для каждого разработчика, который хочет изучить и настроить производительность, чтобы набрать скорость. Итак, давайте погрузимся в мир кодов. В Java управление памятью осуществляется JVM автоматически для хранения ваших переменных, классов, полей и так далее... Первое, что мы узнаем, это то, что в JVM память разделена на две области. Одна из них называется Stack, а другая - Heap. https://blog.stackademic.com/how-java-memory-works-c751460e3cbd 👉@BookJava

Как использовать JavaEE сервлет в Spring Framework? Web-приложение на Spring MVC технически само по себе работает на сервлетах: всю обработку запросов берет на себя единый DispatcherServlet. С его помощью реализуется паттерн Front Controller. Если вам нужно определить в программе полностью независимый от Spring-контекста сервлет или фильтр, ничего особенного для этого делать не нужно. Как обычно в Servlet API, нужно объявить класс, добавить его в web.xml как сервлет, добавить для сервлета маппинг. Сервлет живет вне Spring-контекста, внедрение зависимостей в нём просто так не заработает. Чтобы использовать autowiring, на этапе инициализации сервлета вызывается статический SpringBeanAutowiringSupport.processInjectionBasedOnServletContext, с текущим сервлетом и его контекстом в аргументах. В этом же утилитарном классе есть ряд других средств для работы с контекстом извне. Если программа построена на Spring Boot, создание бина типа ServletRegistrationBean поможет добавить сервлеты в рантайме. А для декларативного добавления на этапе компиляции, к классу конфигурации применяется @ServletComponentScan. С этой аннотацией стартер приложения просканирует и добавит в контекст все web-компоненты в стиле Servlet 3.0: классы с аннотациями @WebFilter, @WebListener и @WebServlet. 👉@BookJava

💪 Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS
💪 Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 . 🌲 А ещё, сейчас действуют новогодние скидки! Возможна оплата в рассрочку! Предложение ограничено. 👉 ПРОЙТИ ТЕСТ: https://vk.cc/ctqXSy Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Как передать runtime информацию о generic-типе? Когда вы проектируете API-метод библиотеки, иногда логика его реализации может зависеть от указанного клиентом типа. Особенно часто с этой задачей встречаются при разработке парсеров. Например, библиотека Jackson превращает JSON в объект заданного класса. На интервью этот вопрос можно встретить в виде практической задачи. Первое, что приходит в голову для решения – дженерик-параметр. Такой подход не сработает, потому что тип будет стёрт во время компиляции, а логика будет происходить позже, во время выполнения. Решение, которое сработает для многих случаев – объявление в методе аргумента типа Class<T>. Пользователь будет передавать в него значение Foo.class или fooInstance.getClass(). Проблемы с ним начинаются, когда становится нужно передать generic-тип. Синтаксис .class не поддерживает дженерики, а .getClass() от экземпляров List<String> и List<Integer> вернет один и тот же объект-описание сырого типа List. На помощь приходит техника, описанная в предыдущей публикации. 1. Объявляется generic класс-обертка над типом: TypeInformation<T>;. Наш метод будет принимать информацию о типе в виде экземпляра этой обертки. 2. В обертку добавляется конструктор с видимостью protected. Теперь можно создавать объекты только наследников, но не самого этого типа. 3. Пользователь будет передавать экземпляр анонимного наследника обертки: new TypeInformation<List<String>>() {}. 4. Внутри вызов getClass().getGenericSuperclass() вернет ParameterizedType. Это будет описание типа родителя анонима, то есть самой обертки. Из него с помощью getActualTypeArguments() можно достать рантайм-информацию о значении дженерика (о List<String>). 👉@BookJava

Как разбить строку на слова? StringTokenizer – специально предназначенный для этого класс стандартной библиотеки Java. Ему ну
Как разбить строку на слова? StringTokenizer – специально предназначенный для этого класс стандартной библиотеки Java. Ему нужно задать разделители, по ним строка будет разделена на «токены». Это устаревший класс, он остается в библиотеке только для обратной совместимости. Вместо него рекомендуется использовать метод String.split(). Метод принимает строку с регулярным выражением, и опциональный лимит токенов. Реализация особенно оптимизирована для односимвольного разделителя. Но следует помнить, что даже если символ один, это всё ещё регулярное выражение – спецсимвол должен экранироваться. Другой подходящий метод – Pattern.split(). Он, наоборот, вызывается у регулярного выражения, а принимает целевую строку. В этот же метод делегируется и выполнение String.split(). Этот способ предпочтительнее, когда в регулярном выражении больше одного символа, а скомпилированный паттерн применяется повторно. 👉@BookJava

♨️ Хочешь выйти на новый профессиональный уровень джавист? - Осваивай Spring! Тест на знание языка Java — Ответь на 21 вопрос
♨️ Хочешь выйти на новый профессиональный уровень джавист? - Осваивай Spring! Тест на знание языка Java — Ответь на 21 вопрос и проверь, насколько хорошо nы знаешь язык Java и готовы освоить Spring. Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработчик на Spring" Framework со скидкой! 👉 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА "Разработчик на Spring Framework": https://vk.cc/ctosfe 🎫 Курс доступен для приобретения в рассрочку! 🌲 А ещё, сейчас действуют новогодние скидки! Предложение ограничено. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Операция «K». Ищем баги в коде IntelliJ IDEA В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошиб
Операция «K». Ищем баги в коде IntelliJ IDEA В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошибок и отправим наши правки разработчикам. Крупный проект, Open Source база и использование статического анализатора при разработке. Сложная задача для PVS-Studio. https://habr.com/ru/companies/pvs-studio/articles/780560/ 👉@BookJava

Beginning Java Objects: From Concepts to Code, 3rd Edition Автор: Jacquie Barker (2023) Среди многих привлекательных особенно
Beginning Java Objects: From Concepts to Code, 3rd Edition Автор: Jacquie Barker (2023) Среди многих привлекательных особенностей Java как языка программирования, его объектно-ориентированная природа является ключом к созданию мощного, многократно используемого кода и приложений, которые легко поддерживать и расширять. Чтобы воспользоваться этими возможностями, вам потребуется не только освоить синтаксис языка Java, но и получить практическое понимание того, что такое объекты, и, что еще важнее, как с нуля структурировать Java-приложение, чтобы максимально использовать объекты. Скачать 👉 @java_360

⚡️ Профессия Java-разработчик с нуля и до востребованного специалиста! Уже 29 декабря стартует новая группа специализации «Ja
⚡️ Профессия Java-разработчик с нуля и до востребованного специалиста! Уже 29 декабря стартует новая группа специализации «Java Developer» в OTUS. 👩‍💻 С нуля до Middle за 15 месяцев! На онлайн-курсе вы получите: ➡️ Уникальные знания от преподавателей — Senior Java-разработчиков ведущих IT-компаний. ➡️ Практику создания реальных проектов — разработка своего серверного приложения на Java ➡️ Актуальные навыки, необходимые для трудоустройства Middle Java-разработчиком ➡️ Вы освоите инструменты: IntelliJ IDEA, Java Development Kit (JDK), Spring Framework, Hibernate, PostgreSQL, Apache Maven, Gradle, Docker, Kubernetes, Apache Kafka, RabbitMQ, JUnit, Postman, Jira. 👉 Получить специальные условия на курс можно оставив заявку по ссылке: https://vk.cc/ctmBSF 🌲 А ещё, сейчас действуют новогодние скидки! Предложение ограничено. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Совет 💡 Самый простой способ сделать проверку нескольких полей без дополнительных классов и аннотаций - использовать @Assert
Совет 💡 Самый простой способ сделать проверку нескольких полей без дополнительных классов и аннотаций - использовать @AssertTrue. Вы помещаете его над методом, возвращающим булеву величину. Имя метода должно начинаться с "is". 👉@BookJava

Какой способ логирования выбрать? Библиотеки логирования, ставшие стандартом де-факто, в хронологическом порядке их появления: • java.util.Logging из стандартной библиотеки • Log4j (deprecated) • Logback • Log4j 2 Все эти библиотеки поддерживают основные фичи: уровни логирования (что писать), различные хэндлеры (куда писать), форматы (как писать). Развитие библиотек происходило последовательно, в нюансах каждая из них учитывала ошибки предыдущей, сохраняя её преимущества. Обычно выбирают самые свежие варианты – Logback и Log4j 2. Для совмещения нескольких решений в одном проекте существуют библиотеки-фасады, которые подставляют разные реализации под общий интерфейс: • SLF4j • Apache Commons Logging (JCL) Кроме того, можно использовать bridge-библиотеки. Они маскируют одну реализацию непосредственно под интерфейс другой. С их помощью, например, можно уместить в одном проекте использование двух разных фасадов, или обойтись вовсе без фасадов. 👉@BookJava