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

Мемы: @java_memes
加入频道
​​Anonymous class

• Анонимный класс не имеет имени
• Не является членом внешнего класса
• Объявляется и сразу создает экземпляр
• Можно поместить в любом месте программы, где разрешается применять выражения
• Обычно реализует только методы и своего интерфейса или суперкласса
• Должны быть короткими, так как объявляются среди других выражений
​​Кстати, пример с Runnable можно заменить лямбдой
​​Local class

Локальный класс определяется в блоке кода. Часто объявление происходит в методе другого класса. Но его можно объявить в статических или нестатических блоках инициализации.

• Локальный класс виден в пределах блока, где он объявлен
• Не может быть объявлен как private, public, protected или static
• Не может содержать статические объявления, только константы
• Имеет окружающий их экземпляр только в нестатическом контексте
• Видны все поля и методы внешнего класса обычные и статические (в зависимости от контекста)
Собеседование Android-разработчиков

Составил вместе с моим другом, разработчиком мобильных приложений и админом канала Android Live, пост, который поможет подготовиться к собеседованиям на Андроид-разработчика.

Теоретические вопросы – первое, на что стоит обратить внимание при подготовке к собеседованиям. На работе мы большую часть времени пишем код. А чтобы писать качественный код, разработчик должен как минимум хорошо знать свой язык программирования и разбираться в алгоритмах. Поэтому часто на собеседованиях сначала спрашивают теорию, потом дают решать алгоритмические задачи и в конце вопросы по архитектуре приложений.

Вопросы по Андроид зависят от позиции, на которую собеседуешься. Если претендуешь на junior, то важно хорошо ответить на вопросы по основным компонентам: Service, Activity, Fragment. На middle и seniour – готовься к вопросам, которые связаны с архитектурой и применением специфических для проекта библиотек.

77 вопросов и ответов с собеседований
https://android.jlelse.eu/android-interview-questions-cheat-sheet-96ea01c88def

Репозиторий с ресурсами по алгоритмам: линки, книги, курсы, реализации на многих языках программирования
https://github.com/tayllan/awesome-algorithms

Сайт для прокачки себя в алгоритмах
https://www.hackerrank.com

Канал моего друга Саши об Андроид-разработке
https://yangx.top/android_live
Вопросы с собеседований по Spring

— что такое Spring
— как понимаете Dependency Injection
— как понимаете Inversion of Control
— примеры DI и IoC
— что такое бин Spring’е
— какие есть scope у бина
— можно ли задать свой scope
— жизненный цикл бина
— что такое жизненный цикл бина
— можно ли добавить бин, если приложение уже стартануло
— как получить объекты ServletContext и ServletConfig
— виды внедрения зависимостей
— для чего нужна аннотация @Qualifier
— разница между аннотациями @Component, @Repository, @Service
— как работает транзакция в Spring
— что знаете о DispatcherServlet и ContextLoaderListener
— рассказать как устроен Spring MVC
— для чего нужны аннотации @RequestBody, @PathVariable, @RequestParam
— что лежит в основе Spring Security
— преимущества и недостатки Spring Data
Что посмотреть на выходных

Крутое мок интервью от Стаса Лозенко
https://youtu.be/E6_IVAbBIug

Красно-черные деревья
https://youtu.be/-gKLTH0KTF4

Мотивация для программирования
https://youtu.be/J1usv2Hn-pU

#чтопосмотреть
Как выучить Java за месяц, занимаясь 2 часа в день










Никак.
Как вы относитесь к Kotlin?
Как воспитать привычку

У Аркадия Морейниса прочитал о воспитании привычек и решил написать пост о своих, которые два года назад помогли мне начать учить Джаву.

Воспитание привычки – когда вы решили делать что-то каждый рабочий день определенное количество раз.

1. Перестаньте думать нужно ли это делать и есть ли на это время.
Решите один раз и двигайтесь в этом направлении. Когда я решил стать разрабом, начал каждый день кодить, смотреть лекции и читать книги.

