seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

UI Profiling: обзор возможностей тестирования производительности приложений и инструменты оптимизации

Никто не любит тормозящие приложения, верно? Готовы избавить мир от них?

Ждём вас на открытом вебинаре 11 сентября в 20:00 мск, где мы разберем:

- какие приложения пользователи считают «тормозящими»;
- последовательный путь по поиску и оптимизации проблемных мест;
- как выполнять мониторинг производительности на устройствах пользователей.

Спикер Артур Бадретдинов — Team Lead at Squire Technologies, ведущий разработчик в американском стартапе.

Встречаемся в преддверии старта курса «Android Developer. Professional». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие.

Читать полностью…

Senior Java Developer

Java Academy - обучающий канал для разработчиков в Telegram, посвященный Java!

По контенту:
1. Собрали для вас лучшие бесплатные курсы по Java 2024 года.
2. 1930 вопросов с собесов с разбором от Senior разработчика.
3. Пишем пет-проекты на JAVA - лучшая практика.
А здесь цела папка курируемых Java ресурсов для разработчиков

Подписывайтесь, такие знания в 2024-м году на вес золота: @javatg

Читать полностью…

Senior Java Developer

Метод valueOf()

Метод valueOf() возвращает соответствующий числовой объект, содержащий значение переданного аргумента, простыми словами — преобразует в нужный тип данных. Аргумент можно преобразовать в int, double, float и другие типы данных, например, можно преобразовать строку в число.

Метод valueOf() в Java является статическим. Он может принимать два аргумента, где один является строкой и другой является системой счисления.

Читать полностью…

Senior Java Developer

Метод Character.toString()

Метод Character.toString() — возвращает строковый объект (String) и представляет указанное char-значение как одну символьную строку.

Читать полностью…

Senior Java Developer

ИЩЕМ 10 ЧЕЛОВЕК, КОТОРЫХ НАУЧИМ ПРОГРАММИРОВАТЬ НА PYTHON. ПОКА ТЫ НЕ НАЙДЕШЬ РАБОТУ РАЗРАБОТЧИКОМ, МЫ ОПЛАЧИВАЕМ ОБУЧЕНИЕ ЗА ТЕБЯ!

Zerocoder. Мы обучили программированию более 8 000 человек и теперь открыли возможность входа в IT для всех — оплачиваем твое обучение до тех пор, пока ты не найдешь работу.

Курс рассчитан на новичков, поэтому даже если ты никогда не программировал и не работал в IT, у тебя получится освоить перспективную профессию, работать в престижных IT-компаниях, купить квартиру по льготной ипотеке под 6% и получить отсрочку от армии.

Во время прохождения курса ты освоишь самый популярный язык программирования Python и основные фреймворки, сделаешь 18 PET-проектов, создашь портфолио и резюме, получишь свою первую работу.

Кликай на ссылку и узнавай подробности, заявки принимаются только до конца этой недели. По акции доступно всего 10 мест.

erid: LjN8KFSgQ
ООО Зерокодер, ИНН 9715401631

Читать полностью…

Senior Java Developer

Примитивные типы

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

Читать полностью…

Senior Java Developer

Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Регистрируйтесь по ссылке: https://telega.in/n/seniorjavist
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что выведет эта программа?

Ответ:
Первый оператор вывода напечатает «false», второй — «true». Так происходит из-за ошибки округления чисел с плавающей точкой. Только степени двойки можно точно представить в двоичной записи. Числа, которые не являются степенями двойки, округляются так, чтобы поместиться в ограниченное количество битов. В этом примере Java использует использует тип double, поэтому для представления десятичных чисел доступно только 64 бита. Следовательно, 0.1*3 не будет равняться 0.3.

Читать полностью…

Senior Java Developer

➡️ MapStruct

MapStruct — это библиотека для автоматического преобразования данных между Java объектами. Она упрощает создание мапперов и конвертеров, минимизируя необходимость ручного написания кода для преобразования данных между различными слоями приложения.

🗣 MapStruct — это отличный инструмент для разработчиков, которые хотят автоматизировать преобразование данных и улучшить читаемость и поддержку кода. Если вам нужно легко маппировать объекты без лишнего шаблонного кода, MapStruct поможет вам достичь этого.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Objenesis

Objenesis — это Java-библиотека, которая позволяет создавать объекты классов без вызова их конструкторов. Это особенно полезно в тех случаях, когда нужно создать объект для сериализации, прокси или в ситуациях, когда конструктор имеет побочные эффекты, которые следует избегать.

🗣 Objenesis — это отличный инструмент для тех, кто работает с фреймворками, связанными с сериализацией или AOP, и нуждается в возможности создания объектов без вызова их конструкторов. Если вы сталкивались с проблемами при создании экземпляров классов с приватными конструкторами или сложной инициализацией, Objenesis может стать вашим незаменимым помощником.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

Сочи, встречаемся 12 сентября на митапе IT Talk by Sber! ⛱

Must visit событие для разработчиков, тестировщиков, инженеров по сопровождению и владельцев продуктов. Ведь мы собрали экспертов из разных команд и городов, чтобы рассказать об автоматизации работы при помощи AI-ассистента, инженерных процессах и кейсах крупных IT-компаний.

