Size: a a a

Библиотека джависта

2021 April 11
Библиотека джависта
источник
Библиотека джависта
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы ToDoubleBiFunction<T,U>, ToIntBiFunction<T,U> и ToLongBiFunction<T,U>?
источник
2021 April 12
Библиотека джависта
ToDoubleBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Double;
ToLongBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Long;
ToIntBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Integer.
источник
Библиотека джависта
🧰Мир, труд, Spring!🧰

Всем специалистам Java, претендующим на интересные проекты и зарплату 200 тыс. рублей, сообщается:
OTUS открывает набор в новую группу онлайн-курса «Spring Framework»!

За 5 месяцев вы погрузитесь в возможности самого популярного фреймворка Java и освоите технологии, необходимые для профессионального роста: MVC, Security, Boot, Reactive Stack и Spring 5 и т.д.

🖍Вы научитесь быстро проходить путь от идеи до production-grade и пополните портфолио своим web-приложением на микросервисной архитектуре.
Пройдите вступительный тест и занимайте место, пока действует спец.цена: https://otus.pw/JpMc/
источник
Библиотека джависта
#вопросы_с_собеседований
Что такое default методы интрефейса?
источник
2021 April 13
Библиотека джависта
16 апреля - демо-занятие «Первые шаги Тимлида на новом месте»

Александр Пряхин (Техническим директором в CityAds Media) расскажет:
- с чего начать работу новоиспеченному лиду?
- на какие процессы стоит обращать внимание?
- в каких местах кроются quick wins для быстрого роста?

Регистрация: https://otus.pw/mLzi/

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

interface Example {
   int process(int a);
   default void show() {
       System.out.println("default show()");
   }
}

☕️ Если класс реализует интерфейс, он может, но не обязан, реализовать методы по-умолчанию, уже реализованные в интерфейсе. Класс наследует реализацию по умолчанию.
☕️ Если некий класс реализует несколько интерфейсов, которые имеют одинаковый метод по умолчанию, то класс должен реализовать метод с совпадающей сигнатурой самостоятельно. Ситуация аналогична, если один интерфейс имеет метод по умолчанию, а в другом этот же метод является абстрактным - никакой реализации по умолчанию классом не наследуется.
☕️ Метод по умолчанию не может переопределить метод класса java.lang.Object.
☕️ Помогают реализовывать интерфейсы без страха нарушить работу других классов.
☕️ Позволяют избежать создания служебных классов, так как все необходимые методы могут быть представлены в самих интерфейсах.
☕️ Дают свободу классам выбрать метод, который нужно переопределить.
☕️ Одной из основных причин внедрения методов по умолчанию является возможность коллекций в Java 8 использовать лямбда-выражения.
источник
Библиотека джависта
#вопросы_с_собеседований
Для чего используется оператор assert?
источник
2021 April 14
Библиотека джависта
Assert (Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных.

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

Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ.

Т.к. утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы.

В Java проверка утверждений реализована с помощью оператора assert, который имеет форму:

assert [Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];

Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).
источник
Библиотека джависта
Узнай о возможности работы удаленно над долгосрочными проектами глобального уровня с EPAM Anywhere.
15 апреля 18:30- 20:00 GMT+3

НА ВЕБИНАРЕ МЫ БОЛЕЕ ПОДРОБНО РАССКАЖЕМ:
- Что такое EPAM Anywhere и возможности работы ремоут в рамках программы;
- Какие есть открытые вакансии для тебя;
- Процесс подачи заявки и этапы отбора;
- Подробно как проходит интервью;
- Как происходит знакомство с проектом и интервью с клиентом;
- Как проходит онбординг процесс в программу.

Зарегистрироваться: https://epa.ms/anywherewebinar-15
источник
Библиотека джависта
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы ObjDoubleConsumer<T>, ObjIntConsumer<T> и ObjLongConsumer<T>?
источник
2021 April 15
Библиотека джависта
☕️ ObjDoubleConsumer<T> - операция, которая принимает два аргумента классов T и Double, производит с ними некоторое действие и ничего не возвращает;
☕️ ObjLongConsumer<T> - операция, которая принимает два аргумента классов T и Long, производит с ними некоторое действие и ничего не возвращает;
☕️ ObjIntConsumer<T> - операция, которая принимает два аргумента классов T и Integer, производит с ними некоторое действие и ничего не возвращает.
источник
Библиотека джависта
В ВТБ открыта вакансия Java-разработчика. На позиции вы будете:
—  разрабатывать приложения с использованием микросервисной архитектуры;
— участвовать в code review;
— заниматься написанием unit-тестов.

