Size: a a a

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

2020 November 22
Библиотека джависта
♨️24 ноября в 20:00 (мск) приглашаем на открытый вебинар «Сборка мусора в Java», который пройдет в рамках онлайн курса «Оптимизация в Java».

Запишитесь сейчас - напомним в день вебинара: https://otus.pw/z32c/

❗️Мы с вами разберем параметры запуска VM, сборщик мусора, виды сборок, разделение памяти под разные поколения объектов.                                                                                                                                                                                             ❗️Детальнее погрузимся в виды сборщиков, JMX.
❗️Научимся управлению приложением из jconsole, OutOfMemory, dump памяти.

Не пропустите трансляцию!
источник
Библиотека джависта
☕️ Загрузка, проверка и исполнение байт кода;
☕️ Предоставление среды выполнения для выполнения байт-кода;
☕️ Управление памятью и очисткой мусора (Garbage collection).

Виртуальная машина Java (Java Virtual Machine) - это механизм, предоставляющий среду выполнения для управления Java-кодом или приложениями. Виртуальная машина является независимой оболочкой исполнения кода, благодаря которой возможен её запуск на любой ОС, без влияния ОС на выполняемую программу.

JVM работает с 2мя типами данных: примитивные типы (primitive types) и ссылочные типы (reference types).

Примитивы

JVM работает с примитивными значениями (целыми числами и числами с плавающей точкой). По сути, JVM - это 32-битная машина. Типы long и double, которые являются 64-битными, поддерживаются изначально, но занимают две единицы памяти в frame's local или стеке операндов, поскольку каждая единица составляет 32 бита. Типы boolean, byte, short и char имеют расширенный знак (кроме char с нулевым расширением) и работают как 32-разрядные целые числа, так же, как и типы int. Меньшие типы имеют только несколько специфических для типа инструкций для загрузки, хранения и преобразования типов. boolean значение работает как 8-битное byte значения, где 0 представляет значение false, а 1 - значение true.

Типы ссылок и значения

Существует три типа ссылочных типов: типы классов, типы массивов и типы интерфейсов. Их значения являются ссылками на динамически создаваемые экземпляры классов, массивы или экземпляры классов, которые реализуют интерфейсы соответственно.
источник
Библиотека джависта
#вопросы_с_собеседований
Как не допустить сериализацию?
источник
2020 November 23
Библиотека джависта
Java Hiring Marathon, 30 ноября - 4 декабря

Сокращаем время от интервью до оффера в проект по разработке медицинских веб-порталов. Если ты пишешь на Java SE 11 и разбираешься в CI/CD, скорее выполняй тестовое задание и подключайся к онлайн-интервью с командой проекта. Мы подготовим интересное предложение и дадим обратную связь в день собеседования:

📌Задача проекта: мы разрабатываем медицинские веб-порталы для компании, которая занимается генетическим тестированием для ранней диагностики заболеваний. Наша задача - улучшить систему взаимодействия между пациентами и специалистами лабораторий и увеличить скорость предоставления результатов тестов пациентам за счет автоматизации всех процессов.

👬 Команда: опытные и талантливые frontend и backend разработчики, QA и test automation инженеры, UX/UI дизайнеры, менеджеры и аналитик. За год программа выросла с 7 до 40+ человек и продолжает расширяться.

🚀 Технологии: Java 11+, Spring, Kafka, React, Typescript, Scala, Python, React, Docker, AWS.

👍🏻 Особенности проекта: мы разрабатываем фичи, которые уже через 1-2 недели попадают в production, помогают лечить людей и спасать их жизни.

📍Ждем кандидатов из Н. Новгорода, Казани и других городов России (есть возможность удаленной работы).

🌟 Регистрируйся на сайте career.orioninc.ru/java-hiring-marathon.
источник
Библиотека джависта
Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.

private void writeObject(ObjectOutputStream out) throws IOException {
   throw new NotSerializableException();
}

private void readObject(ObjectInputStream in) throws IOException {
   throw new NotSerializableException();
}

Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации.
источник
Библиотека джависта
🖥🛠❓Брендовый неттоп vs самосборный мини-ПК: выбираем компьютер для программиста

Собрать компактный компьютер для программирования самому или взять готовый? Наш сравнительный обзор поможет выбрать. В него вошли восемнадцать неттопов и комплектующие для системника Mini ATX.

https://proglib.io/sh/C2ncqG1Vh9
источник
2020 November 24
Библиотека джависта
Как научиться правильно разрабатывать и запускать приложения в K8s? Есть несколько путей, но, пожалуй, самый быстрый  — это пройти трёхдневный онлайн-интенсив «Kubernetes для разработчиков» от Слёрм.

Чем ещё хорош этот путь?
– Материал курса основан на практическом опыте. Учим тому, что делаем на своих проектах.
– Никаких админских штучек и историй про обслуживание кластера. Только инструментарий и знания, которые требуются разработчикам.
– Никто не уйдёт без результата. Спикеры и техподдержка помогут каждому студенту справиться с заданиями.

Интенсив стартует 3 марта. Сейчас можно записаться по минимальной цене – 20 000 рублей.

Посмотреть программу и подать заявку.
источник
Библиотека джависта
❹ ❌👨‍🎓4 мифа о профессии программиста, в которые вы почему-то еще верите

В этой статье эксперты SkillFactory опровергают расхожие мифы о профессии программиста и подсказывают, что делать дальше.

https://proglib.io/sh/TSlahZCnF7
источник
2020 November 25
Библиотека джависта
Напиши свою первую программу💻 на одном из самых востребованных языков программирования — Java. Занятия бесплатные, а опыт, который ты получишь, поможет понять, в каком направлении двигаться дальше.

Регистрация займёт меньше минуты: 👉 https://clc.to/L73zJQ

