fa
Feedback
Уютное сообщество джавистов

Уютное сообщество джавистов

رفتن به کانال در Telegram

Уютное сообщество джавистов - это хорошие материалы,задачки, туториалы для проверки знаний и обратная связь от соратников по изучению. @viktorreh

نمایش بیشتر
2 064
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-77 روز
-1930 روز
آرشیو پست ها
Какое из этих слов не является ключевым в Java?
Anonymous voting

✨Открытый урок по Java «ООП на примере консольных крестиков-ноликов» Дата 24 августа в 20:00 мск. Урок приурочен к старту онл
✨Открытый урок по Java «ООП на примере консольных крестиков-ноликов» Дата 24 августа в 20:00 мск. Урок приурочен к старту онлайн-курса «Java разработчик». ⚡️На уроке создадим простые консольные крестики-нолики на Java с нуля и увидим, где в подобной задаче можно применить ООП и как будет разделена логика игры между классами. В результате урока вы: — Увидите, как пишется код и создаются программы на языке Java — Узнаете, как использовать ООП при написании приложений После урока вы сможете продолжить обучение на онлайн-курсе "Java разработчик", который можно приобрести в рассрочку. 👉РЕГИСТРАЦИЯ: https://otus.pw/8MX3/

Какой шаблон проектирования лежит в основе класса java.lang.StringBuffer?
Anonymous voting

🚀 Уже через две недели состоится старт нового потока онлайн-курса "Java Developer. Professional". 🎉 Самый первый курс в OTU
🚀 Уже через две недели состоится старт нового потока онлайн-курса "Java Developer. Professional".  🎉 Самый первый курс в OTUS, 30-й юбилейный запуск!!!🎉 В новом потоке вас ждет много нового, помимо изучения углубленных инструментов работы с Java, мы расскажем вам: ➡️ об особенностях создания безопасного веб-приложения на Java; ➡️ о настройке https в веб приложениях; ➡️ поговорим о написании чистого кода и рефакторинга; ➡️ разберем troubleshooting и debugging в Java приложениях. ⁉️ Какие еще преимущества у нашего курса? 🔵мы учим писать clean code; 🔵 разбираем сложные кейсы, с которыми вы можете столкнуться в работе; 🔵 проводим сode-review также, как это делается в крупных промышленных проектах; 🔵преподаватели с опытом работы в крупных российских и международных компаниях. 🔥 Программа курса всегда актуальна. ➡️ Пройдите вступительный тест и присоединяйтесь к группе: https://otus.pw/wmxV/

Beginning IntelliJ IDEA Автор: Ted Hagos Год издания: 2021 #java #книги #en Скачать книгу
Beginning IntelliJ IDEA Автор: Ted Hagos Год издания: 2021 #java #книги #en Скачать книгу

⚡️Программист, расширь свои возможности на бесплатном вебинаре онлайн-курса «Архитектура и шаблоны проектирования» в Отус — «
⚡️Программист, расширь свои возможности на бесплатном вебинаре онлайн-курса «Архитектура и шаблоны проектирования» в Отус — «Понятие «Декоратор» в программировании»: регистрация На бесплатном занятии мы: — рассмотрим устройство, примеры применения, а также основной принцип паттерна «декоратор» — добавление функциональности к существующему объекту. — рассмотрим устройство и примеры применения паттерна «посетитель», а также подход с методами расширения. —  поговорим о понятиях «декоратор», «адаптер» и «прокси», сходства и различия. 🔥Продолжить обучение после вебинара по спеццене можно на полном курсе, доступном также в рассрочку. Нативная интеграция. Информация о продукте www.otus.ru

Java 21: String templates В сентябре выходит java 21 (LTS) с интересной превью фичей — String templates. Есть две стратегии работы со строками: 🔸 Конкатенация — собираем строку по частям:
String str = "Hello, " + name + "!";

Сюда же относится StringBuilder, метод concat и тд. 🔸 Интерполяция — замена переменных внутри шаблона:
String name = "Jake";
String str = "Hello, ${name}!";

В чистом виде в java такого нет. В Formatter и MessageFormat вместо переменных какие-то %s и %d, а переменные стоят отдельно:
String.format("%d plus %d equals %d", x, y, x + y);

Для сравнения, как это выглядит в Kotlin:
"$x plus $y equals ${x + y}"

