Изучаем Java. По вопросам сотрудничества: @seniorvladislav
И даже при таком сценарии — вы сможете разминуться!
Даже тимлид не найдёт на очередной дейлик.
Потому что Доброград — это больше 3 тыс. гектаров инфраструктуры среди леса и рек. Даже свой вейк-парк есть. Уникальный город в 2,5 часах езды от Москвы.
Высокий уровень безопасности с биометрическим контролем и поле для гольфа. А ещё сцена на воде, спа-комплекс с бассейном, вейк-парк, гольф-клуб и десяток других развлекательных активностей.
Переезжай в Доброград
Реклама. ООО "СЗ "Доброград". ИНН 3317027134
#вопросы_с_собеседований
В чем разница между Hashset и Treeset?
Классы HashSet и TreeSet реализуют интерфейс Set и представляют наборы отдельных элементов. Кроме того, TreeSet реализует интерфейс NavigableSet. Этот интерфейс определяет методы, использующие порядок элементов.
HashSet внутренне основан на HashMap, а TreeSet поддерживается экземпляром TreeMap, который определяет их свойства: HashSet не хранит элементы в каком-либо определенном порядке. Итерация по элементам в HashSet проиcходит в перемешанном порядке. TreeSet, с другой стороны, создает элементы по порядку в соответствии с некоторым предопределенным Компаратором.
🎉Тест-драйв профессии Java QA Engineer. Basic
Хотите узнать, как стать востребованным автоматизатором тестирования на Java? Присоединяйтесь к открытому уроку на тему "Перспективы и преимущества профессии автоматизатора тестирования на Java" и откройте для себя мир автоматизации тестирования!
На вебинаре мы обсудим:
- Профессию автоматизатора тестирования на Java и её перспективы
- Необходимые навыки для работы и требования к кандидатам на собеседованиях
- Современные технологии автоматизации тестирования и преимущества использования автотестов
Этот вебинар будет полезен:
- Начинающим специалистам без опыта в IT
- Начинающим специалистам в тестировании
- Начинающим разработчикам на Java или других языках
Не упустите шанс улучшить свои навыки и расширить карьерные возможности!
➡️➡️➡️Запишитесь на вебинар прямо сейчас.
https://vk.cc/cBK54oРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Как вывести на экран 10 случайных чисел в порядке возрастания?
Ответ на картинке.
Java для сисадминов
Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.
Смотреть статью
🌍Откройте мир Clojure: сфера разработки, основные фишки и преимущества языка.
Изучите, чем Clojure выделяется среди других бэкендовых языков и какие преимущества он предлагает. Узнайте, как Clojure может улучшить вашу разработку и открыть новые карьерные возможности.
Мероприятие для опытных разработчиков.
📅Открытый вебинар 3 октября в 20:00 мск пройдет в рамках большого курса. После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!
Регистрация: https://vk.cc/cBwbDC
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ HikariCP — высокопроизводительный пул соединений для баз данных
HikariCP — это лёгкий и быстрый пул соединений для баз данных, который считается одним из самых производительных в экосистеме Java.
Он минимизирует задержки при подключении к базам данных, обеспечивая быстрый доступ к ресурсам и высокую масштабируемость. Благодаря простоте настройки и высокой производительности, HikariCP является отличным выбором для проектов, где требуется эффективное управление соединениями с базой данных.
🗣 HikariCP — отличный выбор для высоконагруженных приложений, где важна производительность и стабильность соединений с базой данных.
🔗 Ссылочка на доку
➡️ Использование метода String::indent
для удобной работы с отступами строк
Начиная с Java 12, был добавлен метод String.indent()
, который позволяет легко добавлять или удалять отступы у каждой строки в многострочном тексте.•
Это полезно для форматирования строк, когда нужно управлять отступами, особенно при создании сложных текстовых структур.•
Метод String.indent()
делает управление отступами более удобным и чистым, особенно при работе с форматированными текстами в Java.
Создаем графическое окно и меняем цвет фона при клике мышью с помощью Java
Программа создает окно размером 400x400 пикселей, где при клике мышью меняется цвет фона на случайный. Здесь используются следующие компоненты:
1) JFrame - основное окно программы.
2) JPanel - панель внутри окна, цвет фона которой меняется.
3) MouseAdapter - класс для обработки событий мыши. В данном случае мы переопределяем метод mouseClicked, чтобы изменить цвет фона панели при клике мыши.
➡️ Zt-Exec — простая и удобная работа с процессами в Java
Zt-Exec — это легковесная библиотека для выполнения и управления внешними процессами в Java-приложениях. Она предоставляет удобный API для запуска командных процессов, чтения их вывода и обработки ошибок, предлагая более гибкие возможности по сравнению со стандартным ProcessBuilder.
🗣 Zt-Exec — отличный выбор, если нужно просто и эффективно запускать внешние команды или управлять процессами прямо из Java-кода.
🔗 Ссылочка на доку
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift
Обучайся ИТ и строй карьеру уже во время учебы
Это возможно в «Школе 21» — школе цифровых технологий, проекте Сбера
Вот лишь несколько особенностей:
— обучение в школе бесплатное, от тебя нужна только мотивация
— 100% выпускников работают в крутых ИТ-компаниях
— стажировка входит в образовательный трек
— во время обучения соберешь портфолио и получишь реальный опыт
Кампусы школы открыты уже в 13 городах России и работают 24/7.
Узнавай больше и подавай заявку на сайте «Школы 21» уже сейчас!
Реклама. Заказчик АНО "Школа 21" ИНН 7736316133
#вопросы_с_собеседований
Из за чего может возникать NoClassDefFoundError, NoSuchMethodError?
🔸 NoClassDefFoundError может возникнуть, если нужной библиотеки с этим классом нет в classpath
🔸 NoSuchMethodError может возникнуть из-за несовместимости ваших библиотек, если зависимая библиотека A вызывает метод из старой версии библиотеки B, но в classpath есть более новая версия библиотеки B, c другой сигнатурой этого метода
Метод Collections.shuffle
Метод shuffle() случайным образом перемешивает все элементы переданного списка.
Что такое ReadWriteLock?ReadWriteLock
— это интерфейс, расширяющий базовый интерфейс Lock
. Используется для улучшения производительности в многопоточном процессе и оперирует парой связанных блокировок (одна - для операций чтения, другая - для записи). Блокировка чтения может удерживаться одновременно несколькими читающими потоками, до тех пор, пока не появится записывающий. Блокировка записи является эксклюзивной.
Существует реализующий интерфейс ReadWriteLock
класс ReentrantReadWriteLock
, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.
#вопросы_с_собеседований
Для чего используются ключевые слова volatile, synchronized, transient, native?volatile
вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все данные, содержащиеся в объекте, синхронизированы не будут!synchronized
— это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.
Ключевые слова transient
и native
к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе сигнализирует о том, что метод реализован в платформо-зависимом коде.
Каков самый простой способ перевернуть ArrayList?
Ответ на картинке.
Другие способы это сделать можно найти здесь.
Инкапсуляция
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
👩💻 Открытый урок «Знакомство со Spring Cloud».
Как эффективно использовать самый популярный фреймворк в Java-мире для профессиональной разработки приложений?
📆 Узнайте на открытом вебинаре 10 октября в 20:00 мск.
Где мы разберем:
- что такое Spring Cloud и для чего он нужен;
- из каких основных компонентов состоит Spring Cloud;
- как использовать ключевые функции Spring Cloud для разработки.
Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.
Встречаемся в преддверии старта курса «Java Developer. Professional». Все участники вебинара получат специальную цену на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cBLNAuРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Что такое JDBC?
JDBC, Java DataBase Connectivity (соединение с базами данных на Java) — промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql
, входящего в состав Java SE.
JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
Встроенные исключения
Java определяет несколько классов исключений внутри стандартного пакета java.lang.
Наиболее общие из этих исключений являются подклассами стандартного типа RuntimeException. Поскольку java.lang неявно импортируется во все java-программы, то большинство исключений, полученных из RuntimeException, автоматические.
Java определяет несколько других типов исключений, которые относятся к его различным библиотекам класса. Ниже приведен список неконтролируемых исключений на этапе выполнения (Unchecked RuntimeException).
➡️ Picocli — мощный инструмент для создания CLI-приложений в Java
Picocli — это простая и гибкая библиотека для создания командных интерфейсов (CLI) в Java. Она поддерживает аннотации для автоматической генерации документации по командам, обработку аргументов, подкоманд, автодополнение и много других возможностей, которые упрощают создание сложных CLI-приложений.
🗣 Picocli — это отличный выбор для разработчиков, которым нужно быстро и просто создать CLI-приложение с минимальным количеством кода и мощными функциями.
🔗 Ссылочка на доку
➡️ Использование Pattern.compile().flags()
для получения флагов регулярного выражения
В Java 9 был добавлен метод flags()
в класс Pattern, который позволяет получить флаги, используемые при компиляции регулярного выражения.•
Это может быть полезно для анализа и отладки регулярных выражений, особенно в сложных системах, где нужно понимать, с какими опциями было создано регулярное выражение.•
В этом примере создаётся регулярное выражение с несколькими флагами, и затем с помощью метода flags()
мы можем получить информацию о них
💸 Вакансии для IT'шников
Выбери своё направление ⤵
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Как работают методы wait() и notify()(notifyAll())?
Эти методы определены у класса Object
и предназначены для взаимодействия потоков между собой при межпоточной синхронизации.
• wait()
: освобождает монитор и переводит вызывающий поток в состояние ожидания до тех пор, пока другой поток не вызовет метод notify()/notifyAll()
;
• notify()
: продолжает работу потока, у которого ранее был вызван метод wait()
;
• notifyAll()
: возобновляет работу всех потоков, у которых ранее был вызван метод wait()
.
Когда вызван метод wait()
, поток освобождает блокировку на объекте и переходит из состояния Работающий (Running
) в состояние Ожидания (Waiting
). Метод notify()
подаёт сигнал одному из потоков, ожидающих на объекте, чтобы перейти в состояние Работоспособный (Runnable
). При этом невозможно определить, какой из ожидающих потоков должен стать работоспособным. Метод notifyAll()
заставляет все ожидающие потоки для объекта вернуться в состояние Работоспособный (Runnable
). Если ни один поток не находится в ожидании на методе wait()
, то при вызове notify()
или notifyAll()
ничего не происходит.
Поток может вызвать методы wait()
или notify()
для определённого объекта, только если он в данный момент имеет блокировку на этот объект. wait()
, notify()
и notifyAll()
должны вызываться только из синхронизированного кода.
Что такое перегрузка методов?
Перегрузка методов — это свойство полиморфизма, в котором при помощи изменения сигнатуры метода можно создать различные реализации методов для одной и той же операции:
- одинаковое имя метода;
- различные аргументы;
- различный порядок аргументов;
Например, один и тот же add() из List может быть перегружен следующим образом и будет выполнять добавление разным способом, в зависимости от аргументов метода:
- add(Object o) — просто добавляет объект;
- add(int index, Object o) — добавляет объект в определенный индекс;
- add(Collection<Object> c) — добавляет список объектов;
- add(int index, Collection<Object> c) — добавляет список объектов, начиная с определенного индекса.
#вопросы_с_собеседований
Можем ли мы перегрузить методы по возвращаемому типу?
Мы не можем перегружать по возвращаемому типу. Это поведение аналогично C++.
Приглашаем опытных Java-разработчиков на конференцию Joker 2024
📆 9 октября онлайн и 15–16 октября в Санкт-Петербурге
🗣 45 докладов и дискуссий в программе
Спикеры расскажут про библиотеки и фреймворки, инструменты и инфраструктуру, Spring, JVM, API, хранение и обработку данных, перформанс, архитектуру, асинхронное программирование, фичи языка — новые и уже известные.
Также в программе — 4 кейноута:
— доклад про обратную совместимость в Java;
— история китайского хостинга репозиториев Gitee от его создателя;
— введение в проект LLVM для Java-разработчиков;
— обзор возможностей ИИ на примере современного искусства.
Вас ждет большая встреча Java-сообщества и целых три дня общения с опытными разработчиками.
Билет на Joker 2024 можно купить за счет компании — читайте в статье на VC, почему это выгодно не только вам, но и вашему работодателю.
При покупке билета за свой счет («Для частных лиц») используйте промокод для скидки 15% — SENIORJAVIST
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
🏓 Знакомимся с Java на примере пинг-понга
Хотите узнать, как создавать программы на Java, даже если никогда не программировали?
Ждем вас на открытом вебинаре 26 сентября в 20:00 мск,
где мы разберем:
➡️ что такое программирование и язык Java;
➡️ как создать игру пинг-понг с нуля на Java;
➡️ как работать с двумерной графикой в Java.
Урок полезен для тех, кто хочет начать изучать Java с нуля и увидеть на практике, как создаются приложения.
🎙 Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!
➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cBpdaEРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
#вопросы_с_собеседований
Как не допустить сериализацию?
Чтобы не допустить автоматическую сериализацию, можно переопределить private методы для создания исключительной ситуации NotSerializableException.
Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключения.