JavaStart
909 subscribers
910 photos
28 videos
620 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Команды Git. Часть 5.4.

Распространенная команда git cherry-pick.

На собеседовании начинающего Java разработчика могут спросить - Что такое cherry-pick? Ответ нужно знать, потому что это очень нужная команда Git в процессе разработки ПО.

Команда git cherry-pick позволяет применять коммиты из одной ветки в другую. Это может быть полезно, если вы хотите взять определенный коммит из одной ветки и применить его в другой ветке без переноса всей истории коммитов.

Чтобы использовать git cherry-pick, нужно выполнить следующие шаги:

1) Перейти в ту ветку, в которую мы хотим применить коммит.
2) Выполнить команду git cherry-pick <commit-hash>,
где <commit-hash> - это хэш-код коммита, который мы хотим применить.

Давайте посмотрим на пример использования git cherry-pick. Предположим, что у нас есть две ветки: master и feature. Мы хотим применить коммит с хэш-кодом 123abc из ветки feature в ветку master. Выполним следующие команды:

git checkout master (переключились на ветку master)

git cherry-pick 123abc (применяем коммит с хэш-кодом 123abc в текущую ветку master, на которой находимся)

👉 JavaStart. Подписаться
🔥7👍521
Интересный случай из жизни касательно Git.

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

Он потратил много времени на поиск способа восстановления удаленной ветки, испытав разные эмоции: от паники до смирения. В конечном итоге, когда он обратился ко мне за помощью, он узнал новую для него команду Git и смог восстановить потерянную ветку, используя git reflog.

Этот случай подчеркивает важность регулярного создания резервных копий и внимательного отношения к работе с Git.

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

👉 JavaStart. Подписаться
👍14🔥422🤔1
🤣7💯4😁2👾2🤔1
🔥2👍1
Какая команда используется для добавления изменений в индекс Git?
Anonymous Quiz
40%
git commit
49%
git add
11%
git push
👍7😁2🤔21🤯1
Функциональный интерфейс в Java.

Начнем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.

Термин функциональный интерфейс был введен в Java 8. Это интерфейс, который содержит только один абстрактный (не реализованный) метод. Может содержать стандартные и статические, которые имеют реализацию, в дополнение к одному нереализованному.

Вот пример:

public interface MyFunctionalInterface {
    public void execute();
}

Вышеуказанный интерфейс содержит только один метод, и этот метод не имеет реализации.

Обычно интерфейс не содержит реализации методов, которые он объявляет, но он может содержать реализации в методах по умолчанию (default) или в статических (static).

На картинке приведен еще один пример с реализациями некоторых методов. Этот интерфейс все еще считается функциональным, поскольку он содержит только один не реализованный метод.

К функциональному интерфейсу можно добавить аннотацию @FunctionalInterface. Это не обязательно, но при наличии данной аннотации код не скомпилируется, если будет больше или меньше, чем 1 абстрактный метод.

Основное назначение функционального интерфейса – это использование в лямбда выражениях и method reference.

Рекомендуется добавлять @FunctionalInterface. Это позволит использовать интерфейс в лямбда выражениях, не остерегаясь того, что кто-то добавит в интерфейс новый абстрактный метод и он перестанет быть функциональным.

👉 JavaStart. Подписаться
👍1331🔥1
🤣5👍2🔥2💯1
Касательно функциональных интерфейсов в Java есть один тонкий момент, о котором нужно знать, идя на собеседование, причем неважно - джуниор ты или синьор, подловить тут можно любого!)

Этот тонкий момент описан в Java Language Specification: “interfaces do not inherit from Object, but rather implicitly declare many of the same methods as Object.”

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

Будьте внимательны на собеседовании! 🤘

👉 JavaStart. Подписаться
👍921🔥1
Какая команда используется для отправки изменений в удаленный репозиторий Git?
Anonymous Quiz
79%
git push
18%
git commit
3%
git add
👍5🔥2🤔1
Анонимный класс в Java.

Нужно обязательно иметь представление о том, что такое анонимный класс, чтобы ответить на собеседовании!

И так, Анонимные классы – это классы, что не имеют имени и их создание происходит в момент инициализации объекта. Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться.

Рассмотрим небольшой пример.

Предположим что у нас есть интерфейс Auto с методом void flyingMoto(), который необходимо реализовать. Для реализации можно создать отдельный класс (например, FamilyAuto или WorkAuto), в нём реализовать интерфейс (заимплементить наш интерфейс Auto), далее создать объект на основе класса и через объект ссылаться на методы классы.

Звучит логично, но не оправдано с точки зрения количества действий.

Куда проще создать объект и для него сразу выполнить создание анонимного класса. Так и читается легче и меньше кода (мы не создали целый отдельный класс для имплементации интерфейса).

👉 JavaStart. Подписаться
👍92🔥21🆒1
🤣7😁31👨‍💻1
Лямбда-выражение в Java. Часть 1.

Продолжаем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.

Лямбда-выражение или просто лямбда в Java — анонимная функция анонимного класса, реализующего функциональный интерфейс.

Структура лямбда-выражения.

Сигнатура лямбда-выражения соответствует сигнатуре абстрактного метода реализуемого функционального интерфейса. Можно даже сказать, что лямбда-выражение является реализацией абстрактного метода этого функционального интерфейса.

Главное отличие сигнатуры лямбда-выражения от сигнатуры метода в том, что она состоит только из двух частей: списка аргументов и тела, разделённых при помощи «—>».

Пример создания лямбда-выражения.

Чтобы лучше понять, что такое лямбда-выражения Java, следует рассмотреть пример создания синтаксиса. Реализуем некий функциональный интерфейс RentSearcher, с помощью которого сможем проверить, все квартиры, которые находятся в аренде ниже определенной цены (Картинка 1).

При использовании анонимного класса, процесс создания объекта будет выглядеть как на Картинке 2.

При этом объект RentSearcher можно описать с помощью лямбда-выражения, что позволит сделать запись аккуратнее (Картинка 3).

С помощью простых действий, элемент кода можно сделать еще аккуратнее, тем самым повысив качество кода (Картинка 3).

Благодаря Java лямбда функции можно сделать намного короче и лаконичнее. Подобного уменьшения невозможно добиться при добавлении классических анонимных классов.

👉 JavaStart. Подписаться
👍7🔥721🆒1
Друзья, а давайте знакомиться! ☺️

Меня зовут Леонид, мне 27 лет и я Senior Java разработчик и автор этого канала. За спиной у меня 7 лет коммерческой разработки на Java, в моем портфолио есть компании из кремниевой долины и швейцарские банки. Мне очень нравится обучать ребят, растить сильных разрабов с нуля и до уровня Junior + / Middle 🚀

Пишите в комментах, откуда вы, как давно обучаетесь и что больше всего нравится в Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍86🤝2
JavaStart pinned a photo