Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Автоупаковка - это механизм неявной инициализации объектов классов-оберток (Byte, Short, Integer, Long, Float, Double, Character, Boolean), значениями соответствующих им исходных примитивных типов (byte, short, int...), без явного использования конструктора класса.

☕️ Автоупаковка происходит при прямом присваивании примитива классу-обертке (с помощью оператора =), либо при передаче примитива в параметры метода (типа класса-обертки).

☕️ Автоупаковке в классы-обертки могут быть подвергнуты как переменные примитивных типов, так и константы времени компиляции (литералы и final-примитивы). При этом литералы должны быть синтаксически корректными для инициализации переменной исходного примитивного типа.

☕️ Автоупаковка переменных примитивных типов требует точного соответствия типа исходного примитива типу класса-обертки. Например, попытка упаковать переменную типа byte в Short без предварительного явного приведения byte в short вызовет ошибку компиляции.

☕️ Автоупаковка констант примитивных типов допускает более широкие границы соответствия. В этом случае компилятор способен предварительно осуществлять неявное расширение/сужение типа примитивов:

☕️ неявное расширение/сужение исходного типа примитива до типа примитива, соответствующего классу-обертке (для преобразования int в Byte, сначала компилятор самостоятельно неявно сужает int к byte);
☕️ автоупаковку примитива в соответствующий класс-обертку. Однако в этом случае существуют два дополнительных ограничения: a) присвоение примитива обертке может производится только оператором = (нельзя передать такой примитив в параметры метода без явного приведения типов) b) тип левого операнда не должен быть старше чем Character, тип правого не должен старше, чем int: допустимо расширение/сужение byte в/из short, byte в/из char, short в/из char и только сужение byte из int, short из int, char из int. Все остальные варианты требуют явного приведения типов).

Дополнительной особенностью целочисленных классов-оберток, созданных автоупаковкой констант в диапазоне -128 ... +127 является то, что они кэшируются JVM. Поэтому такие обертки с одинаковыми значениями будут являться ссылками на один объект.
👍5
Продолжаем следить за вакансиями на российском IT-рынке. Среди интересного: IBS набирает в команду тестировщиков и разработчиков.

Какие тестировщики нужны: инженеры по ручному, автоматизированному и нагрузочному тестированию. Требуется релевантный опыт от года, готовность работать фултайм, развиваться и строить карьеру.

Какие разработчики нужны: миддлы и сеньоры. Никакой работы «в стол» — все проекты уходят в промышленную эксплуатацию. Системы IBS работают в технологичных банках, ритейле и других крупных российских компаниях.

Что дают? Всё, что любим: быстрый рост, прозрачная система грейдов, классное руководство, высокий уровень дохода, соцпакет с ДМС, стоматологией и прочими бенефитами.

Подробнее о вакансиях
Строковый метод equals()

Строковый метод equals() проверяет равенство двух строк в Java. equals() сравнивает содержимое каждой строки.
Если все символы совпадают, метод возвращает значение true. Если же какой-либо символ не совпадает – возвращает false.
Если же требуется сравнение без учета верхнего/нижнего регистров, можно воспользоваться .equalsIgnoreCase() .
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...].

class PowerOfTwo {
private AtomicReference<BigInteger> current = new AtomicReference<>(null);

BigInteger next() {
BigInteger recent, next;
do {
recent = current.get();
next = (recent == null) ? BigInteger.valueOf(1) : recent.shiftLeft(1);
} while (!current.compareAndSet(recent, next));
return next;
}
}
Jasypt: шифрование конфигурационных файлов spring-boot

В современном мире редко можно встретить приложение, которое не использует в своей работе внешние источники данных, будь то база данных или какой-нибудь сервис. Как правило, подобные внешние источники всегда защищены и требуют, как минимум, базовой аутентификации в виде логина и пароля. Принято логин и пароль хранить в properties файле приложения, но, если вы выложите подобный файл в общее хранилище (на гитхаб, к примеру), его все увидят...

Подробнее
👍4
Мы запускаем углубленный курс по Java для специалистов с опытом в промышленной разработке. Если вы работали с реляционными базами данных, Java фреймворками или хотите их освоить — добро пожаловать! 💫

Курс бесплатный и длится три месяца. Все занятия онлайн, так что можно проходить из любой точки России.

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

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

Подробная программа и форма для заявок здесь: https://l.tinkoff.ru/fintech_jvm_2022
👍1👏1
Learn to Program with Kotlin
Автор: Tim Lavers (2021)

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

Чему вы научитесь

Изучать основы Kotlin с помощью IDE IntelliJ Java
Внедрять ООП с помощью Kotlin, а также модульное тестирование и рефакторинг кода с помощью серии проектов, связанных с текстом
Использовать функциональное программирование на Kotlin, создав библиотеку для обработки изображений.
Напишите программу для поиска и чтения знаков скорости на фотографиях.

Скачать книгу
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте бэкенд-разработку на Java за 10 месяцев!
Профессия для тех, кто настроен серьезно: https://bit.ly/32zzMyP

Научим:
✔️Писать код на Java, использовать фреймворки Javalin, Spring
✔️Применять принципы ООП, работать с базами данным, SQL
✔️Настраивать окружение: IDEA, Gradle/Maven, JDK
✔️Пользоваться командной строкой и Git

Поможем:
✔️Наработать практику — вы сделаете 5 проектов на GitHub
✔️Грамотно оформить резюме
✔️Подготовиться к собеседованиям

А еще порекомендуем в хорошие компании и познакомим с сообществом из 26 тысяч айтишников. Присоединяйтесь!
👍1
Java Programming
Автор: Joyce Farrell (2018)

Даже если вы начинающий программист, книга поможет вам быстро приступить к разработке полезных программ, при этом овладев основными принципами структурного и объектно-ориентированного программирования. Книга содержит уникальные, понятные для читателя объяснения и содержательные упражнения по программированию. Дополнительные цифровые учебные ресурсы в MindTap предоставляют интерактивные инструменты обучения, а также IDE (среда разработки) для отработки и развития ваших навыков.

Скачать книгу
Java-Cheat-Sheet.pdf
2.5 MB
Шпаргалка по Java (Cheat Sheet)
Так как строки в Java являются неизменными, то ваш пароль в виде обычного текста будет доступен в памяти, пока сборщик мусора не очистит её. Любое изменение приведет к созданию новой строки.

А вот в случае с char[], вы можете заменить любой его элемент нулем или пустым символом.