🔥 Углубишь знания о Java.
🔥 Попрактикуешься в разработке и создашь первый проект — программу для мониторинга рабочего стола.
🔥 Узнаешь о базовых инструментах, которые применяют программисты.
🔥 Сможешь общаться с преподавателем интенсива и другими участниками в закрытом чате в Telegram.

☝️ 3 дня тебя будет обучать профи в своём деле, директор центра SymbioWay, который уже более 15 лет работает в сфере Java и веб-разработки и находит IT-специалистов для крупнейших компаний России — Даниил Пилипенко.

⭐️ Пройди бесплатный онлайн-интенсив с 30 ноября по 2 декабря в 19:00 по московскому времени. Попади в тройку лучших участников и получи сертификат на 30 000 рублей для обучения в Skillbox!
источник
Библиотека джависта
#вопросы_с_собеседований
В чем разница между PrintWriter и ServletOutputStream?
источник
Библиотека джависта
📌 Линейная алгебра для начинающих с примерами. Лекция преподавателя МГУ

Линейная алгебра: матрицы и операции над ними. Системы линейных уравнений — исследование и решение, метод Гаусса, геометрический подход.

https://youtu.be/ojJG1Kjy8tM

Присоединяйтесь к полному курсу по ссылке.
источник
Библиотека джависта
PrintWriter — класс для работы с символьным потоком, экземпляр которого можно получить через метод ServletResponse getWriter();

ServletOutputStream — класс для работы байтовым потоком. Для получения его экземпляра используется метод ServletResponse getOutputStream().
источник
Библиотека джависта
#вопросы_с_собеседований
В каких состояниях может находиться поток?
источник
2020 November 26
Библиотека джависта
Потоки могут находиться в одном из следующих состояний:

Новый (New). После создания экземпляра потока, он находится в состоянии Новый до тех пор, пока не вызван метод start(). В этом состоянии поток не считается живым.
Работоспособный (Runnable). Поток переходит в состояние Работоспособный, когда вызывается метод start(). Поток может перейти в это состояние также из состояния Работающий или из состояния Блокирован. Когда поток находится в этом состоянии, он считается живым.
Работающий (Running). Поток переходит из состояния Работоспособный в состояние Работающий, когда Планировщик потоков выбирает его как работающий в данный момент.
Живой, но не работоспособный (Alive, but not runnable). Поток может быть живым, но не работоспособным по нескольким причинам:
Ожидание (Waiting). Поток переходит в состояние Ожидания, вызывая метод wait(). Вызов notify() или notifyAll() может перевести поток из состояния Ожидания в состояние Работоспособный.
Сон (Sleeping). Метод sleep() переводит поток в состояние Сна на заданный промежуток времени в миллисекундах.
Блокировка (Blocked). Поток может перейти в это состояние, в ожидании ресурса, такого как ввод/вывод или из-за блокировки другого объекта. В этом случае поток переходит в состояние Работоспособный, когда ресурс становится доступен.
Мёртвый (Dead). Поток считается мёртвым, когда его метод run() полностью выполнен. Мёртвый поток не может перейти ни в какое другое состояние, даже если для него вызван метод start().
источник
Библиотека джависта
🔥Разработчик, время с умом используй — на бесплатных демо-уроках онлайн-курсов по backend-разработке на Kotlin и Android-разработке на Kotlin от OTUS и Альфа-Банка:

📌«Kotlin codegeneration» (продвинутый курс Android-разработки): https://otus.pw/VJzA/
— Рассмотрим, зачем может понадобиться кодогенерация. Узнаем, что такое Annotation Processing. Изучим фреймворк для генерации кода. Погенерируем свой код и уберем бойлерплейт из нашего приложения.

📌«Unit-тестирование в Android» (базовый курс Android-разработки): https://otus.pw/UT46/
— Изучим Unit-тесты. Научимся тестировать компоненты, классы и методы в Java. Рассмотрим технологию TDD.

📌«Пересмотр «12 факторов»: создаём современный микросервис на Kotlin»: https://otus.pw/WYrX/
— Обсудим, как расширить исходные рекомендации, чтобы помочь вам создавать приложения, которые не только функционируют в облаке, но и процветают.

👉🏻Регистрируйтесь сейчас — напомним в день вебинара!
источник
Библиотека джависта
#вопросы_с_собеседований
Назовите основные характеристики шаблонов.
источник
2020 November 27
Библиотека джависта
Имя - все шаблоны имеют уникальное имя, служащее для их идентификации;
Назначение данного шаблона;
Задача - задача, которую шаблон позволяет решить;
Способ решения - способ, предлагаемый в шаблоне для решения задачи в том контексте, где этот шаблон был найден;
Участники - сущности, принимающие участие в решении задачи;
Следствия - последствия от использования шаблона как результат действий, выполняемых в шаблоне;
Реализация - возможный вариант реализации шаблона.
источник
Библиотека джависта
#вопросы_с_собеседований
Какие типы классов бывают в java?
источник
2020 November 28
Библиотека джависта
🔥 Подойдет ли вам углубленный онлайн-курс «Spring Framework Developer»? Покажет вступительный тест. Вас ждут хардкорные темы и практические задачи!

Пройдите тест и успейте поступить❗️со скидкой 30%❗️ на курс: https://otus.pw/d7zG/
источник
Библиотека джависта
☕️ Top level class (Обычный класс):
Abstract class (Абстрактный класс);
Final class (Финализированный класс).
☕️  Interfaces (Интерфейс).
☕️  Enum (Перечисление).
☕️  Nested class (Вложенный класс):
Static nested class (Статический вложенный класс);
Member inner class (Простой внутренний класс);
Local inner class (Локальный класс);
Anonymous inner class (Анонимный класс).
источник