2. Привяжите каждый подход ко времени или событию.
Сразу после завтрака я повторял вчерашний материал, после решал задачи, а за час до сна читал книги.

3. Подход – это выполнение определенных действий нужное количество раз.
Мои подходы: решить 10 задач, сделать конспекты по 2-м лекциям, прочитать 30 страниц, разобрать 10 вопросов с собеседований. Главное установить количество – не «почитать книгу», а именно «прочитать 30 страниц».

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

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

6. Придумайте вознаграждение.
Это сильно ускорит привыкание. Когда я учил Джаву, у меня не было вознаграждения. А вот писать посты каждый день меня подстёгивают просмотры, лайки и сообщения в личку.

7. Привычка воспитывается не быстро.
Некоторые говорят, что достаточно 21 дня, но это не всегда так. Не расстраивайтесь, если были пропуски, у меня тоже получилось не с первого подхода.
Книги для Джава-разработчика

Я выкладывал книги, которые сам прочитал в начале пути, и которые мне советовали опытные разрабы. Подборка моих обзоров:

Head First Java
https://yangx.top/java_developer/10

Грокаем алгоритмы
https://yangx.top/java_developer/28

Complete Reference Java
https://yangx.top/java_developer/48

Clean code
https://yangx.top/java_developer/71

Concurrency in practice
https://yangx.top/java_developer/77

Effective Java
https://yangx.top/java_developer/127
Плохо – хорошо

Плохо
List<T> list = new ArrayList<>();
for (T item : set) list.add(item);

Хорошо
List<T> list = new ArrayList<>(set);

Пример взял с одного из докладов JPoint 2018
Плохо – хорошо

Плохо
Iterator<T> itr = list.stream().iterator();
while (itr.hasNext())
consumer.consume(itr.next());

Хорошо
list.stream().forEach(consumer);
Плохо – хорошо

Плохо
list.stream().
allMatch(set::contains);

Хорошо
set.containsAll(list);
​​Как выучить горячие клавиши

Знание горячих клавиш – главный навык программиста, который умеет быстро кодить. Есть крутой плагин для IntelliJ Idea, который просто заставит их заучить. Называется Key Promoter. Первое время он бесит своими всплывающими окнами, но потом принимаешь его правила игры и быстро заучиваешь клавиши.

Еще про настройку Idea
https://yangx.top/java_developer/9
Что посмотреть на выходных

В постах «Что посмотреть на выходных» я делаю подборки видео для прокачки: доклады, лекции, курсы. И в конце поста – видео для расслабона: интервью разработчиков, мотивашка, какой-нибудь обзор. Все подборки:

Что посмотреть на выходных — 1
https://yangx.top/java_developer/126

Что посмотреть на выходных — 2
https://yangx.top/java_developer/152

Что посмотреть на выходных — 3
https://yangx.top/java_developer/158

Что посмотреть на выходных — 4
https://yangx.top/java_developer/176

Что посмотреть на выходных — 5
https://yangx.top/java_developer/184

Что посмотреть на выходных — 6
https://yangx.top/java_developer/207

#чтопосмотреть
Регистрация в приложении в 2018 году, чтобы что-то купить – полнейшая дичь
Как вы относитесь к Scala?
​​ Средняя зарплата андроид-разработчика в Москве
Вопросы с собеседований

Подборка постов с вопросами с собеседований. Каждый вопрос реальный – его задавали мне в какой-то компании или моим коллегам.

Java Junior
https://yangx.top/java_developer/50
https://yangx.top/java_developer/65

SQL
https://yangx.top/java_developer/76

Java Middle
https://yangx.top/java_developer/157
https://yangx.top/java_developer/159

Spring
https://yangx.top/java_developer/206
​​Как работают в Google

Если вас не напугал мой пост о банках и вы мечтаете о работе в крупной компании, то почитайте обязательно статьи у The Village о русских офисах Гугла, Икеи, Кока-Колы и прочих.

Как работают в Гугл
https://www.the-village.ru/village/business/office/167995-kak-rabotayut-v-ofise-google

Другие офисы крупняков
https://www.the-village.ru/village/business/office