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

Мемы: @java_memes
加入频道
Правильные ответы: B, C, E, F

Вариант A не подходит. Абстрактный класс может содержать реализацию метода, а интерфейс с восьмой Джавы может содержать статический и дефолтный метод.

Вариант B верный. В интерфейсе все переменные public static final, а абстрактный класс тоже может их содержать.

Вариант C верный. И абстрактный класс и интерфейс могут использовать extends. Но в отличие от класса, интерфейс поддерживает множественное наследование.

Вариант D не подходит. Только интерфейс может иметь default метод.

Вариант E верный. И абстрактный класс и интерфейс могут содержать static методы.

Вариант F верный. Нужно иметь конкретную реализацию абстрактного класса или интерфейса, чтобы создать объект такого типа.

Вариант G не подходит. Инстанс класса, который реализует интерфейс, наследник класса Object, но сам интерфейс нет.
Посты о Git

Пока все обсуждают, что Microsoft купила GitHub, сделал подборку постов о Git.

Что такое Git
https://yangx.top/java_developer/15

Жизненный цикл файлов
https://yangx.top/java_developer/19

Состояния файлов
https://yangx.top/java_developer/20

Ресурсы для изучения
https://yangx.top/java_developer/21

Популярные команды
https://yangx.top/java_developer/30

Частые проблемы и их решения
https://yangx.top/java_developer/56

#git
Молодой против опытного

Проводил опрос "Если бы вы были Тим лидом, кого бы выбрали к себе в команду" https://yangx.top/java_developer/112. Выбрать можно было одного из двух кандидатов. Первый - молодой разработчика с горящими глазами, который знает только основы. Второй - опытный дорогостоящий разработчик. Голоса в процентах распределелились 70 на 30. Публикую ответы ребят, почему они выбрали свой вариант.

Молодой разработчик
— приносит свежие идеи в проект
— как воспитаешь, так и будет кодить
— стремится стать хорошим спецом и не бежит за зарплатой
— не нужно переубеждать в правильности решения
— в перспективе принесет реальную отдачу, если не жмут сроки проекта и есть кому обучать

Опытный разработчик
— начинает приносить пользу сразу
— быстрее и правильнее решает задачи
— когда горит проект, уменьшает риски срыва проекта
— уже знает необходимые технологии
— сложно находить общую точку зрения
Что посмотреть на выходных

Курс по Джаве для начинающих от Вячеслава Ковалевского
https://www.youtube.com/playlist?list=PLsQAG1V_t58AKvV5v4NVXxo68OyLdNX3j

Интервью разработчика, который родился в Краснодарском крае, а сейчас переехал в Америку и работает в Tesla
https://youtu.be/QXjzP-zndrE

Доклад Евгения Борисова о Spring Data
https://youtu.be/nwM7A4TwU3M

#чтопосмотреть
Effective Java

Книга рассказывает тонкости базовых принципов Джавы. Её написал один из авторов языка Джошуа Блох. Подходит тем, кто изучил синтаксис, написал пару мини-проектов и хочет глубже изучить Джаву. Также отличная книга для желающих укрепить знания и перейти с позиции Джуниор на позицию Мидл.

Второе издание состоит из 77 полезных правил и тонкостей. Автор описал решение ежедневных задач разработчика. На примерах подробно объясняет, как нужно и не нужно кодить, чтобы получился надёжный и эффективный код.

Ниже публикую скрины содержания и саму книгу в формате djvu.

#книги
Испытательный срок

У меня в компании испытательный срок длится три месяца. После трудоустройства Тимлид ставит разработчику задачи на этот период: познакомиться с системой, на которой будет работать, изучить используемые фреймворки, разработать конкретные модули.

После испытательного НR проводит встречу с разработчиком и Тимлидом. Это своего рода аттестация. Цель – подвести итоги испытательного срока: оценить работу сотрудника, посмотреть с какими задачами справился, дать обратную связь HR-у.

Оценка сотрудника проводится по следующим параметрам: результативность работы, соответствие занимаемой должности, ответственность, инициативность, вовлечённость. Сначала разработчик ставит себе балл от 1 до 5, затем Тимлид, и оба объясняют свой выбор. Таким образом происходит открытое обсуждение плюсов и минусов работы сотрудника.

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

#компании
Подготовка к сертификации по Джаве

Мне и ещё двум Джавистам на аттестации, про которую рассказывал вчера, поставили задачу - получить сертификат Oracle Certificate Associate и начать готовиться к Oracle Certificate Professional.

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

Ссылки:
Книга, по которой готовлюсь к экзамену
https://www.amazon.com/dp/1118957407/ref=cm_sw_r_sms_awdb_t1_YC8iBbP3TERAB
Статья, в которой разработчик рассказывает, какие были сертификаты в 2016, и как выглядела сдача экзамена
https://m.habr.com/post/317432/
Какой импорт нужно добавить, чтобы следующий код скомпилировался?

public class Imports {
public void read(Files files) {
Paths.get("name");
}
}


Классы Files и Paths находятся в одном пакете java.nio.file
Два правильных ответа:
1. импорт всего пакета
import java.nio.files.*;
2. импорт обоих классов
import java.nio.files.Files;
import java.nio.files.Paths;

Импорты, которые не подойдут:
import java.nio.*; подпакеты не импортируются
import java.nio.*.*; можно использовать только одно сокращение с символом *
import java.nio.files.Paths.*; нельзя импортировать методы, только классы
Что произойдёт, если раскомментировать 3-ю строчку и запустить приложение?

1. Программа напечатает Black
2. Программа напечатает White
3. Код не с скомпилируется
4. Код скомпилируется, но при запуске выкинет исключение
Ответ: 2. Почему: в классе X переменная Y и класс Y находятся в одном скоупе. По спецификации в таком случае переменная имеет больший приоритет.
Как сделать так, чтобы вывелось на экран Black? Нельзя использовать рефлекшн и менять классы X и C