Java Challenges: 100+ Proven Tasks that Will Prepare You for Anything
Автор: Michael Inden (2021)
Автор Майкл Инден описывает альтернативные решения и анализирует возможные подводные камни и типичные ошибки при проектировании систем. Примеры рассматриваются с использованием JShell, JUnit 5 для модульного тестирования и проверки решений. Также, подробно описывается O-нотация для оценки производительности алгоритмов.
Скачать
👉 @java_360
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
public static void main(String[] args) {
List<Integer> list = Collections.emptyList();
list.add(0);
}
#вопросы_с_собеседований
Fastjson - это библиотека Java, которую можно использовать для преобразования Java-объектов в их JSON-представление. Она также может быть использована для преобразования строки JSON в эквивалентный объект Java. Fastjson может работать с произвольными Java-объектами, включая уже существующие объекты, исходный код которых у вас отсутствует.
https://github.com/alibaba/fastjson
👉👆
Вышла Java 20
Вышла общедоступная версия Java 20. В этот релиз попало около 1500 закрытых задач и 7 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.
Ссылки на скачивание:
Oracle JDK
OpenJDK
👉👆
Полное руководство по switch в Java
Старый добрый switch был в Java с первого дня. Мы все используем его и привыкли к нему — особенно к его причудам (кого‑нибудь еще раздражает break?). Но начиная с Java 12, ситуация начала меняться: switch вместо оператора стал выражением:boolean result = switch(ternaryBool) {
case TRUE -> true;
case FALSE -> false;
case FILE_NOT_FOUND -> throw new UncheckedIOException(
"This is ridiculous!",
new FileNotFoundException());
default -> throw new IllegalArgumentException("Seriously?!");
}
https://habr.com/ru/post/724186/
👉👆
Spring 5 Recipes: A Problem-Solution Approach
Автор: Marten Deinum, Daniel Rubio, Josh Long
Год издания: 2017
#spring #java
Скачать книгу
Для чего используются ключевые слова volatile, synchronized, transient, native?volatile
вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все данные, содержащиеся в объекте, синхронизированы не будут!synchronized
— это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.
Ключевые слова transient
и native
к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе сигнализирует о том, что метод реализован в платформо-зависимом коде.
👉👆
Kickstart Your Spring Boot Application Development
https://www.docker.com/blog/kickstart-your-spring-boot-application-development/
👉👆
Заваривайте чашку кофе и встречайте JPoint — крупнейшее событие в России, посвященное Java-разработке.
В программе технические доклады от спикеров из топовых компаний, личный опыт, боль и много кода. Работа с БД на примере Spring Boot-придолжений, устройство и работа Consumer, Java для мобильных приложений, тайны паттерна DTO — и это только малая часть программы.
Кроме технической конкретики, которой немало, будут и более «софт-скилльные» доклады. Например, Дмитрий Иванов и Андрей Кулешов из Huawei расскажут про пирамиду потребностей Маслоу для Java/Kotlin-разработчика. А для самых любознательных организаторы подготовили кейноуты Натальи Зубаревич и Станислава Дробышевского.
JPoint — это возможность пообщаться с коллегами из разных компаний, познакомится с ветеранами Спринга, увидеть новые лица Java-мира и просто хорошо провести время.
Если билет вам покупает работодатель, то пришлите ему эту ссылку.
Если идете за свой счет, то ищите билеты здесь. По промокоду BOOKJAVA они будут еще дешевле.
Java. Многопоточность. Как устроить Deadlock
В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
Исходники GitHub
источник
👉👆
✨ 22 марта в 19:00 по МСК пройдет бесплатный вебинар «Spring. Ошибки и решения».
Что будет на трансляции:
- Spring Initz, шаблон приложения
- Архитектура базового микросервиса
- ControllerAdvice — обработка ошибок в контроллерах
- JPA генерация
Ведущий: Сергей Полухин, Senior Java Developer
🚀 Бесплатная регистрация: https://clck.ru/33NKi2
Почему не рекомендуется использовать метод Thread.stop()?
При принудительной остановке (приостановке) потока, stop()
прерывает поток в недетерменированном месте выполнения, в результате становится совершенно непонятно, что делать с принадлежащими ему ресурсами. Поток может открыть сетевое соединение - что в таком случае делать с данными, которые еще не вычитаны? Где гарантия, что после дальнейшего запуска потока (в случае приостановки) он сможет их дочитать? Если поток блокировал разделяемый ресурс, то как снять эту блокировку и не переведёт ли принудительное снятие к нарушению консистентности системы? То же самое можно расширить и на случай соединения с базой данных: если поток остановят посередине транзакции, то кто ее будет закрывать? Кто и как будет разблокировать ресурсы?
👉👆
Подборка ТОП-10 Python каналов:
@pythonbooks - самый большой канал для скачивания книг по Python. Более 40 тыс. подписчиков.
@pythonist_ru - самый серьезный канал с переводами англ. статей, логическими задачами и разборами с собеседований. Вся инфа уникальная + сайт с посещаемостью > 1млн пользователей в год.
@pythonboost - канал Python разработчика с туториалами и разбором задач и тестов. Более 15.000 подписчиков
@pythonknigi_backup - для тех, кто читает только на русском, тут книги в PDF на русском языке. Скачать можно в 2 клика.
@pythonquestions - более 1000 разных тестов по питону. Начиная от самых легких и заканчивая сложными. В комментариях под тестами, можно посмотреть решения и обоснования решения каждого конкретного теста. Более 15.000 подписчиков.
@pythonrabota - канал со свежими вакансиями по Python. Автор находит вакансии для Junior и Middle позиций и обязательно есть контакт для связи(телеграм аккаунт) с HR менеджерами по каждой вакансии. ~ 10.000 подписчиков.
@pythonjuniorjob - канал с вопросами и ответами на Python собеседовании. Вопрос в один день и в другой ответ на него(есть время подумать и почитать). ~ 10.000 подписчиков.
@pythonturboru - канал называется Turbo Python и в нем собраны лучшие посты из всех остальных телеграм каналов и сайтов по питону. Автор решил не делать уникальный контент, а собирать лучшие вещи которые уже есть в интернете и просто их правильно подавать (топ идея, как нам кажется). Более 11.000 подписчиков.
@pythonknigi - еще один канал для скачки книг. Все книги в PDF и у всех свежий год выпуска. Более 20.000 подписчиков.
@pythonboosttest - пожалуй один из лучших каналов с тестами по Python. Собраны топ тесты с других телеграм каналов.
Выбирайте подходящий для себя канал и подписывайтесь.
Что такое литералы?
Литералы — это явно заданные значения в коде программы — константы определенного типа, которые находятся в коде в момент запуска.class Test {
int a = 0b1101010110;
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
В этом классе “Hello world!” — литерал.
Переменная a - тоже литерал.
Литералы бывают разных типов, которые определяются их назначением и способом написания.
👉👆
Java spring exception handling | обработка исключений за 5 минут
В этом видео речь пойдет об обработке исключений на уровне контроллера на языке Java. Покажу, какие инструменты есть у Spring.
00:23 - try catch, ResponseEntity
00:47 - наследование ResponseStatusException
01:10 - настройки отображения сообщения, названия ошибки и стек трейс в ответе
01:47 - бросаем ResponseStatusException
02:04 - аннотация @ ExceptionHandler
03:05 - аннотация @ RestControllerAdvice
03:40 - кастомный объект вместо ResponseEntity
04:02 - аннотация @ ResponseStatus
Код можно посмотреть тут: https://github.com/dispikerton/exceptionHandling
источник
👉👆
Тинькофф бросает вызов бэкенд-разработчикам!
15 апреля стартует IT's Tinkoff Solution Cup — соревнование для мидлов и сеньоров. Будут сложные задачи и призы победителям.
Регистрируйтесь, проходите отборочный тур и побеждайте в финале 22 апреля. Детали тут: https://l.tinkoff.ru/cup-solution
Java. Шифруем данные для открытой передачи
Шифруем текст с использованием ключа данные для открытой передачи в GET для разных ситуаций. Не использовал secure библиотеки - по каким-то известным только мне тогдашнему причинам.
Если не охота заморачиватья с шифрованием - из комментария подписчика @Александр Плохой: Cipher.getInstance("AES").init(ENCRYPT_MODE, key);
(опять не прицепились маркеры - дублирую в описани)
00:00 Вступление и обоснования
02:00 Личный опыт
04:00 Spring
08:00 Библиотека символов
12:00 Encrypt
18:00 Decrypt
19:00 Test
23:00 Разбор на пальцах
Source: https://github.com/azim-ut/encrypt
источник
👉👆
🔥Где получить начальные знания по Java-разработке?
23 марта в 20:00 для начинающих Java-разработчиков на открытом уроке в OTUS разберем основы UML. Занятие приурочено к старту специализации «Java Developer».
⚡️На занятии мы:
— Поговорим о месте UML в процессах разработки ПО
— Разберем диаграмму классов и типы связей между классами с примерами на Java
— Обсудим, какую пользу может принести знание UML начинающему разработчику.
✨В результате урока вы научитесь применять диаграммы UML при проектировании приложения. А больше навыков ждет вас на онлайн-курсе, доступном в рассрочку.
👉Регистрируйтесь на занятие:
https://otus.pw/hgtF/
Search Algorithms in Java
https://stackabuse.com/search-algorithms-in-java/#javacollectionsapi
👉👆
Где и как вы можете использовать приватный конструктор?
Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.
#вопросы_с_собеседований
Что такое Optional?
Опциональное значение Optional — это контейнер для объекта, который может содержать или не содержать значение null
. Такая обёртка является удобным средством предотвращения NullPointerException
, т.к. имеет некоторые функции высшего порядка, избавляющие от добавления повторяющихся if null/notNull
проверок:Optional<String> optional = Optional.of("hello");
optional.isPresent(); // true
optional.ifPresent(s -> System.out.println(s.length())); // 5
optional.get(); // "hello"
optional.orElse("ops..."); // "hello"
👉👆
Рисуем звук. Почувствуй себя нейросетью. Java, Guice
Сегодня java, guice и другие - помогут нам записать звук в представление чуть более непонятное чем эквалайзер (по крайней мере для меня). Вы при желании можете записать что-то другое.
00:00 Demo
01:34 Under the hood
02:44 Quickstart Archetype
04:28 BytesFetcher interface
05:32 AudioBytesFetcher
15:00 ImageDrawService
27:44 Guice module
28:51 App
34:40 Start
35:36 Success
36:23 Result
GitHub
источник
👉👆
Java. Лямбда-выражения
В этом видео я рассказываю о том, что такое лямбда-выражения в языке программирования Java. На примерах показываю, для чего нужны лябды, и какую роль они играют при написании кода в функциональном стиле.
источник
👉👆
Нашли для вас ребят, с которыми можно начать карьеру разработчика без вложений, а после прохождения курса они гарантировано устроят на работу!🤩
ITM Space - один из немногих проектов в России, где ты можешь научиться Java разработке бесплатно. Оплата обучения происходит только после того, как ты начнешь работать. Первая зарплата - от 150 000 рублей. 💸
1. Ты получаешь гарантию трудоустройства, если не найдешь работу - ничего не должен.
2. Будешь учиться по индивидуальной программе с личным наставником.
3. Изучишь востребованный стек технологий: Java Core, JDBC, HIBERNATE, SPRING(Core, MVC, Security), SPRING BOOT, GIT(GITHUB, GITLAB), MAVEN
4. Сможешь общаться в закрытом сообществе студентов - разработчиков
5. И получишь карьерную поддержку от экспертов бессрочно: мастер-классы, митапы, консультации и тренинги.
Курс подойдет тем, кто хочет войти в IT, но никогда раньше не занимался программированием. Студентам ВУЗов и выпускникам образовательных программ, которые затрудняются найти работу после обучения. ...