Java библиотека
31.6K subscribers
2.32K photos
78 videos
8 files
2.05K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
👩‍💻 Планировщик задач в Spring или что умеет Spring Scheduler?

Часто бывает необходимо, чтобы приложение выполняло какие-то действия регулярно, в определённое время. Например каждое утро выгружать актуальные данные из стороннего сервиса, инвалидировать кэш в конце дня и т.п. Для этих целей в Spring существует встроенный планировщик задач, он же Scheduler. В этом видео автор расскажет о том, как работать с планировщиком задач в приложении на Spring Boot, как его настроить в своём проекте и какие возможности у него есть.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
❗️Внимание! Важное сообщение❗️

👾 На связи YKul

Если ты:
👨🏻‍💻 Хочешь стать java-разработчиком и зарабатывать в сфере IT
🎓 Окончил курсы java-программиста, но пока не уверен в своих умениях
👨🏻‍💻 Хорошо знаком с теорией, но боишься практиковать

➡️ Мы приглашаем тебя стать профессионалом вместе с менторами YKul !

😎 Наставники YKul - это опытные разработчики с сотнями успешно реализованных проектов в резюме. Они проведут тебя в мир специалистов IT по кратчайшему пути и обучат важнейшим навыкам в комфортном для тебя режиме.

Мы предоставляем 7 дней бесплатного обучения всем новичкам.
Не теряй время, попробуй менторинг YKul !
🌐 Узнать подробнее
📲 @ykulmanager1

Реклама: ИП Кулагин Андрей Николаевич, ИНН: 740411652688
👍82😁2🔥1
В чем разница между композицией и агрегацией?

Ассоциация
обозначает связь между объектами. Композиция и агрегация — частные случаи ассоциации «часть-целое».

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

Например, книга состоит из страниц, и мы не можем вырвать страницу из книги и вложить в другую книгу. Страницы четко привязаны к конкретной книге, поэтому это композиция. В тоже время мы можем взять и перенести книгу из одной библиотеки в другую - это уже агрегация.
👍21🔥2🎅1
27 и 28 ноября в Москве пройдёт юбилейный, 20-й, HighLoad++. Мы собрали самую масштабную конференцию за последние 15 лет!

3000 участников
150+ докладов
11 залов
5 мастер-классов
Конференция в конференции — GolangConf 2023
Премия HighLoad++ 2023

👉Подробнее: https://clck.ru/36ETv8

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

Вместе с нашими партнёрами из Яндекса мы собрали целый опенсорс-трек, а на конференции проведём опенсорс трибуну, где вы сможете узнать о решениях с открытым кодом, которые создаются прямо сейчас. Для golang-разработчиков собрали конференцию. И после трёхлетнего перерыва, при поддержке VK, проведём церемонию награждения лауреатов Премии HighLoad++. 

Реклама. ООО "КОНФЕРЕНЦИИ ОЛЕГА БУНИНА". ИНН 7733863233. erid: LjN8KRBvv
👍4🔥3
Что такое статическое и динамическое связывание?

Присоединение вызова метода к телу метода называется связыванием. Если связывание проводится компилятором (компоновщиком) перед запуском программы, то оно называется статическим или ранним связыванием (early binding).

В свою очередь, позднее связывание (late binding) это связывание, проводимое непосредственно во время выполнения программы, в зависимости от типа объекта. Позднее связывание также называют динамическим (dynamic) или связыванием на стадии выполнения (runtime binding). В языках, реализующих позднее связывание, должен существовать механизм определения фактического типа объекта во время работы программы, для вызова подходящего метода. Иначе говоря, компилятор не знает тип объекта, но механизм вызова методов определяет его и вызывает соответствующее тело метода. Механизм позднего связывания зависит от конкретного языка, но нетрудно предположить, что для его реализации в объекты должна включаться какая-то дополнительная информация.

Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).
👍174🔥4
Станьте одним из профессионалов, которые способны применять в работе архитектурные решения высшего пилотажа – пройдите обучение «Highload Architect» от OTUS.

Всего за 5 месяцев вы научитесь:

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

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

Не упустите возможность перейти на новый профессиональный уровень! Обучение начнется уже 31 октября и в честь Хеллоуина вы можете записаться на курс со скидкой 15% по промокоду «Hello15». Пройдите тестирование прямо сейчас, чтобы воспользоваться предложением: https://otus.pw/rGFHp/
👍2😁1
👩‍💻 Принцип инверсии зависимости - SOLID в деталях

Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике автор постарался наглядно продемонстрировать применение этого принципа.

В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
🔥 Время прокачивать свои навыки и RustИ !!!

🫵 Проверь себя - пройди тест по Rust 🫵

Ответишь успешно — пройдёшь на курс «Rust Developer. Professional» от Отус по специальной цене.

Сегодня изучаешь Rust - завтра растет твоя ЗП!

➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cs0S1W

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
За что отвечает JVM:

