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

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

Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки.

Подробнее с методом clone() можно ознакомиться здесь.
Не верьте ChatGPT и используйте KotUniL

В последние недели медиа и социальные сети захлеснул поток сообщений о диалогах с ChatGPT. Только на Хабре поиск по этому термину показывает сегодня полтора десятка статей.

Попробовал пообщаться с ChatGPT и я. Результат общения вынесен в заголовок.

Хотите узнать, почему ChatGPT верить нельзя и почему лучше использовать KotUniL - читайте дальше.

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

Итак, как было дело.

Сначала я пообщался с ChatGPT (далее для простоты я буду иногда обозначать его ИИ) на английском, а потом на русском.

https://habr.com/ru/post/707548/

👉@BookJava
Хотите стабильно зарабатывать во фрилансе или найти новую профессию в 2023г.? Чтоб работа зажигала, а не высасывала время. И вас постоянно спрашивали: как вы к этому пришли?

📌 БЕСПЛАТНО освойте профессию дизайнера с нуля. Вместе сделаем вам портфолио из 4+ работ с личной поддержкой от наставника и расскажем, как заработать на дизайне.

Что вы получите?
— Доступ к личному кабинету с уроками
Личный разбор каждого ДЗ от куратора
— Портфолио из 4+ работ и сертификат
— Мастер-класс "Как заработать на дизайне в 2023 г."
— 12000+ единомышленников в чате

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

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

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

👉 Первый урок уже сегодня, кликайте сюда и забирайте все бонусы
#Вопросы_с_собеседования

👁 Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

• Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
• Для создания объекта статического вложенного класса объект внешнего класса не требуется.
• Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
• Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
• В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
Руководство по обработке исключений в Java Stream

Друзья, вашему вниманию предлагается небольшое руководство по обработке исключений в Java Stream, из которого вы узнаете: 😃
✔️ Как обрабатывать проверяемые исключения, выбрасываемые методами из промежуточных операций в стримах
✔️ Как использовать блок try-catch в лямбда-выражениях
✔️ Как безопасно извлекать метод.

Также, даны рекомендации использовать Optional вместо выбрасывания значения null из извлекаемой функции.

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

Читать статью
Java разработчик (middle/senior)
#полныйдень #удаленка
Компания: X5 Tech

Мы ждем тебя, если ты имеешь:
- Коммерческий опыт разработки на Java от 3 лет;
- Опыт работы с Java 8+ и Spring Framework;
- Опыт работы с БД, знания SQL;
- Знание принципов ООП и основных шаблонов проектирования.
#статья

Java 19 - новые фичи и изменения

Ещё больше интересных статей и полезной информации вы можете читать на нашем
_Яндекс Дзен_ канале!
Что такое тернарный оператор выбора?

Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.

Выражение записывается в следующей форме:

условие ? выражение1 : выражение2

Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.
Что происходит внутри HashMap.put()?

Рассмотрим в деталях, как новые ключ и значение складываются в HashMap.

1. Вычисляется хэш ключа. Если ключ null, хэш считается равным 0. Чтобы достичь лучшего распределения, результат вызова hashCode() «перемешивается»: его старшие биты XOR-ятся на младшие.

2. Значения внутри хэш-таблицы хранятся в специальных структурах данных – нодах, в массиве. Из хэша высчитывается номер бакета – индекс для значения в этом массиве. Полученный хэш обрезается по текущей длине массива. Длина – всегда степень двойки, так что для скорости используется битовая операция &.

3. В бакете ищется нода. В ячейке массива лежит не просто одна нода, а связка всех нод, которые туда попали. Исполнение проходит по этой связке (цепочке или дереву), и ищет ноду с таким же ключом. Ключ сравнивается с имеющимися сначала на ==, затем на equals.

4. Если нода найдена – её значение просто заменяется новым. Работа метода на этом завершается.

5. Если ноды с таким же ключом в бакете пока нет – добавляемая пара ключ-значение запаковывается в новый объект типа Node, и прикрепляется к структуре существующих нод бакета. Ноды составляют структуру за счет того, что в ноде хранится ссылка на следующий элемент (для дерева – следующие элементы). Кроме самой пары и ссылок, чтобы потом не считать заново, записывается и хэш ключа.
6. В случае, когда структурой была цепочка а не дерево, и длина цепочки превысила 7 элементов – происходит процедура treeification – превращение списка в самобалансирующееся дерево. В случае коллизии это ускоряет доступ к элементам на чтение с O(n) до O(log(n)). У comparable-ключей для балансировки используется их естественный порядок. Другие ключи балансируются по порядку имен их классов и значениям identityHashCode-ов. Для маленьких хэш-таблиц (< 64 бакетов) «одеревенение» заменяется увеличением (см. п.8).

