Библиотека Java разработчика
Kanalga Telegram’da o‘tish
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Ko'proq ko'rsatish9 988
Obunachilar
-224 soatlar
-197 kun
-6030 kun
Postlar arxiv
Стартануть в IT быстро и эффективно — подготовительный курс по Java-разработке.
⏰ Начало курса 24 января!
Даем: 62 урока с практикой в браузере, 3 онлайн вебинара и 1 сессию лайвкодинга с практикующим разработчиком.
Получаем: крепкие знания базы языка, умение понимать код и первую программу на Java, написанную вместе с наставником.
Запишитесь прямо сейчас по ссылке выше!
Чем отличаются JRE, JVM И JDK?
JRE кратко - для работы. Java Runtime Environment (сокр. JRE) - минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. Состоит из виртуальной машины - Java Virtual Machine и библиотеки Java-классов.
JDK кратко - для программирования. Java Development Kit (сокращенно JDK) - бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE).
Java Virtual Machine (сокращенно Java VM, JVM) - виртуальная машина Java - основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java интерпретирует Байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования.
👉@BookJava
В чём различия между volatile и Atomic переменными?
volatile принуждает использовать единственный экземпляр переменной, но не гарантирует атомарность. Например, операция count++ не станет атомарной просто потому, что count объявлена volatile. C другой стороны class AtomicInteger предоставляет атомарный метод для выполнения таких комплексных операций атомарно, например getAndIncrement() – атомарная замена оператора инкремента, его можно использовать, чтобы атомарно увеличить текущее значение на один. Похожим образом сконструированы атомарные версии и для других типов данных.
👉@BookJavaJava 20: огромные разреженные сегменты памяти
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью и узнайте, как использовать сопоставленные (mapped) сегменты памяти, которые могут быть или не быть «разреженными», и как выделить 64 терабайта разреженных данных на ноутбуке.
Rus https://habr.com/ru/post/710664/
Eng https://minborgsjavapot.blogspot.com/2023/01/java-20-colossal-sparse-memory-segments.html
👉@BookJava
Что такое livelock?
livelock – тип взаимной блокировки, при котором несколько потоков выполняют бесполезную работу, попадая в зацикленность при попытке получения каких-либо ресурсов. При этом их состояния постоянно изменяются в зависимости друг от друга. Фактической ошибки не возникает, но КПД системы падает до 0. Часто возникает в результате попыток предотвращения deadlock.
Реальный пример livelock, – когда два человека встречаются в узком коридоре и каждый, пытаясь быть вежливым, отходит в сторону, и так они бесконечно двигаются из стороны в сторону, абсолютно не продвигаясь в нужном им направлении.
👉@BookJavaThe elusive and beautiful Java Method Reference
https://medium.com/javarevisited/the-elusive-and-beautiful-java-method-reference-97e566d2088b
👉@BookJava
Управление зависимостями в IntelliJ IDEA
В этом руководстве, в продолжение темы просмотра зависимостей, мы рассмотрим управление зависимостями в IntelliJ IDEA.
Мы рассмотрим различные способы добавления зависимостей в ваш проект, а также способы добавления, обновления и удаления зависимостей с помощью Package Search.
Rus https://habr.com/ru/post/710802/
Eng https://foojay.io/today/managing-dependencies-in-intellij-idea/
👉@BookJava
Что такое перегрузка методов?
Перегрузка методов — это свойство полиморфизма, в котором при помощи изменения сигнатуры метода можно создать различные реализации методов для одной и той же операции:
- одинаковое имя метода;
- различные аргументы;
- различный порядок аргументов;
Например, один и тот же
add() из List может быть перегружен следующим образом и будет выполнять добавление разным способом, в зависимости от аргументов метода:
- add(Object o) — просто добавляет объект;
- add(int index, Object o) — добавляет объект в определенный индекс;
- add(Collection<Object> c) — добавляет список объектов;
- add(int index, Collection<Object> c) — добавляет список объектов, начиная с определенного индекса.
👉@BookJavaПознакомьтесь с востребованным направлением программирования. Освойте базовые инструменты и возможности Java на практике. Узнайте 5 правил синтаксиса языка Java, которые нужно соблюдать каждому начинающему разработчику. Участвуйте в онлайн-интенсиве Skillbox с 19 по 21 января в 19:00 по московскому времени.
Успейте зарегистрироваться: 👉 https://clc.to/f68wXw
Сразу отправим вам на почту чек-лист знаний и навыков, которые необходимы backend-разработчику для трудоустройства.
Кому подойдёт интенсив:
📌 Новичкам в программировании.
Получите базовые навыки программирования на Java, научитесь писать простой код и узнаете основные функции. Попрактикуетесь в разработке, создадите свой первый проект и заложите основу для новой карьеры.
📌Начинающим разработчикам.
Углубите знания о Java и станете увереннее в своих проектах. Разработаете приложение за 3 дня, выявите ошибки, получите практические советы от опытного программиста.
Интенсив ведёт Даниил Пилипенко — основатель и директор центра подбора IT-специалистов SymbioWay.
С 2004 года разрабатывает и руководит разработкой на Java, PHP и во фронтенде. 50 раз выступил на семинарах и конференциях.
🎁 Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» издательства МИФ.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на скидку 10 000 рублей на любой курс Skillbox.
Сделайте первый шаг к перспективной IT-профессии!
Ищем учеников на бесплатное обучение по созданию искусственного интеллекта с нуля. Опыт программирования не важен!🤖
Всего за 3 вечера под руководством Дмитрия Романова - основателя Университета Искусственного Интеллекта, лидера обучения AI-разработке в РФ, вы с легкостью напишете свой первый искусственный интеллект👨💻
Какие нейронные сети вы создадите?
▫️Классификация людей на входящих и выходящих из автобуса
▫️Обнаружение возгораний
▫️Оценка стоимости квартир
▫️Оценка резюме соискателей
▫️Прогнозирование стоимости полиметаллов
▫️Сегментация изображений самолетов
▫️Распознавание команд умного дома⠀
Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.⠀
Приходите на бесплатное обучение и напишите искусственный интеллект за 3 вечера💪
Регистрация по ссылке
Подборка книг 2000 - 2003 годов по Java на Eng
https://box.cs.istu.ru/public/docs/other/_Unsorted/new/Java/
👉@BookJava
Опишите поведение аннотации @Autowired
1. Контейнер определяет тип объекта для внедрения
2. Контейнер ищет бины в контексте(он же контейнер), которые соответствуют нужному типу
3. Если есть несколько кандидатов, и один из них помечен как @Primary, то внедряется он
4. Если используется аннотации
@Autowire + Qualifier, то контейнер будет использовать информацию из @Qualifier, чтобы понять, какой компонент внедрять
5. В противном случае контейнер попытается внедрить компонент, основываясь на его имени или ID
6. Если ни один из способов не сработал, то будет выброшено исключение
Контейнер обрабатывает DI с помощью AutowiredAnnotationBeanPostProcessor. В связи с этим, аннотация не может быть использована ни в одном BeanFactoryPP или BeanPP.
Если внедряемый объект массив, коллекция, или map с дженериком, то Spring внедрит все бины подходящие по типу в этот массив(или другую структуру данных). В случае с map ключом будет имя бина.
//параметр указывает, требуется ли DI
@Authowired(required = true/false)
👉@BookJavaПишем игру на Java - Клон Танков. Часть 2
Структура игры - [6]
Ввод с клавиатуры - [7]
Загружаем ресурсы из файла - [8]
Создаем Спрайт - [9]
Класс Player и Entity - [10]
Создаем Уровень - [11]
👉@BookJava
Полиморфизм в java
Словарное определение полиморфизма относится к принципу биологии, в соответствии с которым организм или вид может иметь множество различных форм или стадий. Этот принцип также может быть применен к объектно-ориентированному программированию и таким языкам, как язык Java. Подклассы класса могут определять свое собственное уникальное поведение и в то же время разделять некоторые функциональные возможности родительского класса.
https://bookflow.ru/polimorfizm-v-java/
👉@BookJava
