Библиотека джависта | 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
加入频道
Хотите освоить востребованную профессию разработчика мобильных приложений? Участвуйте в бесплатном онлайн-интенсиве, который пройдёт 17–19 июня, в 19:00 по московскому времени.

Вы познакомитесь с основами мобильной разработки и научитесь работать с фреймворком Flutter. Создадите одно приложение сразу для двух платформ — iOS и Android.

Переходите по ссылке и регистрируйтесь: https://clc.am/P3Bekw

За 3 дня вы:

💡 узнаете, как работают мобильные разработчики и какие навыки нужны для начала карьеры;
💡 познакомитесь с основами мобильной разработки;
💡 научитесь создавать приложения на Flutter;
💡 узнаете, как писать сетевые запросы в Dart и парсить данные с помощью открытых API;
💡 научитесь использовать UI-виджеты для эффектного отображения данных;
💡 создадите несколько экранов и научитесь перенаправлять пользователя по ним.

📣 Спикер интенсива — Денис Александров, ведущий разработчик Arcadia. Он 12 лет занимается разработкой, 10 лет преподаёт, работал над AAA-играми, образовательными и финансовыми стартапами.

🎁 Все участники, сдавшие домашние задания, получат сертификат на 15 000 рублей для поступления на любой курс Skillbox!

Присоединяйтесь!
Интерфейс FileFilter применяется для проверки, попадает ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать. Пример прикреплен.
#вопросы_с_собеседований
Для чего в стримах предназначен метод limit()?
Метод limit() является промежуточной операцией, которая позволяет ограничить выборку определенным количеством первых элементов.
#вопросы_с_собеседований
Какое назначение у операторов PIVOT и UNPIVOT в Transact-SQL?
3 причины выучить Java
Стать кодером может каждый, а зарплаты высокие даже у джунов.

По данным Stack Overflow, 40% программистов предпочитают Java. Язык по популярности обгоняет PHP, C# и Python. Разберёмся, почему сейчас самое время стать Java-разработчиком.

1️⃣ На Java работает более 3 млрд устройств. На нём написан знакомый всем Minecraft, его используют Netflix, Amazon и Ebay. Даже NASA разрабатывает на Java ПО для космических проектов 🚀

2️⃣ На HH открыто более 3 000 вакансий Java-разработчика, а зарплаты начинаются от 90 000 рублей. Компании разрешают удалёнку, поэтому вы сможете работать над проектами из дома или в путешествиях.

3️⃣ Java легко освоить с нуля. Язык не требует специальных знаний, а синтаксис позволяет решать сложные задачи простым путём. Поэтому на Java пишут мобильные приложения, серверы, корпоративные программы и проектируют умные дома.

Чтобы стать джуном, достаточно 4 месяцев обучения на курсе «Профессия Java-разработчик» от Skillbox.

Переходите по ссылке и регистрируйтесь. Первые 6 месяцев обучения бесплатно!▶️ https://clc.am/JI9LMQ.
PIVOT и UNPIVOT являются нестандартными реляционными операторами, которые поддерживаются Transact-SQL.

Оператор PIVOT разворачивает возвращающее табличное значение выражение, преобразуя уникальные значения одного столбца выражения в несколько выходных столбцов, а также, в случае необходимости, объединяет оставшиеся повторяющиеся значения столбца и отображает их в выходных данных. Оператор UNPIVOT производит действия, обратные PIVOT, преобразуя столбцы возвращающего табличное значение выражения в значения столбца.
Что такое JDBC-драйвер? Какие бывают типы?

JDBC
– Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql. Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.

JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Драйверы делятся на 4 типа:

Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.

Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.

Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.

Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.
Всем привет!
Мы сделали сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.

Все самые подходящие предложения рынка – в @GetMeIT_bot
#вопросы_с_собеседований
Опишите разницу типов данных DATETIME и TIMESTAMP.
DATETIME предназначен для хранения целого числа: YYYYMMDDHHMMSS. И это время не зависит от временной зоны, настроенной на сервере. Размер: 8 байт

TIMESTAMP хранит значение равное количеству секунд, прошедших с полуночи 1 января 1970 года по усреднённому времени Гринвича. При получении из базы отображается с учётом часового пояса. Размер: 4 байта
Из чего состоит .class-файл?

.class-файл представляет собой один скомпилированный класс. Это то, что в конечном итоге исполняет Java Virtual Machine. В .class компилируется код любого JVM языка, формат входит в спецификацию и не зависит от платформы или реализации виртуальной машины. Содержимое конкретного класса просматривают утилитой javap из стандартного набора JDK. Подробно структура файла описана на википедии, в документации и во множестве статей. Файл состоит из 10 секций, которые можно условно разбить на группы:

🔘 Свойства файла: определяющее тип файла «волшебное слово» 0xCAFEBABE и версия формата;
🔘 Пул констант – содержит все используемые имена методов и классов в специальном формате, и прочую символьную информацию. В других местах используются только ссылки на элементы пула;
🔘 Основные свойства класса: флаги доступа, имя этого класса, его предка, интерфейсов;
🔘 Внутреннее содержимое: список полей класса и байткод методов
🔘 Атрибуты класса;

