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

Статические методы (методы классов).

Подобно статическим полям, статические методы также принадлежат классу, а не объекту, поэтому их можно вызывать без создания экземпляра класса, в котором они находятся. При этом следует помнить, что из статического метода можно получить доступ только к статическим переменным или к другим статическим методам.

В противном случае при компиляции будет выведена ошибка (Картинка 1).

Пример статического метода:

На Картинке 2 представлен утилитный метод sumOfInts, принимающий на вход последовательность целых чисел и возвращающий сумму этих чисел.

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

В JDK служебные классы активно используются: Collections, Math, Arrays; StringUtils из Apache или CollectionUtils из Spring framework. Все методы этих классов являются статическими.

👉 JavaStart. Подписаться
👍8322🔥2
😁102💯21
Модификатор доступа static в Java. Часть 5.

Статические методы в интерфейсах.

В версии Java 8 появилась возможность определения статических методов в интерфейсах.

Их поведение напоминает поведение методов по умолчанию (default methods), но есть существенные отличия – они не могут быть переопределены методами в реализующих интерфейс классах.

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

Пример кода с использованием статического метода в интерфейсе можно увидеть на Картинке 1.

Обратите внимание, что для использования статических методов интерфейса не нужно использовать ключевое слово «implements». Достаточно (и это необходимо) использовать имя интерфейса вместе с именем статического метода. В других случаях, статические методы интерфейса видны только методам этого интерфейса.

👉 JavaStart. Подписаться
👍121🎉1🤓1
Модификатор доступа static в Java. Часть 6.

Какие же причины использовать статические методы? Вопрос из собеседования на Junior java разработчика.

– Для доступа / управления статическими переменными и другими статическими методами, которые не зависят от объектов;

– Для служебных, вспомогательных классов и интерфейсов, поскольку не требуют создания объектов и соответственно, обеспечивают большую производительность (не создаются лишние объекты в памяти);

– Когда методу требуется доступ лишь к статическим полям класса.

👉 JavaStart. Подписаться
👍63🔥21
😁911💯1
Важность дисциплины в обучении, настойчивости и самоорганизации.

Случай из жизни.

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

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

Стажер активно приступил к изучению и решению задачи. Он проводил исследования, изучал документацию и обращался за помощью к опытным разработчикам в команде. Он использовал Spring Framework для управления зависимостями и разработки веб-приложений, а также JPA для работы с базой данных.

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

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

Результата удалось добиться сочетая хард и софт скиллы. Очень важно прокачивать софт скиллы как для собеседования так и для работы. Многие работодатели обращают на это внимания при найме сотрудников и нередко это является одним из главных критериев.

Как думаете, что важнее в этом кейсе, хард или софт скиллы? Пишите свои мысли в комментари 👇

👉 JavaStart. Подписаться
🔥10👍51🤓1👨‍💻1
Модификатор доступа static в Java. Часть 7.

Ключевые моменты.

Очень нужная информация как для понимания, так и для успешного ответа на собеседовании на вопросы про ключевое слово static.

1) Статические методы в Java вызываются во время компиляции, а не во время исполнения;

2) Поскольку переопределение метода является частью полиморфизма во время выполнения (Runtime Polymorphism), статические методы не могут быть переопределены. Это справедливо также для статических методов интерфейса;

3) Абстрактные методы не могут быть статическими;

4) Статические методы не могут использовать ключевые слова this или super;

5) Методы экземпляра класса также могут непосредственно обращаться к статическим переменным и статическим методам;

6) Статические методы могут обращаться ко всем статическим переменным и другим статическим методам;

7) Статические методы не могут напрямую обращаться к переменным экземпляра и методам экземпляра. Для этого им нужна ссылка на объект;

8) Статические поля и методы не являются потокобезопасными. Т.к. каждый экземпляр класса имеет одну и ту же копию статической переменной, такая переменная нуждается в защите от одновременного обращения к ней нескольких потоков. Для этого статическая переменная должна быть синхронизирована;

9) Статические методы связываются во время компиляции, в отличие от не статических методов, которые связываются во время исполнения.

👉 JavaStart. Подписаться
👍63🤓21
Какой метод Stream API используется для преобразования элементов стрима в другие значения?
Anonymous Quiz
12%
collect()
25%
reduce()
5%
filter()
48%
map()
3%
get()
8%
Узнать ответ
5👍51🎉1
Вопрос из собеседований.

Каким будет результат сравнения в следующем коде на Картинке?

Вопрос на понимание работы пула строк в Java и на понимание сравнения строк.

Разберем детально:

1) Переменная s1 ссылается на строку в пуле уникальных строк в памяти, переменная s2 ссылается на ту же саму строку в пуле уникальных строк, что и переменная s1, первое сравнение будет true, так как s1 и s2 ссылаются на один и тот же объект.