Присоединяйтесь к ВТБ и вы получите:
— достойную заработную плату и соц.пакет;
— живые и интересные проекты;
— команда из лучших профессионалов, среди более 5000 IT-специалистов компании;
— карьерный рост и возможность выбора направления развития.

Отправляйте резюме до 23 апреля включительно: https://clc.am/lTzxjA
источник
2021 April 16
Библиотека джависта
#вопросы_с_собеседований
Как вызывать default метод интерфейса в реализующем этот интерфейс классе?
источник
Библиотека джависта
interface Paper {
   default void show() {
       System.out.println("default show()");
   }
}

class Licence implements Paper {
   public void show() {
       Paper.super.show();
   }
}
Paper.super.show();
   }
}
источник
2021 April 17
Библиотека джависта
#вопросы_с_собеседований
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?
источник
Библиотека джависта
Объявляем конкурс на самый интересный контент в телеграм-каналах Proglib!
Призовой фонд — 280 тысяч рублей.
Автор лучшего поста в отдельно взятом канале получает 20 тысяч рублей.
В каналах по языкам программирования, data science и мобильной разработке интересно увидеть топовые материалы по этим темам, в канале @progbook топовые рецензии на книги, в @proglibrary материалы по общим темам: проектирование, базы данных, linux, алгоритмы и структуры данных. Поощряются интерактивные форматы — авторские тесты, квизы, функционал которых встроен в Telegram, гифки, шпаргалки, неочевидные фишки.

Полный список каналов:
https://t.me/progbook
https://t.me/proglibrary
https://t.me/pyproglib
https://t.me/frontendproglib
https://t.me/javaproglib
https://t.me/dsproglib
https://t.me/phpproglib
https://t.me/cppproglib
https://t.me/mobileproglib
https://t.me/goproglib
https://t.me/csharpproglib
https://t.me/devopsslib
https://t.me/testerlib
https://t.me/hackproglib

Все посты будут с лайками и дизлайками и хэштегом #proglib_contest. Ссылки мы будем прогонять через наш сокращатель, будут браться в расчет лайки, дизлайки, охваты, клики по ссылкам. Чем больше лайков/охватов/кликов по ссылкам в публикации, тем больше шансов статьи победителем в конкурсе. Присылайте посты боту @proglib_contest_bot с указанием, на какой канал идет публикация. Юридическая информация здесь.
источник
Библиотека джависта
☕️ OutputStreamWriter — «мост» между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.
☕️ InputStreamReader — аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.
источник
2021 April 18
Библиотека джависта
Что такое Java-модули?

Java Platform Module System (JPMS) – система модулей, появившаяся в Java версии 9. Она разрабатывалась под названием Project Jigsaw, и ожидалась еще с Java 7.

Модуль – группа связанных пакетов и ресурсов. Механизм модулей определяет видимость содержимого одних модулей для других. Скрытые модули недоступны ни для обычного использования в коде, ни даже для рефлекшна: Class.forName() выбросит ClassNotFoundException.

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

Модуль определяется файлом объявления module-info.java.

JVM может работать относительно модулей в трех режимах:

• Legacy mode – применяется, когда код компилируется в режиме совместимости с версиями Java 8 и меньше. Весь код работает как безымянный модуль, флаги для настройки модулярности не работают.

• Single module mode – когда не используется флаг --module-source-path. Структура проекта остается старой, файл module-info.java лежит в директории /src. Поэтому иметь несколько модулей в одном проекте не получится.

• Multi-module mode – каждый модуль находится в собственной директории. Общая корневая директория передается в --module-source-path. Полноценное использование JPMS.

#Модули
источник
2021 April 19
Библиотека джависта
⚡️Ищете работу или мечтаете поменять профессию?

Полезная информация для вас. За интересными вакансиями следите на профильном канале @pravkiforyou.

Этот канал публикует вакансии с тех пор, как по телеграму ходили динозавры 🦖. Там сразу все условия и прямые контакты работодателей, без посредников.

Молодых перспективных специалистов легче найти в телеграме, а подписаться на вакансии тут: https://t.me/pravkiforyou
источник