📓 Книги по Java
870 subscribers
340 photos
27 videos
5 files
835 links
📓 Книги по Java

Самый крутой канал c подборкой книг, статей, но и как без рекламы все в одном месте
По ворпосам размещения @qa_autom
Download Telegram
Используем логин Google с Spring Boot 3 и Thymeleaf

Наверное каждый из нас когда-нибуть писал программу с процедурой аутентификации пользователя при входе в приложение. 😒

Предложенная сегодня статья научит вас использовать логин Google для приложения Spring Boot + Thymeleaf.

Хорошей практики!

Читать статью
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?

• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
Какова структура Java Collections Framework? Почему Map не Collection?

Collection – хранилище отдельных значений, Map – хранилище ключ-значение. Отсюда разные методы этих интерфейсов. Если проще, разные сигнатуры методов put и add.

Collection в свою очередь делится на три основных группы, и соответствующих им интерфейса:
🔘 List – упорядоченные списки с возможностью содержания дубликатов и доступа по индексу (random access);
🔘 Queue – обычно FIFO-коллекции, предполагает добавление/удаление элементов с края. Интерфейс-наследник Deque – двусвязная очередь;
🔘 Set – не обязательно упорядоченный набор уникальных (с точки зрения equals) значений;

HashMap можно привести к виду Collection вызвав например keySet(), entrySet() или values().
Бесплатное обучение дизайну с нуля. Вместе сделаем портфолио из 4+ работ с личной поддержкой от наставника.

Что вы получите?
— Фидбэк (мощный разбор всех ДЗ от куратора)
— Тусовка (личный кабинет с уроками + живой чат)
— Портфолио и экзамен (упакуем по урокам и проверим)
— Мастер-класс "как заработать на дизайне" и найти клиента

🔥 Будем делать: веб-дизайн, графический дизайн, анимацию интерфейсов.

Начать обучение бесплатно

Программа бесплатного курса:
— Обучение по Figma с нуля и 4+ дз с личным разбором
— Изучение основ дизайна (контент, сетки, композиция т.д.)
— Создание анимации интерфейса
— Все о профессии и доходе дизайнера (поиск клиентов и реальный доход)

👉 Первый урок уже сегодня, кликайте сюда и забирайте все бонусы
Джавистам-джунам с каждым годом все сложнее найти нормальную работу: рынок перегрет, компании требуют все больше, а платят все меньше.

Что на счет того, чтобы и в код не углубляться, и зарабатывать столько же (а может и больше!) ?

Речь идет об автоматизации тестирования на Java. Основные навыки у тебя уже наверняка есть, раз ты читаешь канал для Джавистов. А тестировщики-автоматизаторы, зачастую, используют в работе только Java Core, большего тебе вряд ли потребуется.

А чтобы получить недостающие знания — записывайся на курс от Kata Academy. Для поступления к ним не требуются деньги. Вообще. Оплата обучения проходит только (!) после твоего трудоустройства по специальности. До этого момента ты не платишь ни копейки. А не смог устроиться на работу — тоже ничего не платишь! И да, оба этих пункта есть в договоре!

Если хочешь стабильную работу и высокую зарплату, курс по автоматизации — то, что нужно. Записывайся по ссылке: https://clck.ru/33ZJFJ
Разработчик Java (middle)
#полныйдень #офис
Компания: Detkin&Co
Локация: Пермь

Основные задачи:
- Участие на всех этапах жизненного цикла разрабатываемого продукта в роли разработчика - АС – разработка, как нового, так и развитие уже существующего функционала
- Взаимодействие с аналитиками и тестировщиками
- Участие в SCRUM-церемониях команды: планирование, оценка спринтов, ретроспективы, ежедневные стэндапы.

Что для этого не обходимо:
- Глубокие знания Java SE 8, Maven, Spring framework (IoC, Boot, Data, Security), Hibernate
- Работа с фреймворками и библиотеками тестирования: JUnit, Mockito
- Взаимодействие с менеджерами сообщений: Apache Kafka
- Опыт работы с базами данных: PostgreSQL
- Опыт работы с системой контроля версий Git
- Опыт работы c Docker, Kubernetes / OpenShift, JIRA, BitBucket, Confluence
- Высшее техническое образование
- Опыт в качестве java-разработчика > 3 лет, уровень middle / senior
- Опыт работы в команде не менее 5 чел
- Умение быстро разбираться в чужом коде
- Хорошие коммуникативные навыки
- Умение работать на результат
- Умение и способность работать в Команде
- Уверенное владение работой из командной строки
- Опыт работы в проектах на микросервисной архитектуре.
Media is too big
VIEW IN TELEGRAM
#вебинар

Вчера на нашем канале IT Jobs прошел первый вебинар на тему: «Поиск работы на текущем рынке». Делимся с вами записью прошедшей трансляции!

Спикер: Сергей, Программист
#Вопросы_с_собеседования

🎙️ В чем разница между кучей и стековой памятью?

Ответ на картинке.
Последний год на рынке вакансий для джавистов-джунов складывается не лучшая ситуация: требования все жестче, а оплата все меньше.

Что на счет того, чтобы и в код не углубляться, и зарабатывать столько же (а может и больше!) ?

Речь идет об автоматизации тестирования на Java. Основные навыки у тебя уже наверняка есть, раз ты читаешь канал для Джавистов. А тестировщики-автоматизаторы, зачастую, используют в работе только Java Core, большего тебе вряд ли потребуется.