Так вот, в java 21 появится интерполяция! В начале строки нужно добавить STR., а переменные поместить в \{}
int x = 10, y = 20;
String str = STR."\{x} + \{y} = \{x + y}";
// "10 + 20 = 30"

Хорошо работает вместе с текстовыми блоками (многострочные строки в тройных кавычках):
String name = "Joan";
String phone = "555-123";
String json = STR."""
{
   "name": "\{name}",
   "phone":"\{phone}",
}
""";

Внутри можно вызывать методы и писать блоки кода:
String time = STR."The time is \{
   DateTimeFormatter
    .ofPattern("HH:mm:ss")
    .format(LocalTime.now())
} right now";
//"The time is 09:01:45 right now"

Читаемость текста снижается, но если очень хочется — почему нет. ❓ Зачем нужен префикс STR? Почему нельзя просто добавить новый функционал в строки? Здесь 2 причины: 1️⃣ Для обратной совместимости На джаве написано много кода, и наверняка какие-то строки содержат блоки \{}. Будет обидно, если этот код перестанет компилироваться. Поэтому строки для интерполяции нужно явно обозначить 2️⃣ Может быть не только STR😱 Здесь открывается портал в другой мир. По задумке авторов темплейты могут подставлять переменные, валидировать данные и делать преобразования. Например, так:
JSONObject json = JSON."{ id: \{id}}";

или даже так:
ResultSet rs = DB."SELECT * FROM Person WHERE name = \{name}";

Для запросов в БД это, наверное, слишком, а вот для работы с JSON выглядит очень удобно. Но рано радоваться🙂 Из коробки этого не будет, только набор классов для кастомизации. Будем надеяться, что авторы библиотек возьмут фичу на вооружение. ❓ Как это работает? Выглядит как магия! В JDK появится статическое поле StringProcessor STR, а строка String str = STR."\{name}!"; во время компиляции превратится в StringTemplate template = new StringTemplate(паттерн, параметры); String str = STR.process(template); Cинтаксический сахарок и никакого волшебства✨

🤖 Сертификация Oracle Java Programmer (OCAJP), как готовиться к экзамену 🔵Узнаем 10 августа в 20:00 мск на открытом уроке о
🤖 Сертификация Oracle Java Programmer (OCAJP), как готовиться к экзамену 🔵Узнаем 10 августа в 20:00 мск на открытом уроке онлайн курса «Углублённое изучение Java» от OTUS. В рамках вебинара мы рассмотрим: - Прошлое и настоящее сертификации Java - Что где и как можно и нужно сдавать - Форма и содержание экзамена Разберёмся, почему наш курс — лучшая и самая удобная возможность подготовиться к сдаче экзамена, если вы не собираетесь готовиться самостоятельно. 🟠Это отличная возможность перенять опыт преподавателя и посмотреть на процесс обучения изнутри. Оплата курса возможна любым удобным для вас способом. ➡️ Для участия в вебинаре зарегистрируйтесь: https://otus.pw/es9D/ Нативная интеграция. Информация о продукте www.otus.ru

Инкапсуляция Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами)
Инкапсуляция Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных. Для достижения инкапсуляции в Java: ☕️ Объявите переменные класса как private. ☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных. Преимущества инкапсуляции: ☕️ Поля класса можно сделать только для чтения или только для записи. ☕️ Класс может иметь полный контроль над тем, что хранится в его полях.

erid: LjN8KK8j3 ⚡️ Отус приглашает 31 июля в 19:00 мск на бесплатный вебинар «Разработка монолитного приложения со Spring» он
erid: LjN8KK8j3 ⚡️ Отус приглашает 31 июля в 19:00 мск на бесплатный вебинар «Разработка монолитного приложения со Spring» онлайн-курса «Kotlin Backend Developer. Professional»! — На занятии мы познакомимся со фреймворком Spring и его принципом работы. — Рассмотрим особенности разработки Spring приложения на языке Kotlin. — Разработаем монолитное приложение и напишем пару интеграционных тестов. — Упакуем наше приложение в Docker, как готовое решение. ✅ В результате вебинара вы: — узнаем преимущества и недостатки монолитной архитектуры, фреймворка Spring, особенностей разработки со Spring в Kotlin; — попрактикуемся в разработке работающего монолитного приложения и разместим его в Docker-контейнере. ➡️ Запись на вебинар: https://otus.pw/H8kr/ Реклама. Информация о продукте www.otus.ru ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963