• Загрузка, проверка и исполнение байт кода;
• Предоставление среды выполнения для выполнения байт-кода;
• Управление памятью и очисткой мусора (Garbage collection);
Виртуальная машина Java (Java Virtual Machine) - это механизм, предоставляющий среду выполнения для управления Java-кодом или приложениями. Виртуальная машина является независимой оболочкой исполнения кода, благодаря которой возможен её запуск на любой ОС, без влияния ОС на выполняемую программу.

JVM работает с 2мя типами данных: примитивные типы (primitive types) и ссылочные типы (reference types).

Примитивы

JVM работает с примитивными значениями (целыми числами и числами с плавающей точкой). По сути, JVM - это 32-битная машина. Типы long и double, которые являются 64-битными, поддерживаются изначально, но занимают две единицы памяти в frame's local или стеке операндов, поскольку каждая единица составляет 32 бита. Типы boolean, byte, short и char имеют расширенный знак (кроме char с нулевым расширением) и работают как 32-разрядные целые числа, так же, как и типы int. Меньшие типы имеют только несколько специфических для типа инструкций для загрузки, хранения и преобразования типов. boolean значение работает как 8-битное byte значения, где 0 представляет значение false, а 1 - значение true.

Типы ссылок и значения

Существует три типа ссылочных типов: типы классов, типы массивов и типы интерфейсов. Их значения являются ссылками на динамически создаваемые экземпляры классов, массивы или экземпляры классов, которые реализуют интерфейсы соответственно.
🔥26👍137
Чем различаются JRE, JVM и JDK?

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

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

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

Коротко: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.
👍28🔥12
Как определить, содержит ли массив определенное значение в Java с помощью потоков?

Чтобы проверить, содержит ли массив значений int, double или long значение, используйте IntStream, DoubleStream или LongStream соответственно.
🔥19👍8❤‍🔥21
Стартануть в IT быстро и эффективно — подготовительный курс по Java-разработке.

Начинаем уже 7 ноября!

Даем: 62 урока с практикой в браузере, 3 онлайн вебинара и 1 сессию лайвкодинга с практикующим разработчиком.
Получаем: крепкие знания базы языка, умение понимать код и первую программу на Java, написанную вместе с наставником.

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

Запишитесь прямо сейчас!

Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid: LjN8Jye7Z
👍641
Какие существуют модификаторы доступа?

private (приватный):
члены класса доступны только внутри класса. Для обозначения используется служебное слово private.

default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется.

protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected.

public (публичный): класс/члены класса доступны всем. Для обозначения используется служебное слово public.

Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private.

Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).
👍265🔥2
♨️ Тест на знание языка Java

— Ответьте на 21 вопрос
и проверьте, насколько хорошо вы знаете язык Java и готовы освоить Spring. Сможете сдать — пройдёте на продвинутый онлайн-курс "Разработчик на Spring" Framework со скидкой!

👉 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА "Разработчик на Spring Framework": https://otus.pw/1ZbP/

Курс доступен в рассрочку.

🎁 Пройдете успешно тест, получите доступ к открытым урокам курса.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Можно ли считать Final переменную константой?

Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.

А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
🔥24👍12
О чем говорит ключевое слово final?

Модификатор final может применяться к переменным, параметрам методов, полям и методам класса или самим классам.

• Класс не может иметь наследников;
• Метод не может быть переопределен в классах наследниках;
• Поле не может изменить свое значение после инициализации;
• Параметры методов не могут изменять своё значение внутри метода;
• Локальные переменные не могут быть изменены после присвоения им значения.
👍30🔥42
Выше приведён список контролируемых исключений (Checked Exceptions) в Java, определенных в java.lang.
👍30🔥6
Что вы знаете о функции main()?

Метод main() — точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка `Error: Main method not found`.
👍284🔥4
Selenide — это фреймворк для написания удобных для чтения и поддержки автоматизированных тестов на Java.

Язык: Java

💥Stars: 1743
📝Forks: 591

https://github.com/selenide/selenide
👍18
Рабочий код != правильный код.
А вы точно пишите код правильно?

Школа программирования YKul приглашает пройти эффективное обучение Java, основанное на менторстве.

🎓Стать нашим студентом можно с любым уровнем подготовки!

💰Не нужно оплачивать весь курс сразу. При необходимости вы сможете сделать перерыв и не потерять деньги 😉

На обучении в школе YKul – все будет как на настоящей работе, только с поддержкой ментора - действующего разработчика.

Вы получите:

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

Хотите проверить подходит ли вам формат обучения

➡️Запишитесь на курс: https://clck.ru/36LGuR

Первые 7 дней – бесплатно❗️

Наша глобальная цель – увеличить число компетентных программистов.

Присоединяйтесь!

Реклама: ИП Кулагин Андрей Николаевич, ИНН: 740411652688
👍7🔥4😁43