А чтобы получить недостающие знания — записывайся на курс от Kata Academy. Для поступления к ним не требуются деньги. Вообще. Оплата обучения проходит только (!) после твоего трудоустройства по специальности. До этого момента ты не платишь ни копейки. А не смог устроиться на работу — тоже ничего не платишь! И да, оба этих пункта есть в договоре!

Если хочешь стабильную работу и высокую зарплату, курс по автоматизации — то, что нужно. Записывайся по ссылке: https://clck.ru/33ZJ3Y
#вопросы_с_собеседований
Можно ли определить класс внутри JSP страницы?

Определить класс внутри JSP страницы можно, но это считается плохой практикой:

<%!
private static class ExampleOne {
//...
}
%>

<%
private class ExampleTwo {
//...
}
%>
В «Школе 21» завершается набор участников на первый интенсив в Сургуте!

Не упусти возможность бесплатно обучиться востребованной профессии в ИТ.

Неважно, какие у тебя были предыдущие знания, опыт работы, умение программировать и наличие дипломов, если тебе больше 18 лет — подавай заявку сейчас и начни учиться уже этой зимой! В «Школе 21» можно изучать цифровые технологии самых разных направлений и сфер: от алгоритмов и графики до Unix, Web и многого другого.

Успей попасть на интенсив в Сургуте до 20 февраля!
Подай заявку
LeetCode теперь в Telegram!

LeetCode — это сайт, который позволяет быстро готовиться к техническим собеседованиям по программированию. Там публикуются задачи с собеседований в Google и Microsoft с решениями.

Подписывайтесь: @leetcode
👩‍💻 Запуск потоков в Java

В этой статье мы разберем различные способы запуска потоков. Описав задачу, мы выполнить ее в многопоточной среде при помощи класса Thread и сравним с продвинутыми способами работы создания и запуска потоков.

Читать статью
Что выведет следующий код?
Object — это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследует его методы:

public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?

Метод clone() объявлен в классе Object с указанием модификатора native, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов. Одновременно он объявлен и как protected, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone() у не Cloneable объекта вызовет выбрасывание CloneNotSupportedException.

👉@BookJava
15 обязательных шпаргалок для разработчиков🚀

Поскольку технологии веб-программирования быстро развиваются, нам приходится узнавать много нового. Некоторые языки и фреймворки настолько сложны, что вы можете не помнить весь синтаксис или методы. Шпаргалки — это заметки, к которым легко получить доступ.

Когда кто-то был свидетелем чего-то полезного или очень ценного в прошлом, включая меня, мы все делали заметки. Однако вам больше не нужно делать заметки о каждой детали, которую вы видите в книге, семинаре или статье.

Я не хочу отговаривать вас от ведения записей; вы должны это делать, потому что вы знаете, что иногда вы понимаете только те заметки, которые пишете для себя. 😂

Однако, если вам не хочется делать заметки, я понимаю. В этом случае можно не волноваться, так как в Интернете есть шпаргалки по любому предмету. Чтобы помочь вам в учебе, я составил этот список лучших шпаргалок.

https://dev.to/ishratumar/15-must-have-cheatsheets-for-developers-1n92
Как Junior разработчику найти свою первую работу?

Легко! Ребята из codereview помогают джунам с трудоустройством👇

1. Разработают стратегию поиска, расскажут где искать, на какие вакансии откликаться и сколько откликов делать

2. Составят тебе крутое резюме и помогут с оформлением LInkedIn и Github, чтобы ты начал получать приглашения на собеседования

3. Каждую неделю будут проводить с тобой Mock Interview: технические и поведенческие интервью + помогут с самопрезентацией

4. Будут сами помогать тебе с поиском вакансий и организовывать собеседования в компании партнеры

5. В течение полугода будут сопровождать тебя, пока ты не получишь оффер

🔥 Самое крутое - основную часть можно оплатить после трудоустройства с первой зп!

🚀 За год они трудоустроили более 150 разработчиков, со средней зарплатой 120 тыс., которые сейчас работают в Сбере, OZON, VK, Яндекс и других IT компаниях👨🏼‍💻

👉 Оставляй заявку на бесплатную консультацию с нашим HR или Senior разработчиком

✌️Let’s go искать работу вместе!
More Java 17

Автор:
Kishori Sharan
Год издания: 2021

#java #english

Скачать книгу
Java Developer (middle)
#полныйдень #офис
Компания: ROWI
Локация: Москва

Основные задачи:
- Разработка spring приложений на JAVA 11-17;
- Обвязка юнит тестами на JUnit;
- Упаковка приложений в Docker;
- Контроль сборки через ci/cd pipeline gitlab;
- Реализация компонентов: адаптеры получения данных, компоненты сервера приложений, веб сервисы;
- Разработка интерфейсов взаимодействия с системами и сервисами.

Чего бы мы хотели от разработчика:
- Опыт разработки на Java промышленных приложений;
- Опыт работы c Java Core, Spring Framework, Spring Boot, Spring Security;
- Опыт работы с Git, SQL и реляционными базами данных;
- Понимание принципов Объектно Ориентированного Программирования и шаблонов проектирования;
- Знание ORM Hibernate/JPA, понимание подходов code-first, db-first;
- Web services (REST, HTTP).
#вопросы_с_собеседований
Можно ли объявить метод абстрактным и статическим одновременно?

Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.