Если ваше условие состоит в том, чтобы обе части сравнения были истинны, то какой оператор вы будете использовать?
Anonymous voting

Профессия «Java-разработчик». Курс с нуля до трудоустройства за 10 месяцев. Освойте язык крупного бизнеса и финансовых технол
Профессия «Java-разработчик». Курс с нуля до трудоустройства за 10 месяцев. Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring. 🎁 Мы подготовили для вас спецпредложения, чтобы решиться было проще! Выбирайте один из бонусов: 2 месяца академического отпуска, 1 месяц персональных консультаций с наставником и подготовка к техническому интервью, кешбэк 20 000 ₽ после полного прохождения программы. Готовы попробовать прямо сейчас? Оставьте заявку, и мы расскажем, как пройти бесплатные курсы профессии!

Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer? ☕️ InputStream и его наследники нужны для получения байтовых данных из разных источников ☕️ OutputStream и его наследники — набор классов, определяющих потоковый байтовый вывод ☕️ Writer и его наследники определяют потоковый вывод символов в юникоде ☕️ Reader и его наследники определяют потоковый ввод символов в юникоде #вопросы_с_собеседований

Хотите усовершенствовать свои навыки Java с помощью Groovy? Начните с открытого урока "Введение в функциональное программиров
Хотите усовершенствовать свои навыки Java с помощью Groovy? Начните с открытого урока "Введение в функциональное программирование в Groovy" от OTUS. Вебинар пройдёт 24 июля в 20:00 и проведет его преподаватель Андрей Поляков, старший разработчик в Unlimint. Урок приурочен к старту онлайн-курса "Groovy Developer" 🔥На уроке вы: - познакомитесь с понятием функциональное программирование; - узнаете в чем отличие функционального программирования от ООП; - познакомитесь с Closures, контекстом исполнения, областями видимости; - познакомитесь с использованием Closures как функций. Урок будет полезен: Разработчикам, QA, DevOps, которые хотят более глубоко понять, как работают инструменты тестирования и CI/CD jenkins. После вебинара полный курс можно приобрести в рассрочку. ⚡️Для участия зарегистрируйтесь: https://otus.pw/sr8u/?/erid=LjN8KSU3j

Как написать компаратор Компаратор задаёт правило сравнения элементов между собой. Делает он это с помощью метода compare:
public int compare(T o1, T o2) {…}

Если метод вернул ▫️ число больше нуля — первый элемент больше второго ▫️ 0 — элементы равны ▫️ число меньше нуля — первый меньше второго Простейшая и популярная реализация — вычесть одно значение из другого:
(o1, o2) -> (int) (o1.getSum() - o2.getSum())

❓ Что с этим не так? Я всегда сомневаюсь, что из чего вычитать. Если вы отвечали на опрос дольше одной секунды, значит мы в одном лагере:) Компаратор — совсем не то место, где мозг должен спотыкаться. В Java 8 в интерфейсе Comparator появился удобный метод:
orders.sort(comparing(Order::getSum))

Что классно: ✅ Не надо вспоминать, что из чего вычитать ✅ Легко сделать сравнение в обратном порядке:
comparing(Order::getSum).reversed()
✅ Можно учесть null:
nullsFirst(comparing(Order::getSum))
nullLast(…)
✅ Удобно сортировать по нескольким полям:
comparing(Order::getSum).thenComparing(Order::getId)

Самостоятельно обрабатывать null и писать сложные сортировки очень утомительно. Помню, как с удовольствием удаляла из проекта компараторы на 20 строк после перехода на Java 8😊 Важные нюансы: 1️⃣ comparing* В интерфейсе Comparator также доступны методы comparingInt, comparingLong и comparingDouble. Используются для полей примитивного типа, чтобы избежать лишнего боксинга. Если в классе Order Long id → используем comparing(Order::getId) long idcomparingLong(Order::getId) Не указывайте тип лишний раз. Для работы с объектами подойдёт обычный comparing 2️⃣ Нетривиальная работа с null* В обычных методах легко понять, что происходит:
comparing(A).reversed().thenComparing(Б)
= отсортировать по полю А в обратном порядке, дубликаты отсортировать по Б Методы null* выбиваются из этой схемы.
nullsFirst(comparing(Order::getSum))

