Java
1.63K subscribers
223 photos
5 videos
3 files
901 links
Программирование на Java.

По всем вопросам: @un_ixtime
Download Telegram
Как остановить поток Java без использования Thread.stop()? Если вы читаете это, вы, вероятно, задаетесь вопросом, почему, и самое главное: как мне остановить поток, если я не могу просто полагаться на метод Thread#stop() , который устарел… начиная с Java 1.2?

Быстрый ответ заключается в том, что вместо этого следует использовать прерывания, потому что Thread#stop небезопасен.

Но если вы хотите понять, почему и как… продолжайте читать. https://shly.link/KwPdM
Дочерние классы в массивах

В Java полиморфизм позволяет нам помещать экземпляры разных классов, которые имеют общий родительский класс, вместе в массив или ArrayList. Например, если у нас есть родительский класс Animal с дочерними классами Cat, Dog и Pig, мы можем настроить массив с экземплярами каждого животного, а затем перебрать список животных, чтобы выполнить одно и то же действие над каждым.

Подписывайтесь на канал 👉@coddy_academy

#java
Полиморфизм и динамическое связывание в Java

Узнайте о полиморфизме в Java и двух типах: времени компиляции и времени выполнения. Кроме того, мы рассмотрим демонстрации того, как добиться статического и динамического связывания. https://shly.link/X11hz
Что такое synchronized?

Можно применять как модификатор метода, и как самостоятельный оператор с блоком кода. Выполняет код при захваченном мониторе объекта. В виде оператора объект указывается явно. В виде модификатора нестатического метода используется this, статического – .class текущего класса.

Один из основных инструментов обеспечения потокобезопасности. Одновременно выполняется не более одного блока synchronized на одном и том же объекте. Такая блокировка называется intrinsic lock или monitor lock, подробно рассматривается в Java Concurrency in Practice 2.3.1.

Блок synchronized также необходим для использования методов wait, notify, notifyAll.
Лучшие функции Kotlin, которые я больше всего ценю как Java-разработчик

Я работал бэкенд-разработчиком Java почти 5 лет своей карьеры и до сих пор остаюсь бэкенд-разработчиком, но в прошлом году я перешел на Kotlin в качестве основного языка для всех своих новых проектов. Недавно мне было поручено обновить устаревший проект Java, и я обнаружил, что меня раздражает отсутствие некоторых функций Kotlin, поэтому здесь я пишу свой список лучших функций Kotlin, которые мне нравятся больше всего. https://shly.link/zVXeK
👍1
Giuseppe_Bonocore_Hands_On_Software_Architecture_with_Java_Learn.pdf
11.4 MB
Hands-On Software Architecture with Java - Learn key architectural techniques and strategies to design efficient and elegant Java applications (2022) PDF

This book starts with the fundamentals of architecture and takes you through the basic components of application architecture. You'll cover the different types of software architectural patterns and application integration patterns and learn about their most widespread implementation in Java. You'll then explore cloud-native architectures and best practices for enhancing existing applications to better suit a cloud-enabled world. Later, the book highlights some cross-cutting concerns and the importance of monitoring and tracing for planning the evolution of the software, foreseeing predictable maintenance, and troubleshooting. The book concludes with an analysis of the current status of software architectures in Java programming and offers insights into transforming your architecture to reduce technical debt.
👍1
👋 Мы — команда айтишников. В текущих условиях компания не может работать как работала, и мы решили переехать всей командой.

💬 Создали канал для таких же, как мы, — тех, кто хочет уехать. Собираем всё самое полезное про релокацию. Рассказываем, с чем столкнулись сами, ищем лайфхаки и способы похачить систему (например, нашли несколько способов, как жить за границей на рубли).

👨‍💻 А вообще, мы HR-IT-чувачки (то есть без лишней скромности профи в сфере трудоустройства) и сейчас готовим новый проект: будем помогать айтишникам организовать переезд и устроиться на работу в валюте. И ещё сверху грант будем давать💰

👉 Что для этого нужно? Пока что — присоединиться к каналу RelocationDev и следить за новостями😉 Скоро обо всём расскажем — в мельчайших подробностях.
Настройка VS Code для разработки на Java

В документах VS Code есть руководство по Java , которое охватывает все сверху донизу. Я расскажу, как прошел процесс настройки, с некоторыми пояснениями, удобными для начинающих, и посмотрю, как VS Code работает с приложениями Spring Boot. https://shly.link/dev0RXs
Security Warning: Your Java Attack Surface Just Got Bigger (Brian Vermeer)
Атака на облачные Java-приложения и их защита

Доклад на Английском!

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

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


https://youtu.be/YXJyZ4tIE6Y
Руководство программиста по сниппетам

JEP 413 добавляет функцию JavaDoc для улучшения поддержки примеров кода в документации API для JDK 18 и более поздних версий. Это руководство содержит информацию о том, как использовать эту функцию, используя ряд простых примеров. https://shly.link/8nsd1
5 вещей, которые вы, вероятно, не знали о параллелизме в Java

В то время как потоки полезны, они ужасны для многих разработчиков. Вот пять интересных концепций многопоточности для начинающих и средних разработчиков.
https://shly.link/yRMFo
Не можете продлить нужный сервис, оплатить хостинг или получить деньги из-за рубежа?

Ребята из rk.finaxe.ru тоже столкнулись с данной проблемой и запустили сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана.

Для чего это нужно:
— Оплата любых зарубежных сервисов и покупок
— Получение денег из-за рубежа
— Использование в путешествиях

Весь процесс проходит онлайн, от вас потребуется только загранпаспорт, даже вставать с дивана не понадобится!

Оформить заявку
и ознакомиться с FAQ можно в боте:
https://t.me/Robokazakh_bot
Функциональный интерфейс, подробно описанный в Java 8

В этой статье рассмотрим функциональный интерфейс, представленный в Java 8.
https://shly.link/L3C6n
Spring4Shell: уязвимость ядра Spring RCE

В конце 2021 года Интернет был взорван из-за падения Zero-day, уязвимости удаленного выполнения кода, также известной как Log4Shell , в Apache Log4j2. Уязвимость была обнаружена командой безопасности Alibaba Cloud.
Сегодня исследователи обнаружили еще одну уязвимость, которая может нанести серьезный ущерб множеству приложений. На данный момент для этой уязвимости нет идентификатора CVE, но мы можем назвать ее Spring4Shell . Уязвимость существует в ядре Spring с версией JDK выше или равной 9.0. https://shly.link/AXPJY
👍3
Введение в парсинг веб-страниц с помощью Java

Есть ли веб-сайт, с которого вы хотели бы регулярно получать данные в структурированном виде, но этот сайт еще не предлагает стандартизированный API, такой как интерфейс JSON REST? Не волнуйтесь, на помощь приходит парсинг
https://shly.link/ohacS
Для чего используется оператор assert?

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

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

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

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

В Java проверка утверждений реализована с помощью оператора assert, который имеет форму:

[Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];

Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).
how-build-android-apps-kotlin.pdf
21.1 MB
How to Build Android Apps with Kotlin

Автор: Alex Forrester, Eran Boudjnah, Alexandru Dumbravan, Jomar Tigcal
Год издания: 2021

What you will learn
Create maintainable and scalable apps using Kotlin
Understand the Android development lifecycle
Simplify app development with Google architecture components
Use standard libraries for dependency injection and data parsing
Apply the repository pattern to retrieve data from outside sources
Publish your app on the Google Play store
Оптимизация производительности функции AWS Lambda для Java

В этом посте показано, как оптимизировать производительность функций AWS Lambda , написанных на Java, без изменения кода функции. https://shly.link/1Fny6