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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Что из себя представляет JDBC URL?

JDBC URL
состоит из:
<protocol>: (протокола) - всегда jdbc:.
<subprotocol>: (подпротокола) - это имя драйвера или имя механизма соединения с базой данных. Подпротокол может поддерживаться одним или несколькими драйверами. Лежащий на поверхности пример подпротокола - это "odbc", отведенный для URL, обозначающих имя источника данных ODBC. В случае необходимости использовать сервис имен (т.е. имя базы данных в JDBC URL не будет действительным именем базы данных), то подпротоколом может выступать сервис имен.
<subname> (подимени) - это идентификатор базы данных. Значение подимени может менятся в зависимости от подпротокола, и может также иметь под-подимя с синтаксисом, определяемым разработчиком драйвера. Назначение подимени - это предоставление всей информации, необходимой для поиска базы данных. Например, если база данных находится в Интернет, то в состав подимени JDBC URL должен быть включен сетевой адрес, подчиняющийся следующим соглашениям: //<hostname>:<port>/<subsubname.

Пример JDBC URL для подключения к MySQL базе данных «Test» расположенной по адресу localhost и ожидающей соединений по порту 3306: jdbc:mysql://localhost:3306/Test
Данное выражение иллюстрирует механизм instance method reference: передачи ссылки на метод println() статического поля out класса System.
С нас полезные лекции и трудоустройство, с тебя – год опыта коммерческой разработки на Java.

Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.

Чему будут учить?
На курсе будем изучать базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.

Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными, отказоустойчивыми проектами.

Подать заявку на курс: https://cutt.ly/6IMnY3g
#вопросы_с_собеседований
Перечислите основные классы и интерфейсы JDBC.

java.sql.DriverManager - позволяет загрузить и зарегистрировать необходимый JDBC-драйвер, а затем получить соединение с базой данных.

javax.sql.DataSource - решает те же задачи, что и DriverManager, но более удобным и универсальным образом. Существуют также javax.sql.ConnectionPoolDataSource и javax.sq1.XADataSource задача которых - обеспечение поддержки пула соединений.

java.sql.Connection - обеспечивает формирование запросов к источнику данных и управление транзакциями. Также предусмотрены интерфейсы javax.sql.PooledConnection и javax.sql.XAConnection.

java.sql.Statement , java.sql.PreparedStatement и java.sql.CallableStatement - эти интерфейсы позволяют отправить запрос к источнику данных.

java.sql.ResultSet - объявляет методы, которые позволяют перемещаться по набору данных и считывать значения отдельных полей в текущей записи.

java.sql.ResultSetMetaData - позволяет получить информацию о структуре набора данных.

java.sql.DatabaseMetaData - позволяет получить информацию о структуре источника данных.
#вопросы_с_собеседований
Что такое «модульное тестирование»?