означает, что первыми будут null объекты, а существующие заказы отсортируются по сумме. Этот компаратор работает для такого кода: orders.add(null); // эти элементы будут впереди orders.add(new Order(…)); // эти отсортируются по полю sum Если в списке нет null объектов, но в поле sum возможен null, придётся писать так:
…comparing(Order::getSum, nullsFirst(naturalOrder()));

Сравнение по нескольким nullable полям выглядит совсем плохо. К счастью, на практике такие задачи встречаются редко. Ответ на вопрос перед постом:
(o1, o2) -> (int) (o2.getSum() - o1.getSum())

Но лучше использовать comparing(Order::getSum).reversed()

🤪 Если вы пишете приложения на Java и выбираете архитектуру между монолитной и микросервисной, то курс «Микросервисы и API н
🤪 Если вы пишете приложения на Java и выбираете архитектуру между монолитной и микросервисной, то курс «Микросервисы и API на Java и Kotlin» для вас! Мы убеждены, что разрабатывать микросервисы интереснее, а работать с ними — проще! Почему? ✔️ Легче ловить сбои и приводить приложение в порядок ✔️ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему ✔️ Разные микросервисы — разные технологии разработки ✔️ Можно обновлять приложение по отдельным частям Все эти темы и многие другие мы разбираем на курсе по микросервисам на Java. 🤑 И чтобы было легче вкатиться в занятия, мы дарим вам два бесплатных демо-урока. На них мы разберём отличия монолита от микросервиса, в каких условиях стоит выбирать ту или иную архитектуру ПО. Переходите по ссылке и забирайте уроки, эти знания вам точно пригодятся в работе! Бесплатные уроки можно получить тут.

Java For Dummies Автор: Barry Burd Год издания: 2022 #java #книги #en Скачать книгу
Java For Dummies Автор: Barry Burd Год издания: 2022 #java #книги #en Скачать книгу

❓Хотите создавать бэкенд Java-приложений с использованием Groovy? Тогда приходите 27 июня в 20:00 мск на открытый урок «Share
❓Хотите создавать бэкенд Java-приложений с использованием Groovy? Тогда приходите 27 июня в 20:00 мск на открытый урок «Shared Libraries в Jenkins» в OTUS. На занятии мы посмотрим, как расширять пайплайны в Jenkins с помощью внешних библиотек и научимся их писать. Встреча приурочена к запуску онлайн-курса «Groovy Developer» в OTUS. ⚡️Спикер: Андрей Поляков, старший разработчик в Unlimint и преподаватель курса. На занятии мы рассмотрим: - Подключение библиотек в пайплайнах - Структуру shared-libraries - Особенности подключения и глобальные настройки - Возможности Groovy при написании shared-библиотек 🔥Вебинар будет полезен DevOps-инженерам и Java-разработчикам, которые хотят научиться создавать и настраивать сборки Java Backend проектов. Для участия зарегистрируйтесь: https://otus.pw/uyJY/ Нативная интеграция. Информация о продукте www.otus.ru

Приведите примеры структурных шаблонов проектирования. Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс. Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо. Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому. Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования. Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое. Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым. Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него. #вопросы_с_собеседований

⌨️Хотите узнать, как создаются веб-приложения на языке Java? Приходите 20 июня в 20:00 мск на вебинар, где мы обсудим одну из
⌨️Хотите узнать, как создаются веб-приложения на языке Java? Приходите 20 июня в 20:00 мск на вебинар, где мы обсудим одну из основных областей применения Java — разработку веб-приложений и посмотрим, как на практике можно создать свое серверное приложение. Открытый урок «Как работают веб-приложения на Java на практике» пройдет в преддверии старта онлайн-курса «Специализация Java Developer» в OTUS. Урок будет полезен тем, кто хочет узнать: — Как работает современный web; — Что такое и как устроены серверные веб-приложения; — Как пишут программы на языке Java. Больше навыков Java-разработки вы сможете получить на курсе, доступном в рассрочку. 👉 Регистрируйтесь на занятие: https://otus.pw/LJlP/ Нативная интеграция. Информация о продукте www.otus.ru