Библиотека джависта | 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
加入频道
✍️ «Библиотека программиста» находится в поиске переводчика технических статей

Обязанности
• Перевод технических статей, документации и руководств с английского на русский язык.
• Редактирование и корректура переведенных текстов для обеспечения высокого качества и своевременной доставки переводов.

Что значит редактирование? Просто так взять DeepL и слово в слово перевести статью не получится?
• Не получится. Как правило, 10–40% текста — «вода». Переводчик должен убрать все лишнее и оставить главное, чтобы читатель не тратил время на чтение «забавной истории из жизни моего питомца, который внес неоценимый вклад в написание данного материала».

Мы предлагаем
• Удаленку.
• Официальное трудоустройство.
• Своевременную оплату за выполненную работу.

➡️ Заполнить анкету ⬅️

Я хорошо программирую, но пишу «так себе». Что делать?
Если вы хорошо программируете, но навыки письма немного отстают, пройдите наш бесплатный курс на Степике «Статьи для IT: как объяснять и распространять значимые идеи».
FileOutputStream vs. FileWriter

Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.

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

У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

☕️ Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
☕️ Для создания объекта статического вложенного класса объект внешнего класса не требуется.
☕️ Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
☕️ Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
☕️ В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
#вопросы_с_собеседований
Объединение двух массивов

Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.

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

Для сравнения элементов массива и букв строки в Java можно использовать следующую программу.

Программа создает массив из символов {'a', 'c', 'd', 'f', 'g'} и строку "abcdefg". В цикле происходит сравнение элементов массива и букв строки с помощью метода charAt(). Если элемент массива равен букве строки, то выводится сообщение об этом.

Затем массив сортируется по возрастанию методом sort() из класса Arrays. Отсортированный массив выводится на экран.
#код
Узнаем самый средний элемент коллекции

В этом примере используется List numbers, который содержит числа. С помощью Collections.sort() список чисел сортируется в порядке возрастания. Затем вычисляется индекс середины списка. Если размер списка четный, то найдутся два средних элемента, их среднее значение вычисляется и выводится на экран. Если размер списка нечетный, то выводится только один средний элемент.

Пример вывода (для списка чисел [1, 2, 3, 4, 5, 6, 7, 8]):
Средние элементы: 4, 5
Среднее значение: 4.5
Инкапсуляция

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

Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.

Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
👩‍💻 Как можно создать потоки в Java?

Автор перечисляет и показывает пять способов создать и запустить потоки в Java.

Смотреть видео
Что такое «анонимные классы»? Где они применяются?

Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.

Анонимные классы имеют несколько ограничений:

• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:

• создания объекта функции (function object), например, реализация интерфейса Comparator;
• создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
• в статическом методе генерации;
• инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
#вопросы_с_собеседований
Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore.

Ответ на картинке.
#код
Java: перспективы, тренды и почему новичкам стоит его знать

В этой статье собрали мнения ведущих экспертов в области Java из Artezio, Booking, Axiom JDK и др. Они обсуждают актуальные вопросы, связанные с использованием Java в современной разработке, дают советы новичкам и делятся своими мыслями о будущем этого языка программирования.

Смотреть статью
Узнаем продолжительность аудио файла

Получаем доступ с помощью стандартного расширения, узнаем формат, получаем длительность в секундах и красиво выводим.
Сколько курсов вы купили и не стали проходить?
Расскажите в комментариях ⬇️
#интерактив
🗺️💼 Трудоустройство в России и за рубежом: в чем ключевые отличия

Давно мечтали устроиться на работу в иностранную IT-компанию и получать зарплату в долларах или евро? Давайте разберемся, как происходит отбор за рубежом и чем он отличается от трудоустройства в России.

🔗 Основной сайт
🔗 Зеркало
Что делает метод intern() в классе String?

Метод intern() используется для сохранения строки в пуле строк или получения ссылки, если такая строка уже находится в пуле.
#вопросы_с_собеседований
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика

Как думаешь, что нужно уметь, чтобы стать крутым Senior-разработчиком или даже создать свой успешный стартап? Спойлер: нет, не только хорошо кодить.

🔗 Основной сайт
🔗 Зеркало
AMD — вечная канарейка Intel

Если прямо сейчас посмотреть на рынок процессоров, то может сложиться обманчивое впечатление, что AMD на равных конкурирует за место под солнцем с компанией Intel. Кто-то может посчитать, что так было всегда. Реальность же заключается в том, что если Intel всю свою историю колебалась между полной гегемонией и просто доминированием на рынке процессоров для персональных компьютеров и серверов, то AMD в хорошие моменты своей истории была строго второй, а в плохие — находилась буквально при смерти.

Читать статью
Какие сериалы/фильмы о программировании мотивируют вас продолжать обучение?
#интерактив