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

Самый крутой канал c подборкой книг, статей, но и как без рекламы все в одном месте
По ворпосам размещения @qa_autom
Download Telegram
Что такое Type Erasure?

Компилятор удаляет из байткода класс-файла информацию о типах-дженериках. Этот процесс и называется стирание типов (type erasure). Он появился в Java 5 вместе с самими дженериками. Такое решение позволило сохранить обратную совместимость без перекомпилляции кода Java 4.

Стирание состоит из трех действий:
🔘 Если параметры ограничены (bounded), вместо типа-параметра в местах использования подставляется верхняя граница, иначе Object;
🔘 В местах присвоения значения типа-параметра в переменную обычного типа добавляется каст к этому типу;
🔘 Генерируются bridge-методы.

Информация о типах стирается только из методов и полей, но остается в метаинформации самого класса. Получить эту информацию в рантайме можно с помощью рефлекшна, методом Field#getGenericType.

Тип со стертой информацией о дженериках называется «Non-reifiable».

Стирание типов позволяет не создавать при применении дженериков новые классы, в отличие от, например, шаблонов C++.
Академия Яндекса продолжает набор в Летние школы сразу в трех странах — в РФ, Сербии и Казахстане. Предусмотрено обучение для специалистов с опытом работы по следующим направлениям:

— фронтенд
— бэкенд-разработка (Python, Java, C++, Go)
— мобильная разработка (iOS, Android, Flutter)
— школа менеджеров (управление проектами и продуктами, продуктовая аналитика)

Программа начнется с теории и небольших заданий в онлайне, а затем студенты школ будут практиковаться на реальных проектах в фулстэк-группах с опытными наставниками в офисах Яндекса в Москве, Белграде и Алматы. Всем иногородним студентам, успешно прошедшим отбор и онлайн-этап, Яндекс оплатит билеты и проживание на период оффлайн-обучения.

Для участия необходимо отправить заявку и выполнить тестовое задание, которое размещено на страницах Школ. Дедлайны вступительных испытаний: до 13 апреля (Школа для менеджеров), до 27 апреля (Школы для разработчиков). В общем, go rockstars 🦾
Сказка о типизации

В некотором царстве, в некотором государстве жил был царь. Как-то раз объявил царь всему народу - "Кто решит три моих задачки, тот сам сможет царём стать". И даже контракт метода опубликовал, всё честь по чести.

Читать статью
Советы по Java Pro: редкие приемы, которые помогут улучшить ваше программирование

В этой статье мы рассмотрим некоторые из редких и действенных советов и приемов, которые помогут вам раскрыть весь потенциал Java и создать элегантный и эффективный код.

От функциональных интерфейсов и ссылок на методы до потокового API и необязательных классов — мы рассмотрим некоторые расширенные функции Java, которые часто упускают из виду, но которые могут значительно улучшить ваш опыт программирования.

Итак, давайте погрузимся и раскроем всю мощь Java!

https://blog.devgenius.io/java-pro-tips-rare-tricks-to-supercharge-your-programming-d4290c100d56
Всем привет!

Мы создали канал на YouTube, куда будем заливать все вебинары, подписывайтесь чтобы не потерять 🎈

И ловите #вебинар, который провёл Илья в прошлую пятницу
https://youtu.be/HXahV7pJRy4
#Вопросы_с_собеседования

Каково максимальное число значений hashCode()?

Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?

HashMap реализован с использованием метода цепочек, т.е. каждой ячейке массива (корзине) соответствует свой связный список и при возникновении коллизии осуществляется добавление нового элемента в этот список.

Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.

Среди методов открытой реализации различают:
• линейное пробирование;
• квадратичное пробирование;
• двойное хэширование.

Недостатки структур с методом открытой адресации:
• Количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
• Сложно организовать удаление элемента.
• Первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.

Преимущества хэш-таблицы с открытой адресацией:
• отсутствие затрат на создание и хранение объектов списка;
• простота организации сериализации/десериализации

👉@BookJava
Тест на общие знания для Java-разработчика

Java задачи с собеседований
Прокачай свои знания в архитектуре современных распределенных систем

Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!

Разберешься в event-driven системах
Обретешь уверенность на system design интервью в российских и зарубежных компаниях
Поймешь как устроен подход event sourcing, паттерн CQRS
Твердо поймешь основы Domain-driven design, как его применять
Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию

Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.

Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.

❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Прокачай свои знания в архитектуре современных распределенных систем

Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!

Разберешься в event-driven системах
Обретешь уверенность на system design интервью в российских и зарубежных компаниях
Поймешь как устроен подход event sourcing, паттерн CQRS
Твердо поймешь основы Domain-driven design, как его применять
Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию

Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.

Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.

❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
В чем разница между методами GET и POST?

GET передает данные серверу используя URL, тогда как POST передает данные, используя тело HTTP запроса. Длина URL ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать через GET. POST может отправлять гораздо большие объемы данных. Лимит устанавливается web-server и составляет обычно около 2 Mb.
• Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя, в отличии от URL, который виден почти всегда. Иногда это преимущество превращается в недостаток - вы не сможете послать данные за кого-то другого.
GET метод является неизменяемым, тогда как POST — изменяемый.
Java Developer (middle )
#удаленка #офис #гибрид #гибкийграфик #полныйдень
ЗП: от 150 000 до 200 000 ₽
Компания: Тринити

Обязанности:
• Решение сложных задач (возможно без дизайна и аналитики).
• Написание красивого и чистого кода.
• Code review/cross review всей команды.
• Развитие внутреннего движка проектов (Java 8/ Spring boot).
• Участие в проектировании структуры БД.

Требования:
• Опыт реальной коммерческой разработки не менее 2 лет.
• Отличное знание Java, Spring.
• Умение работать с GitLab, Linux, Docker.
• Умение объяснить коллегам по команде чего не хватает для реализации задачи.

Откликнуться: @katrinmartyn
Jakarta EE for Java Developers

Автор:
Rhuan Rocha
Год издания: 2021

#java #english

Скачать книгу
Инкапсуляции в Java

Инкапсуляция - это фундаментальная концепция объектно-ориентированного программирования (ООП), которая позволяет разработчикам создавать классы, скрывающие свои внутренние детали и защищающие их состояние и поведение от доступа или изменения извне класса.

В этой статье по программированию мы обсудим инкапсуляцию, ее преимущества и то, как она может быть реализована в Java.

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

https://www.developer.com/java/java-encapsulation/

👉@BookJava
Управление Arduino с помощью Java и Spring

Вы
когда-нибудь хотели управлять платой Arduino с помощью Raspberry Pi или компьютера, используя только язык Java, а не язык Arduino?

В этой статье я покажу, как я создал веб-приложение для управления Arduino с помощью Raspberry PI с использованием Spring.

Читать статью
Java разработчик (junior/middle/senior)
#удаленка #частичная_занятость
Канал: Java: fill the gaps

Задачи:
- Читать посты на темы Java, Spring и бэкенд-разработки
- Активно участвовать в опросах
- Поощрять автора позитивными реакциями

Требования:
- Знание основ Java
- Любопытство и стремление профессионально расти
- Толерантность к сердечкам и смайликам при обсуждении технических тем

Подписаться
Карьерные советы, инструкции и тесты для разработчиков, которые планируют стать мидлом в 2023 году.
Начинайте отсюда.
Всё это на канале «Как стать мидлом».