Спикеры и темы 👇

✔️ Владимир Ярославский, Сбер: «Giga IDE: зачем Сберу собственная платформа разработки?»

✔️ Анатолий Шипов, СберТех: «GitVerse – дом для вашего кода»

✔️ Максим Вишневский, Циан: «Функциональные тесты: развёртывание, интеграция в CI и сбор покрытия»

Место сбора: конференц-зал «Панорама» отеля SEA GALAXY, ул. Черноморская, 4.

Обязательно регистрируйтесь и приходите 12 сентября в 18:30 – не пожалеете! 😉

Читать полностью…

Senior Java Developer

Нижний Новгород, встречай Сезон кода — большой ИТ-фестиваль

Фестиваль для опытных специалистов в Data, .NET, Java и Python. Время собраться всем ИТ-сообществом, обменяться опытом и просто повеселиться. В программе доклады, знакомство с коллегами, ИТ-квиз, настольные игры и живая музыка.

Успейте зарегистрироваться на Сезон кода

📍Пройдет в Нижнем Новгороде 14 сентября

Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673

Читать полностью…

Senior Java Developer

➡️ Использование MethodHandles для эффективного вызова методов в Java

MethodHandles предоставляют низкоуровневый доступ к методам, позволяя динамически вызывать их с минимальными накладными расходами.

🗣️ Этот подход может быть полезен для высокопроизводительных приложений, где отражение (reflection) слишком медленное.


MethodHandles.Lookup используется для поиска методов в классе. В примере мы находим метод substring класса String.

MethodHandle позволяет вызывать метод с минимальными накладными расходами по сравнению с традиционным отражением (reflection), что делает его более производительным.

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

Читать полностью…

Senior Java Developer

Использование метода sun.misc.Unsafe для низкоуровневой работы с памятью в Java

Хотя использование sun.misc.Unsafe не рекомендуется и является небезопасным, он предоставляет уникальные возможности для работы с памятью на низком уровне, аналогично тому, как это делается в языках, таких как C или C++.

• sun.misc.Unsafe предоставляет методы для низкоуровневых операций с памятью, которые обычно недоступны в Java.
Доступ к Unsafe возможен только через рефлексию, так как он скрыт от обычных разработчиков.
Этот подход обычно используется в высокопроизводительных библиотеках и внутри JVM, но не рекомендуется для обычных приложений.

Читать полностью…

Senior Java Developer

➡️ Javassist

Javassist (Java Programming Assistant) — это библиотека для динамической обработки классов на уровне байт-кода. Она позволяет разработчикам изменять существующие классы или создавать новые во время выполнения программы, что может быть полезно для создания прокси, выполнения аспектно-ориентированного программирования (AOP) и других задач, связанных с динамическим изменением поведения кода.

🗣️ Javassist — отличный инструмент для тех, кто хочет глубже погрузиться в работу с байт-кодом и динамическим модифицированием классов. Если вам нужны гибкие средства для работы с классами во время выполнения, Javassist может стать вашим надежным помощником.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Javalin — лёгкий и универсальный фреймворк для создания веб-приложений

Javalin — это лёгкий веб-фреймворк для Java и Kotlin, который предоставляет минималистичный и гибкий API для создания веб-приложений и RESTful сервисов. Он вдохновлён фреймворками, такими как Express.js и Koa.js, и предлагает простоту и удобство использования.

🗣 Javalin — отличный выбор, если вам нужно быстро создать веб-приложение или API на Java или Kotlin без лишней сложности. Этот фреймворк подойдёт для создания как небольших, так и масштабируемых приложений.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Jooby — Легковесный веб-фреймворк для Java

Jooby — это модульный веб-фреймворк для Java, который упрощает создание современных веб-приложений. Он поддерживает множество популярных библиотек и инструментов, таких как MVC, WebSockets, и многие другие, предоставляя простой интерфейс для разработки.

🗣 Jooby — это отличный выбор для разработчиков, которые ищут простой и расширяемый веб-фреймворк с хорошей производительностью.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

👩‍💻 Как правильно использовать области действия переменных в Java и как этот навык поможет вам при подготовке к сертификации?

🔌 Ждем вас на открытом вебинаре 16 сентября в 20:00 мск.

Где мы разберем:

✔️ обзор областей действия переменных;
✔️ практические примеры: как области действия переменных влияют на поведение программы и как их правильно использовать;
✔️ подготовку к сертификации: как знание областей действия переменных может помочь вам при подготовке к экзаменам, таким как OCAJP.

Урок будет полезен для тех, кто хочет изучить Java вглубь, узнать тонкости и хитрости языка, а также для Java-разработчиков, стремящихся структурировать свои знания и лучше подготовиться к собеседованиям.

🎙 Спикер Дмитрий Коган — опытный разработчик, председатель совета предприятия в DXC, публицист, спортивный журналист и блогер.

Встречаемся в преддверии старта курса «Углубленное изучение языка Java».
Все участники вебинара получат специальную цену на обучение!

🎁 Подарок личная консультация с руководителем курса Дмитрием Коганом, всем купившим курс после открытого урока.

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAB0Yz

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Чем различаются JRE, JVM и JDK?

