Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Один день из жизни Git

Создать ветку для задачи
git checkout -b <branch>

Посмотреть состояние файлов
git status

Добавить все изменения
git add .

Сделать коммит
git commit -m "good job"

Отправить ветку в удаленный репозиторий
git push -u origin <branch>

#git
Доклад по Spring

"Spring-потрошитель" - динамичный и позновательный доклад Евгения Борисова. Один из любимых спикеров. В докладе он рассказывает, как работают внутренности Spring: BeanFactory, ContextListener, BeanDefinitionReader, BeanPostProcessor. Постепенно знакомит с каждой новой сущностью Spring, показывает это на картинках и примерах.

Если хочешь полностью вникнуть, как устроен Spring, то включай видео, запускай Идею. И вместе с Евгением Борисовым печатай примеры кода.

Ссылки на доклад:
1 часть - https://bit.ly/2IwOkPQ
2 часть - https://bit.ly/2JpmKFx

#spring
JPoint 2018

JPoint - конференция по Джаве для опытных разработчиков. Она пройдёт 6-7 апреля в Москве. Будет 40 докладов и тысяча участников. Доклады, которые выкладывают на Ютуб после конференции, набирают тысячи просмотров. Например, "Spring-потрошитель" набрал 100к.

Билет на два дня стоит 35к. Но есть бесплатная трансляция с основными выступлениями. Интересно посмотреть выступления Juergen Hoel'а, сооснователя Spring. Он расскажет про запуск Spring на Java 9, функциональные и реактивных фишки пятого Spring'а.

Ссылки на трансляции:
1 день - https://bit.ly/2HceIPJ
2 день - https://bit.ly/2GX0R1T
Доклады начинаются в 10:30
Зачем ходить на конференции

Доклады - не основная причина. Ведь все доклады можно посмотреть в сети. С JPoint'а видео выкладывают только через пол года, но сольют в инет их раньше месяца.

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

Ещё хорошо рассказал про конференции Костя Горский
https://yangx.top/desprod/257
Он Design Lead в Intercom, экс-дизайн-директор Яндекса.

#мысли #конференции
Java 7
Java 8. Изящно и просто
Ещё пример Java 7
Тоже самое в одну строчку на Java 8
Как составить резюме, если нет опыта разработки. Часть 1

Удалите почту, созданную в глубоком детстве. Например, почта [email protected], возможно, не помешает найти Андрею работу. Но в глазах hr он будет выглядеть несерьёзным человеком. Заведите Гугл почту с именем и фамилией и пользуйтесь ей.

Плохо
[email protected]

Хорошо
[email protected]


Предпочтительный способ связи - email. Возможная ситуация, если это не cделать: Андрею позвонили, когда он был в метро и телефон был недоступен. А безответственный hr забыла перезвонить. Итог - Андрей потерял потенциальный оффер. Плюс email более надёжен. Вы не забудете из какой компании вас приглашали на собеседование. А в подписи к письму будут все нужные контакты.

Опыт в АйТи оставляем, остальное - удалить. То, что Андрей работал менеджером по продажам элитной сантехники и 3 года доставлял пиццу никак ему не поможет. Такие пункты вызывают только лишние вопросы. Можно оставить опыт работы менеджером проектов, но опыт продавцом лучше убрать.
Как составить резюме, если нет опыта разработки. Часть 2

Если проходили курсы - укажите их. Курсы по Джаве добавьте в опыте работы. Перечислите технологии, которые изучили. Опишите разработанный проект. Остальные курсы и лекции по программированию - отдельно. Например, можно указать sql-ex и w3schools.

Репозиторий. Если изучали язык самостоятельно, то выложите на ГитХаб свои проекты. Например, PatShop и ToDo. Это покажет, что вы работали с Гитом и у вас есть опыт разработки своих приложений. Опишите, что позволяет делать каждый проект.

Пункт "о себе". Не пишите об увлечениях, которые не относятся к работе. Перечислить положительные качества без их описания - тоже не очень. В идеале графа "о себе" должна читаться, как рассказ.

Плохо
Пунктуален, ответственен, отзывчив. По вечерам слушаю Аллегрову