2) Переменная s3 ссылается на новый объект, который не находится в пуле уникальных строк, так как он создан через new, следовательно второе сравнение будет false, так как сравниваем переменные которые ссылаются на на два разных объекта.

3) Третье сравнение будет true, так как мы сравниваем строки посимвольно на эквивалентность через .equals(), а содержимое данных строк одинаково.

👉 JavaStart. Подписаться
👍1532👏1
На нашем Ютуб канале вышло новое обучающее видео по Интерфейсам в Java.

Друзья, тем, кто лучше воспринимает информацию по видео, приятного просмотра!

Переходите по ссылке и смотрите скорее!

И конечно же подписывайтесь на наш канал JavaStart, чтобы не пропустить следующие обучающие видеоуроки по нашей любимой Java👩‍💻

https://www.youtube.com/watch?v=OGhfHmMFdAc

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102😁1🤓1👨‍💻1
Модификатор доступа static в Java. Часть 8.

Излюбленная тема почти всех интервьюеров - Статический блок инициализации.

Статический блок используется для инициализации статических переменных. Хотя статические переменные могут быть инициализированы непосредственно во время объявления, бывают ситуации, когда нам требуется выполнить многострочную обработку.

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

Пример статического блока.

Предположим, мы хотим инициализировать объект, представляющий собой список с некоторыми предопределенными значениями.
Это легко сделать с помощью статических блоков (Картинка 1).

В этом примере невозможно инициализировать объект List всеми начальными значениями вместе с объявлением, поэтому используется статический блок.

Код на Картинке 2 демонстрирует особенность статических блоков — они выполняются раньше конструкторов и при создании нескольких объектов класса, статический блок выполняется только один раз.

👉 JavaStart. Подписаться
👍62👨‍💻21🤓1
😁124👨‍💻1
Модификатор доступа static в Java. Часть 9.

Какие причины использовать статические блоки?

1) Если для инициализации статических переменных требуется дополнительная логика, за исключением операции присваивания;

2) Если инициализация статических переменных подвержена ошибкам и требует обработки исключений.

Ключевые моменты.

1) У класса может быть несколько статических блоков;

2) Статические поля и статические блоки выполняются в том же порядке, в котором они присутствуют в классе;

3) Из статического блока нельзя получить доступ к не статическим членам класса;

4) Статический блок не может пробросить дальше перехваченные исключения, но может их выбросить. При этом всегда будет выкидываться только java.lang.ExceptionInInitializerError;

5) Статические поля или переменные инициализируются после загрузки класса в память в том же порядке, в каком они описаны в классе.

👉 JavaStart. Подписаться
👍621👨‍💻1
Media is too big
VIEW IN TELEGRAM
Всем привет!

Спешим поделиться с вами отзывом от нашего студента.

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

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

Небольшая поддержка в первые недели работы и сегодня Максим уже полностью самостоятельный разработчик :)

🌐 Ссылка на полный отзыв на Youtube
https://www.youtube.com/watch?v=_kTpV5U61is

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍211👨‍💻1
Модификатор доступа static в Java. Часть 10.

Статический вложенный класс (nested class).

Язык программирования Java позволяет создавать классы внутри другого класса. Такой класс называется вложенным (nested).

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

Вложенные классы бывают двух видов:

вложенные классы, объявленные статическими, называются статическими вложенными классами (static nested classes);

вложенные классы, объявленные без static, называются внутренними классами (inner classes)

Основное различие между этими понятиями состоит в том, что внутренние классы имеют доступ ко всем членам включающего их класса (включая приватные) верхнего уровня, тогда как статические вложенные классы имеют доступ только к статическим членам внешнего класса.

Примером статического класса (ВНИМАНИЕ) является уже известный нам Singleton паттерн (Картинка 2).

Наиболее широко используемый подход для создания объектов «одиночка» (singleton) — это статический вложенный класс, поскольку он не требует никакой синхронизации, его легко изучить и реализовать.

👉 JavaStart. Подписаться
👍42🔥21👨‍💻1
Java – один из самых популярных языков программирования, который открывает двери к разнообразным карьерным возможностям и позволяет создавать полезные приложения для различных платформ.

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

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

Хотим подарить вам промокод START со скидкой 15%, который будет действовать неделю на нашей платформе JavaStart!

Напомним основные достоинства курса:

Курс будет доступен онлайн на платформе пожизненно;
Среднее прохождение курса составляет от 7–10 месяцев. Вы будете заниматься индивидуально и в своем темпе;
Личный ментор;
3 тестовых собеседования;
Три пет проекта для портфолио.

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

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

Задавайте любые вопросы, на сайте есть ссылки на чат с поддержкой и номер телефона для связи – можно писать как в 💬 Telegram, так и в 💬 WhatsApp.

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥21👏1👨‍💻1