TL;DR: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.

☕️ JVM, Java Virtual Machine (Виртуальная машина Java) — основная часть среды времени исполнения Java (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.

☕️ JRE, Java Runtime Environment (Среда времени выполнения Java) — минимально-необходимая реализация виртуальной машины для исполнения Java-приложений. Состоит из JVM и стандартного набора библиотек классов Java.

☕️ JDK, Java Development Kit (Комплект разработки на Java) — JRE и набор инструментов разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты.

Читать полностью…

Senior Java Developer

substring

Метод substring() в Java имеет два варианта и возвращает новую строку, которая является подстрокой данной строки. Подстрока начинается с символа, заданного индексом, и продолжается до конца данной строки или до endIndex-1, если введен второй аргумент.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какими свойствами обладает порождаемое equals() отношение эквивалентности?

☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.

Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что выведет эта программа?

Ответ:
Программа напечатает “num1 == num2”. Если мы сравниваем две ссылки на объекты с помощью ==, значение всегда будет «false». Но в этом примере переменные num1 и num2 автоупаковываются (autoboxing) из-за Integer-кэширования. Вот почему num1 == num2 возвращает значение «true». Не забудьте, что Integer-кэширование актуально только для значений от -128 до 127.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.

В примере возникает ошибка, потому что Collections.emptyList() возвращает пустой список без возможности добавления элементов.

Читать полностью…

Senior Java Developer

👩‍💻 Как эффективно использовать OAuth 2 в Spring-приложениях?

Ждем вас на открытом вебинаре 13 сентября в 20:00 мск.

где мы разберем:

✔️ что такое OAuth 2 и как он работает в Spring-приложениях;
✔️ какие роли и процессы задействованы в фреймворке авторизации;
✔️ его расширения;
✔️ ответы на все возникающие вопросы.

Урок идеально подходит для Java- и Kotlin-разработчиков.

Встречаемся в преддверии старта курса «Разработчик на Spring Framework».
Все участники вебинара получат специальную цену на обучение!

📌 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAman9

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

➡️ JCTools

JCTools (Java Concurrency Tools) — это библиотека, специализирующаяся на высокопроизводительных структурах данных для многопоточного программирования в Java. Она предоставляет коллекции и утилиты, оптимизированные для работы с низкими задержками и высокой пропускной способностью, что делает её отличным выбором для разработчиков, работающих с системами реального времени или высоконагруженными сервисами.

🗣 JCTools — отличный выбор для тех, кто работает с многопоточностью и хочет повысить производительность своих приложений. Если вам нужно добиться минимальных накладных расходов в многопоточном окружении, JCTools может стать важным компонентом вашего проекта.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

⚙️ Deadlocks

Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно.

➡️ Зачастую, такое происходит, если один синхронизируемый объект ожидает ресурсов, а они заблокированы другим синхронизированным объектом.

✔️ Чтобы избежать deadlock, можно использовать один из следующих подходов:

Всегда захватывайте блокировки в одном и том же порядке во всех методах. Например, сначала lock1, затем lock2
Используйте ReentrantLock с таймаутом вместо synchronized, чтобы избежать бесконечного ожидания.

Читать полностью…

Senior Java Developer

➡️ Оптимизация производительности через уменьшение количества объектов с использованием intern() для строк

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

⚙️ Метод intern() позволяет сократить количество дубликатов строк, оптимизируя использование памяти, за счет хранения только одной копии каждой уникальной строки в пуле строк.

Читать полностью…

Senior Java Developer

«Привет, как дела?» — сразу летишь во френдзону

Это будет продолжаться ВЕЧНО, пока не начнешь читать канал ТВОРЧЕСТВО ЧУВСТВ, где узнаешь:

— грамотно общаться с девушками и доводить до секса
— строить прочные отношения, где девушка ласковая и покорная, а ты — лидер
— сформировать базу мужских принципов, которые помогут во всех направлениях в жизни


Главное про качественные отношения тут: t.me/+2PeNv_5pb8djMDdi

Читать полностью…

Senior Java Developer

👩‍💻 Как эффективно использовать Java Collections для хранения, извлечения и обработки данных?

Ждем вас на открытом вебинаре 11 сентября в 20:00 мск, где мы разберем:

✔️ обзор структуры коллекций и их основных методов;
✔️ особенности различных реализаций коллекций;
✔️ примеры применения коллекций для решения практических задач.

Урок идеально подходит для тех, кто начинает изучать Java или хочет углубить свои знания.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAgVyX

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

➡️ Использование Optional.or для безопасного предоставления альтернативных значений

Optional.or — метод, представленный в Java 9, позволяет безопасно предоставить альтернативное значение, если исходное значение отсутствует (null).

🗣️ Это полезно для обработки значений, которые могут отсутствовать, без необходимости использовать условные конструкции.


⚙️ В данном примере, если optionalValue пустое (null), метод or вернет Optional с альтернативным значением "Значение по умолчанию". Это делает код более читаемым и защищает от потенциальных ошибок, связанных с null.

Читать полностью…
Subscribe to a channel