Лучше
Не люблю опаздывать и нарушать обещания. На важные встречи стараюсь приходить за 10 минут, а задачи выполнять вовремя. Если вдруг не укладываюсь - предупреждаю


Помните, главное - честность. Будьте готовы рассказать на собеседовании подробно о каждом пункте в резюме. Об указанных технологиях - как они работают. О проектах - их функциональность и как разрабатывали.
Настроил VPN для Telegram?
Держи несколько сервисов, если появится желание:

Бот @socks5_bot
Внешние сайты:
http://opentg.us
http://fuckrkn.us
https://tgvpn.com/ru
http://telegram.veesecurity.com
JRE и JDK

Существует две поставки Джавы: Java Runtime Environment(JRE) и Java Development Kit(JDK).

JRE нужна для запуска программ, которые написаны на Джаве. С помощью неё запускают уже скомпилированные классы. В JRE нет компилятора и других средств для разработки.

Состав JRE:
- Java Class Library
- Java Virtual Machine
- Just-in-time Compiler
- Garbage Collector
- Java application launcher
Подробнее эти пункты я еще распишу.

JDK нужна для разработки приложений на Джаве. С её помощью можем скомпилировать исходный код и запустить его. Посмотреть исходники стандартной библиотеки и её документацию. Промониторить, сколько памяти потребляют объекты внутри приложения, когда оно запущено.

Состав JDK:
- JRE
- Исходники стандартной библиотеки
- Специальные тулзы: для разработки, дебага, мониторинга приложений
#обучение #jdk #jre
JVM

Или Java Virtual Machine - среда для запуска Джава-приложений. Виртуальная машина читает Байт-код и передаёт команды процессору. Байт-код - это скомпилированный исходный код. Он нечитаем для человек и понятен для JVM. Чтобы получить Байт-код, мы должны написать программу на Джаве и отдать её специальному компилятору javac. Например, я пишу код в файле application.java. Передам его компилятору, и получу application.class.

При запуске программы операционная система выделяет необходимый объём оперативной памяти под JVM. И у разработчиков нет прямого доступа к памяти системы.

JVM выполняет ещё программы, написанные на других языках программирования: Scala, Kotlin, Groovy. Их исходники тоже компилируются в Байт-код.

Неплохая статья о JVM и Байт-коде: https://bit.ly/2ENapHC

#обучение #jvm
Write once. Run anywhere
Герберт Шилдт - Java 8. Полное руководство

Для меня эта книга как документация, только с примерами. Её приятно читать, когда немного освоился в программировании и написал пару консольных приложений на Джаве. Например, когда хочешь изучить лямбды или повторить коллекции.

Плюсы: темы удобно структурированы и подробно описаны.
Минусы: примеров иногда не хватает и нет заданий для закрепления материала.

#книги
Вопросы с собеседований

Те, кто ещё в телеге, держите вопросы с собеседований. Их задают джунам почти в каждой компании.

— Перечислить основные принципы ООП.
— Привести пример применения полиморфизма.
— Какие есть модификаторы доступа?
— Что такое интерфейс?
— Какое отличие абстрактного класса от интерфейса?
— Перечислить методы, которые присутствуют во всех объектах java.
— Какие из них не public? Почему?
— Зачем нужен метод finalize?
— Какая связь между equals and hashcode?
— Рассказать иерархию исключений.
— Отличия между ArrayList и LinkedList.
Структуры данных в картинках

Для тех, кто изучает коллекции или хочет освежить знания, рекомендую серию статей с Хабра "Структуры данных в картинках". Автор подробно описывает внутренности ArrayList, LinkedList, HashMap, LinkedHashMap. Он пишет, как происходит создание объекта, вставка элемента в коллекцию, удаление. В конце статей приведены сложности и особенности каждой коллекции.

https://bit.ly/2HOIGK4 ArrayList
https://bit.ly/2vs53Cv LinkedList
https://bit.ly/2qLOZFS HashMap
https://bit.ly/2JaYFkK LinkedHashMap

#обучение
Сегодня буду выкладывать небольшие задачки с собеседований.

Первая. Найдите, где будет ошибка
interface A {
void run();
}

interface B {
void run();
}

interface C {
String run();
}

class Test1 имплементирует A, B
class Test2 имплементирует A, C