Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
3 совета по Java, которые должен знать каждый разработчик
1. Правильное изучение азов
Поскольку Java предлагает разработчикам так много возможностей и опций, люди иногда заманчиво изучают слишком много вещей за слишком короткое время. В результате они получают «обрывки» знаний о нескольких опциях, которые предлагает Java.

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

3. Понимание собственного кода и алгоритма
Даже если писать простой код с ‘if-else’, то лучше начинать с реализации кода на листе бумаги. Алгоритм и весь процесс компилятора выглядят настолько значимо, что идея кода осознается лучше.
Хочешь стать крутым программистом, но не хватает навыков и знаний?

🔥 Инновационный центр Ай-Теко проводит набор в школу разработчиков Java и тестировщиков.

Обучение очное, бесплатное, есть стипендия.
По окончании курса ученики, успешно прошедшие тестирование, сразу получают предложение о работе на наших проектах.
Требования: техническое образование (возможно неполное), базовые знания темы и минимальный опыт.
🏙 Место: Москва, Сколково, Инновационный центр Ай-Теко

👉🏻 Узнай подробности и успей зарегистрироваться на курс здесь: https://prglb.ru/1bmdu
Правильный ответ — "untill". Слова untill не существует. 😈 К тому же мы взяли вид "until" для опроса из языка Ruby. В Java существует четыре вида циклов: for, for each, while, do…while.
Многопоточная Java ← → Совместимость языка JavaScript в GraalVM

"Независимо от того, требуется ли обогащение кода Java функциями JavaScript или вы ищете использование библиотеки Java в приложении Node.js, совместимость GraalVM может быть идеальным выбором для вашего приложения", — в статье Даниэле Бонетта.
Новое в Java понятие: запечатанные типы.
В этой статье представлена концепция языка, которая является новой для Java: "Sealed Types". Эта функция в настоящее время активно разрабатывается и, как ожидается, появится в будущей версии Java.
Руководство по соглашениям об именах SQL
Полезное руководство по улучшению соглашений об именах при работе с таблицами SQL и запросами:
"На мой взгляд, одной из сильных сторон Java является тот факт, что большинство соглашений об именах возникли благодаря создателям языка. Если кто-то не придерживается этих соглашений, то код выглядит не идиоматическим".
Что такое MicroProfile и как начать?
MicroProfile — это инициатива, которая направлена на оптимизацию Enterprise Java для архитектуры микросервисов и на обеспечение переносимости приложений в нескольких средах выполнения MicroProfile.

Ссылки, которые можно использовать для погружения в MicroProfile:
Официальный сайт
Самый первый MicroProfile pom.xml
Обзор спецификаций
Последняя спецификация MicroProfile (последний релиз и координаты Maven)
Блог MicroProfile
Гайды
~ 30 связанных руководств MicroProfile, от REST и Angular, через Docker, Kubernetes Clouds и MicroProfile JavaDoc
Обзор проекта со ссылками на источники (github)
Helidon MicroProfile Guides — Специальные руководства по MicroProfile
Блог MicroProfile
MicroProfile гайды
Онлайн-платформа goods открывает несколько вакансий на должности:

Frontend-разработчик
Backend-разработчик
Middle Android Developer
Golang Developer
Senior Golang Developer

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

Не упусти свой шанс! Пиши на почту: [email protected]

Если не нашли себе подходящую вакансию - посетите нашу страницу с рассказом о компании, фотками из офиса и множеством других вакансий - https://prglb.ru/4atmn
Effective Java — 3rd (2018)
Автор: Joshua Bloch

#java #book #en

Язык: English.

Целевая аудитория: опытные программисты Java.

Третье издание охватывает функции языка и библиотеки, добавленные в Java 7, 8 и 9, в том числе функциональные программные конструкции, которые были добавлены в его объектно-ориентированные корни. Добавлено много новых предметов, в том числе глава, посвященная лямбдам и потокам.

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

Преимущества:
содержит массу полезных практических советов;
нетрудно читается.

Недостатки:
не обнаружено.
Гарантированно ли начнется сборка мусора после вызова Runtime.getRuntime().gc()?
Ответ: нет.
В java сборкой мусора управляет виртуальная машина, а не пользователь. Вызов метода gc() - это лишь запрос на сборку мусора. Спецификация не регламентирует время сборки мусора и не гарантирует, начнется ли она вообще.
Java SE 11 Programmer I -1Z0-815 Practice Tests (2019)
Автор: Khattry Udayan

#java #book #en

Язык: English.

Целевая аудитория: любой разработчик Java.

Это 6 практических тестов, каждый из которых содержит 80 вопросов, т.е. 480 вопросов. Вопросы разработаны на основе реальных экзаменационных вопросов с точки зрения структуры и сложности. Практические тесты рандомизированы, чтобы дать ощущение реального экзамена. Каждый практический тест охватывает вопросы по всем целям экзамена. После каждого практического теста предоставляются правильные ответы с пояснениями для справки и понимания. Соответствующие советы и как подойти к вопросу в реальных условиях экзамена также приведены в объяснении. Прохождение вопросов повысит шанс успешного прохождения собеседования и конечно сертификации 1Z0-815.

Преимущества:
хорошие вопросы, отличные и подробные объяснения;
разнообразен и охватывает все темы экзамена 1Z0-815.