Для внутренних классов тоже создаются отдельные файлы с названиями формата OuterClass$InnerClass.class. Если класс анонимный, вместо имени используются номера с 1.

#JVM
forward():
☕️ Выполняется на стороне сервера;
☕️ Запрос перенаправляется на другой ресурс в пределах того же сервера;
☕️ Не зависит от протокола клиентского запроса, так как обеспечивается контейнером сервлетов;
☕️ Нельзя применять для внедрения сервлета в другой контекст;
☕️ Клиент не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним;
☕️ Выполняется быстрее метода sendRedirect();
☕️ Определён в интерфейсе RequestDispatcher.

sendRedirect():
☕️ Выполняется на стороне клиента;
☕️ Клиенту возвращается ответ 302 (redirect) и запрос перенаправляется на другой сервер;
☕️ Может использоваться только с клиентами HTTP;
☕️ Разрешается применять для внедрения сервлета в другой контекст;
☕️ URL адрес изменяется на адрес нового ресурса;
☕️ Медленнее forward() т.к. требует создания нового запроса;
☕️ Определён в интерфейсе HttpServletResponse.
С нас полезные лекции и трудоустройство, с тебя – минимум год опыта коммерческой разработки на Java.

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

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

Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными,отказоустойчивыми проектами.
Открыта регистрация на оплачиваемую стажировку ВТБ IT Юниор. Приглашаются студенты 3–4-го курса и выпускники бакалавриата, специалитета или магистратуры 2018−2023 годов выпуска по математическим, техническим, естественнонаучным или IT-направлениям. Вас ждет семь направлений на выбор: системная аналитика, сопровождение IT-инфраструктуры, администрирование и поддержка баз данных, DevOps, бизнес-аналитика, тестирование, разработка.

Преимущества стажировки:
— Комфортные условия: конкурентная заработная плата и все корпоративные преимущества, включая ДМС и социальный пакет.
— Ментор, с которым вы определите персональные цели и возможные векторы развития в IT-отрасли.
— Мастер-классы от главных IT-экспертов банка, участие в технологических завтраках, серии митапов для развития профессиональных компетенций, вебинары для роста личной эффективности, а также тренинг по банковскому бизнесу.

Регистрируйтесь до 1 июля включительно: https://clck.ru/VbVxE
Механизм сборки мусора - это процесс освобождения места в куче, для возможности добавления новых объектов.

Объекты создаются посредством оператора new, тем самым присваивая объекту ссылку. Для окончания работы с объектом достаточно просто перестать на него ссылаться, например присвоив переменной ссылку на другой объект или значение null; прекратить выполнение метода, чтобы его локальные переменные завершили свое существование естественным образом. Объекты, ссылки на которые отсутствуют, принято называть мусором (garbage), который будет удален.

Виртуальная машина Java, применяя механизм сборки мусора, гарантирует, что любой объект, обладающий ссылками, остается в памяти — все объекты, которые недостижимы из исполняемого кода, ввиду отсутствия ссылок на них, удаляются с высвобождением отведенной для них памяти. Точнее говоря, объект не попадает в сферу действия процесса сборки мусора, если он достижим посредством цепочки ссылок, начиная с корневой (GC Root) ссылки, т.е. ссылки, непосредственно существующей в выполняемом коде.

Память освобождается сборщиком мусора по его собственному «усмотрению». Программа может успешно завершить работу, не исчерпав ресурсов свободной памяти или даже не приблизившись к этой черте и поэтому ей так и не потребуются «услуги» сборщика мусора.

Мусор собирается системой автоматически, без вмешательства пользователя или программиста, но это не значит, что этот процесс не требует внимания вовсе. Необходимость создания и удаления большого количества объектов существенным образом сказывается на производительности приложений и если быстродействие программы является важным фактором, следует тщательно обдумывать решения, связанные с созданием объектов, — это, в свою очередь, уменьшит и объем мусора, подлежащего утилизации.
Клевые новости для всех, кто хочет стартануть в Automation — ребята из школы автоматизации QA.GURU проводят бесплатное вводное занятие 23-го июня в 20:00 МСК

Почему надо сходить:

— Занятие проведут преподаватели школы практики с многолетним опытом:
Станислав Васенков (@qa_automation), Артём Ерошенко (Allure), Алексей Виноградов (Selenide), Роман Орлов (Selenoid), Дмитрий Тучс (Propeller Ads), Евгений Данилов (rft.ru)

Разработаем простой автотест на поиск в google.com;

— Расскажем о рынке QA. Кто, кому, за что и сколько платит?

— Покажем боевой готовый проект и расскажем какие инструменты используются в нём, совместно с преподавателями школы;

— Бонусная часть – пока в секрете;

— Орг. часть: цели обучения, программа, инфраструктура;

— Дадим первое домашнее задание. Вы установите рабочую среду, запустите первый автотест.

Занятие бесплатное — для регистрации заполните форму на сайте qa.guru или вступайте в чат @qa_guru_chat — перед началом занятия ребята опубликуют ссылку там.