7. Если новая нода попала в пустую ячейку, заняла новый бакет – увеличивается счетчик структурных модификаций. Изменение этого счетчика сообщит всем итераторам контейнера, что при следующем обращении они должны выбросить ConcurrentModificationException.

8. Когда количество занятых бакетов массива превысило пороговое (capacity * load factor), внутренний массив увеличивается вдвое, а для всего содержимого выполняется рехэш – все имеющиеся ноды перераспределяются по бакетам по тем же правилам, но уже с учетом нового размера.
☕️ 5 удивительно удобных библиотек Java

Разработчики Java имеют много замечательных инструментов, облегчающих кодирование. Они могут сопоставлять объекты, сопоставлять базы данных, создавать макеты API, работать с коллекциями и легко устанавливать соединения. Ознакомьтесь со списком из 5 замечательных библиотек Java, которые вы можете использовать уже сегодня в своем проекте.




https://tomaszs2.medium.com/5-amazingly-comfortable-java-libraries-887802e240de
Битва титанов: Java vs Kotlin

Один из старейших языков программирования Java и один из наиболее молодых Kotlin — активно используются для мобильной разработки. Но они также подходят для создания десктопных и серверных решений. Главный разработчик Группы «Иннотех» Владимир Полховцев сравнивает двух гигантов Android-разработки.

Смотреть статью
This media is not supported in your browser
VIEW IN TELEGRAM
Ищем учеников на бесплатное обучение по созданию искусственного интеллекта с нуля. Опыт программирования не важен!🤖

Всего за 3 вечера под руководством Дмитрия Романова - основателя Университета Искусственного Интеллекта, лидера обучения AI-разработке в РФ, вы с легкостью напишете свой первый искусственный интеллект👨‍💻

Какие нейронные сети вы создадите?

▫️Классификация людей на входящих и выходящих из автобуса
▫️Обнаружение возгораний
▫️Оценка стоимости квартир
▫️Оценка резюме соискателей
▫️Прогнозирование стоимости полиметаллов
▫️Сегментация изображений самолетов
▫️Распознавание команд умного дома⠀

Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.⠀

Приходите на бесплатное обучение и напишите искусственный интеллект за 3 вечера💪

Регистрация по ссылке
Learning Spring Boot 3.0

Автор:
Greg L. Turnquist
Год издания: 2022

#java #spring #english

Скачать книгу
Java-разработчик (middle)
#полныйдень #удаленка
Компания: Ростелеком-Солар

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

Требования:
- Образование в области компьютерных наук
- Хорошее знание классических алгоритмов и структур данных.
- Знание паттернов проектирования ПО (и умение их применять).
- Знание Java (в т.ч. v8, v11, v17): core, collections, streams, concurrency (плюсом будет знание reactor.io и webflux)
- Знание Spring (Core, Security, Web, Data, Cloud)
- Опыт работы в разработке ПО от 3 лет.
- Опыт проведения peer-review, рефакторинга legacy-кода.
- Опыт работы с Docker (плюсом будет знание Kubernetes)
Как Junior разработчику найти свою первую работу?

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

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

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

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

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

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

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

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

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

✌️Let’s go искать работу вместе!
This media is not supported in your browser
VIEW IN TELEGRAM
Ищем учеников на бесплатное обучение по созданию искусственного интеллекта с нуля. Опыт программирования не важен!🤖

Всего за 3 вечера под руководством Дмитрия Романова - основателя Университета Искусственного Интеллекта, лидера обучения AI-разработке в РФ, вы с легкостью напишете свой первый искусственный интеллект👨‍💻

Какие нейронные сети вы создадите?

▫️Классификация людей на входящих и выходящих из автобуса
▫️Обнаружение возгораний
▫️Оценка стоимости квартир
▫️Оценка резюме соискателей
▫️Прогнозирование стоимости полиметаллов
▫️Сегментация изображений самолетов
▫️Распознавание команд умного дома⠀

Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.⠀

Приходите на бесплатное обучение и напишите искусственный интеллект за 3 вечера💪

Регистрация по ссылке
Руководство по обработке исключений в Java Stream

Друзья, вашему вниманию предлагается небольшое руководство по обработке исключений в Java Stream, из которого вы узнаете: 😃
✔️ Как обрабатывать проверяемые исключения, выбрасываемые методами из промежуточных операций в стримах
✔️ Как использовать блок try-catch в лямбда-выражениях
✔️ Как безопасно извлекать метод.

Также, даны рекомендации использовать Optional вместо выбрасывания значения null из извлекаемой функции.

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

https://howtodoinjava.com/java/stream/handle-exceptions-in-stream/
Как Junior разработчику найти свою первую работу?

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

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

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

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

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

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

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

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

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

✌️Let’s go искать работу вместе!
#вопросы_с_собеседований
Как и когда происходит увеличение количества корзин в HashMap?

Помимо capacity у HashMap есть еще поле loadFactor, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor. По умолчанию loadFactor = 0.75. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.