Недостатки:
не обнаружено.
Как стать мастером Java Streams?
Декларативный код (например, функциональная композиция с потоками) обеспечивает превосходные метрики кода во многих случаях. Можно кодировать свой путь через эту серию практических лабораторных работ и стать лучшим Java-разработчиком, изучив Java Streams. Вся идея Streams состоит в том, чтобы представить конвейер, по которому будут передаваться данные, а функции конвейера работают с данными. Так могут быть выражены операции в функциональном стиле на потоках элементов.

Серия статей о Java Streams, состоящая из 6 тем (на сегодняшний день опубликовано 5):
Часть 1. Создание потоков.
Часть 2. Промежуточные операции.
Часть 3. Операции с терминалами.
Часть 4. Потоки базы данных.
Часть 5. Превращение объединенных таблиц базы данных в потоки.
Часть 6. Создание приложения базы данных с использованием потоков.

Интерфейс Java Stream был впервые представлен в Java 8 и вместе с лямбдами выступает вехой в развитии Java, поскольку он вносит большой вклад в упрощение декларативного (функционального) стиля программирования. Поток Java можно представить в виде конвейера, по которому будут передаваться данные. Функции конвейера будут работать с данными, например, фильтруя, отображая и сортируя элементы. И наконец, терминал операция может быть выполнена, чтобы собрать элементы в предпочтительной структуре данных, такие как List, Array или Map. Важно отметить, что поток может быть использован только один раз. Потоковый конвейер состоит из трех основных частей: источник потока, промежуточная операция (операции) (от нуля до нескольких) и операция терминала.
Преимущество OpenJ9 для сериализации Java
Сериализация Java предоставляет способ легко преобразовать последовательность байтов в и из java.lang.Object.

Одним шагом, который происходит в процессе десериализации, является загрузка класса, указанного дескриптором класса, в поток байтов. Это включает в себя вызов двух методов, которые способствуют снижению производительности: java.lang.Class.forName, java.io.ObjectInputStream. latestUserDefinedLoader
Это частный метод, который находит последний определенный пользователем загрузчик классов или «LUDCL» для использования Class.forName. Если сначала получить доступ к ВМ, это означает, что безопасно исследовать структуры данных ВМ и пройтись по стеку. Затем он обходит стек, чтобы найти самое последнее — ClassLoader, что является дорогостоящим действием.

В OpenJ9 есть несколько оптимизаций
Кэширование классов: создайте, java.io.ClassCache, чтобы уменьшить количество вызовов java.lang.Class.forName для повторных поисков.
Кэширование «LUDCL»: загрузчик может быть безопасно кэширован в ObjectInputStreamклассе. Если пользовательские readObjectметоды вызываются во время этого процесса, LUDCL необходимо обновить.
Замена JIT ObjectInputStream.readObject: Чтобы исключить другое извлечение LUDCL, JIT заменит ObjectInputStream.readObject()вызов на ObjectInputStream.redirectedReadObject(ObjectInputStream iStream, Class caller). ObjectInputStream.redirectedReadObject предоставит информацию LUDCL через аргумент, предотвращающий дополнительные вызовы LUDCL.

Результаты производительности
С этими оптимизациями производительность приложений увеличивается на 4% .
Это свойство десериализации будет включено по умолчанию, начиная с выпуска OpenJ9 0.18.0 в январе 2020 года для всех версий Java.
Вы хотели в детстве близнеца, на которого можно было отправить ходить в школу, мыть посуду, выносить мусор?

Сегодня Ваши мечты стали реальностью!

Мы предлагаем Вам цифрового двойника, на которого можно повесить абсолютно любую рутинную задачу, связанную с ИТ, а так же предлагаем возможность абсолютно БЕСПЛАТНО сконструировать и начать поддерживать своего собственного бота в Telegram, и для всего этого не потребуется каких-либо знаний в сфере программирования.

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

https://prglb.ru/e5vj

Мы только начали развиваться и продолжаем делать это каждый день, для того чтобы помочь каждому!
Начните с Jetty, Java и OAuth
Jetty — это небольшой масштабируемый веб-сервер на основе Java, поддерживающий HTTP/2, WebSockets и многие другие протоколы. Он поддерживает веб-сайты и платформы, как большие, так и маленькие, такие как Google AppEngine. Поскольку Jetty принадлежит Eclipse, его проект с открытым исходным кодом называется Eclipse Jetty. Он соответствует стандартам открытого исходного кода, а также коммерчески применим. Это главная альтернатива Tomcat при размещении Java-приложений. Как и в случае с Tomcat, вы можете использовать Jetty как встроенный, так и автономный.

По умолчанию Spring Boot создает приложения со встроенными веб-серверами, что означает, что сервер встроен в сам код приложения, поэтому нет необходимости запускать отдельный веб-сервер для публикации веб-приложений на Java. Однако с небольшой настройкой можно опубликовать файл WAR в отдельном контейнере Jetty или Tomcat (стиль сервера приложений старой школы). Spring также использует Tomcat по умолчанию, но это легко изменяемо.

Благодаря этому руководству вы можете создать:
- простой веб-сервис со встроенной Jetty =>
- один и тот же веб-сервис в Spring Boot и Jetty =>
- аутентификацию и авторизацию JWT (JSON Web Token) к веб-сервису, используя безопасность на уровне методов с Okta в качестве поставщика OAuth/OIDC.