Модульное/компонентное тестирование (unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

Модульные тесты можно условно поделить на две группы:
• тесты состояния (state based), проверяющие что вызываемый метод объекта отработал корректно, проверяя состояние тестируемого объекта после вызова метода.

• тесты взаимодействия (interaction tests), в которых тестируемый объект производит манипуляции с другими объектами. Применяются, когда требуется удостовериться, что тестируемый объект корректно взаимодействует с другими объектами.
Java-разработчик приложения СберИнвестор

Мы — финтех команда, работающая над передовой платформой для инвестиций, которая дает возможность миллионам пользователей покупать и продавать акции, драгоценные металлы, валюту, самостоятельно формировать портфель активов. Приглашаем тебя стать одним из тех, кто создает цифровую экосистему Сбера.
Мы проводим One Day Offer, поэтому все этапы отбора кандидатов ты пройдешь за 1 день.

Задачи Java-разработчика:

- разработка бэкенд-части платформы
- написание Unit-тестов
- участие в разработке архитектуры решений и выборе технологий
- оптимизация кода.

Мы ждем от кандидата:

- опыт программирования на Java 11+
- умение работать с Kafka
- опыт применения Spring Framework, Boot, Web Postgres
- опыт работы с Git, Maven, Gradle, форматами XML/JSON
- отличное ориентирование в k8s/OpenShift.

Мы предлагаем:

- все этапы отбора кандидатов и решение за 1 день
- оффер по итогам интервью
- работу над передовым приложением СберИнвестор.

Присоединяйся к команде Java-разработчиков Сбера в день собеседования. Для участия в One Day Offer регистрируйся https://u.to/IxrvGw
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «​Java-разработчик приложения СберИнвестор Мы — финтех команда, работающая над передовой платформой для инвестиций, которая дает возможность миллионам пользователей покупать и продавать акции, драгоценные металлы, валюту, самостоятельно формировать портфель…»
Проверка на нечетность

Можно ли использовать этот код с примера 1 на картинке для точного определения нечетного числа?

Надеюсь, вы заметили хитрость. Если мы решим таким образом проверить отрицательное нечетное число (например, -5), остаток от деления не будет равен единице, поэтому воспользуйтесь более точным методом (пример 2).

Он не только решает проблему отрицательных чисел, но и работает более производительно, чем предыдущий метод. Арифметические и логические операции выполняются намного быстрее, чем умножение и деление.
#вопросы_с_собеседований
Чем интеграционное тестирование отличается от модульного?

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

Допустим, есть класс, который при определенных условиях взаимодействует с web-сервисом через зависимый объект. И нам надо проверить, что определенный метод зависимого объекта действительно вызывается. Если в качестве зависимого класса передать:
• реальный класс, работающий с web-сервисом, то это будет интеграционное тестирование.
• заглушку, то это будет тестирование состояния.
• шпиона, а в конце теста проверить, что определенный метод зависимого объекта действительно был вызван, то это будет тест взаимодействия.
#вопросы_с_собеседований
Из каких частей стоит JDBC?

JDBC состоит из двух частей:
JDBC API, который содержит набор классов и интерфейсов, определяющих доступ к базам данных. Эти классы и методы объявлены в двух пакетах - java.sql и javax.sql;
JDBC-драйвер, компонент, специфичный для каждой базы данных.

JDBC превращает вызовы уровня API в «родные» команды того или иного сервера баз данных.
Ищешь работу в #Java удаленно?

Внизу подборка вакансий с зарплатными вилками в этой категории.👇🏻

Ещё больше вакансий найдёшь здесь: https://bit.ly/3qussMQ.

🌍 Java/React Dev/ Hitachi Energy: 9-15K: https://bit.ly/34fTKyP
🌍 Salesforce Dev/ Awesome Bytes: 6-10K: https://bit.ly/3g4Vrlo
🌍 Java Dev/ CPL Jobs: 10-16K: https://bit.ly/3g37gsq
🌍 Senior Java Dev/ apreel: 26.5-31.7K: https://bit.ly/3r7UQGc
🌍 Lead Java Dev/ ITFS: 25.2-29.4K: https://bit.ly/3r7URtK
🌍 Java Dev/ BinarApps: 10-18K: https://bit.ly/3H7nnAZ
🌍 Java Sr Dev/ Bitcoin Techn: 30-45K: https://bit.ly/31hBzI3
🌍 Remote scala developer/ Lendi: 12-20K: https://bit.ly/32Anvdg
🌍 Java Dev/ Andersen: 12-18K: https://bit.ly/3IMyhwH
🌍 Fullstack Dev/ Klika Tech: 12-22.5K: https://bit.ly/3ACnHVX
🌍 Java Sr Dev/ Bitcoin Techn: 30-45K: https://bit.ly/3I8nwVO
🌍 Java Dev/ IN Team: 11.8-18.5K: https://bit.ly/3KR3yjA
🌍 SrJava/KotlinDev/ Merixstudio: 15.5-22K: https://bit.ly/3obdhZ5
🌍 Java Dev/ AI Investments: 25-29K: https://bit.ly/3g0brFx
#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
✔️Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
#вопросы_с_собеседований
Назовите основные классы потоков ввода/вывода.
Привет! Ищем Java/Kotlin-разработчиков в Почтатех. Детали тут.

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

Ждем от тебя опыт работы с:
Java/Kotlin
Spring Boot
Maven/Gradle
Реляционная БД (у нас PostgreSQL)
Git (у нас GitLab)
Интеграционное и юнит-тестирование

Будет плюсом опыт работы с:
Swagger-контракт
Нотация UML
Микросервисная архитектура
Контейнеризация Docker
Кластер Kubernetes

Предлагаем гибкий график/удаленную работу, конкурентную зарплату и годовую премию, ДМС со стоматологией после трех месяцев работы в компании. А еще проводим регулярные демо-дни и развиваем внутренние ИТ-сообщества.
Вакансия: Java разработчик (middle+/senior)
Компания: INEX
Город: Москва
Формат работы: удаленка
Занятость: полная
ЗП: 250 000-300 000 рублей

Наша компания занимается разработкой ПО более 20 лет. Разрабатываем программное обеспечение HL/HA систем массового обслуживания.
Есть большой заказчик - РЖД.
Компания живая, процессы выстроены. Постоянно что-то меняется-улучшается📈

Сейчас ищем в команду ведущего java-разработчика

Обязанности:
• разработка ПО с использованием языка программирования Java и Java-технологий, web-разработка; участие в проектировании структуры БД;
• участие в работах по технической поддержке и развитию высоконагруженного web-портала:
• участие в согласовании архитектуры;
• анализ дефектов и фича-реквестов;
• оценка длительности модификации;
• внесение изменений в исходные коды;
• обновление продуктивной системы.

Требования:
• Java 8, 11 spring, jdbc;
• умение разбираться в чужом коде;
• знание SQL (Oracle/Postgresql);
• Jetty/Tomcat/Docker;
• общее понимание kubernetes

Условия:
• «белая» заработная плата по результатам собеседования;
• Agile/Kanban, командная работа;
• пятидневная рабочая неделя (10-19, возможно +/- час), оплачиваемый отпуск 31 календарный день

Контакты: @ok_OlgaK https://hh.ru/vacancy/51939587
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «Вакансия: Java разработчик (middle+/senior) Компания: INEX Город: Москва Формат работы: удаленка Занятость: полная ЗП: 250 000-300 000…»
🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 15)

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

https://proglib.io/sh/ak1X027h5f