Java Learning
19.7K subscribers
1.58K photos
1 video
3 files
955 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Empty String

Если вам нужно проверить, содержит ли строка пустое значение — используйте метод isEmpty(). Почему не equals()? Он банально медленней. Если вы просмотрите его реализацию для строки, то сразу все поймете. Не удивляйтесь, многие разработчики до сих пор не знают про этот метод.
👍34
Object[] vs custom Class

Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас.
👍14😱2
#Вопросы_с_собеседования

Какой результат будет выведен в консоль?

Ответ:
This is abstract class constructor
This is demo class constructor

Вопрос на понимание абстрактных классов. Создать экземпляр абстрактного класса нельзя, но он все же имеет конструктор. Более того любой класс имеет конструктор, даже если он не задан явно (он будет добавлен при компиляции). Здесь важно понимать, что при создании экземпляра наследника, самой первой строкой в конструкторе класса наследника будет вызван конструктор класса родителя.
👍43🤩4
Что выведет код сверху?
Anonymous Quiz
8%
44-4
36%
34-3
17%
43-4
19%
33-4
17%
33-3
3%
44-3
🔥5😁2👍1
#Вопросы_с_собеседования

Java передает аргументы по значению или по ссылке?

Java всегда передает аргументы по значению (pass-by-value). Тем не менее, когда мы передаем значение объекта, мы передаем ссылку на него, потому что переменные хранят ссылку на объект, а не сам объект. Но это не передача по ссылке (pass-by-reference). Такое положение дел может быть не совсем понятно новичкам.
👍31😱2
#Вопросы_с_собеседования

Можно ли предопределить или перегрузить статический метод в Java?

Перегрузить статический метод в Java можно, но вот предопределить его нельзя. Вы можете написать другой статистический метод с такой же сигнатурой в подклассе, но он не будет предопределять суперкласс. в Java это называется сокрытием методов.
👍21😱3
#Вопросы_с_собеседования

Что выведет эта программа?

Ответ:
Программа напечатает “num1 == num2”. Если мы сравниваем две ссылки на объекты с помощью ==, значение всегда будет «false». Но в этом примере переменные num1 и num2 автоупаковываются (autoboxing) из-за Integer-кэширования. Вот почему num1 == num2 возвращает значение «true». Не забудьте, что Integer-кэширование актуально только для значений от -128 до 127.
👍39😱10😁1
#Вопросы_с_собеседования

Сколько объектов типа String создает эта программа?

Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
👍31
#Вопросы_с_собеседования

Как сборка мусора (Garbage Collection) не допускает нехватку памяти в приложении на Java?

Ответ:
Сборщик мусора (Garbage Collector) в Java — не волшебная пилюля от нехватки памяти в приложениях. Он просто очищает неиспользуемую память, когда объект выходит из области видимости и в нём отпадает потребность. Так что никакой гарантии, что сборка мусора предотвратит ошибки, связанные с нехваткой памяти, нет.
👍28
#Вопросы_с_собеседования

Что выведет эта программа?

Ответ:
Первый оператор вывода напечатает «false», второй — «true». Так происходит из-за ошибки округления чисел с плавающей точкой. Только степени двойки можно точно представить в двоичной записи. Числа, которые не являются степенями двойки, округляются так, чтобы поместиться в ограниченное количество битов. В этом примере Java использует использует тип double, поэтому для представления десятичных чисел доступно только 64 бита. Следовательно, 0.1*3 не будет равняться 0.3.
👍36
spring-projects/spring-boot

Spring Boot – это замечательный инструмент, который облегчает создание Spring-приложений и в целом работу с платформой Spring. Его основная задача – отвлечь вас от формирования инфраструктуры приложения и дать возможность сконцентрироваться на бизнес-логике. А инфраструктуру он построит за вас.

Spring Boot не изменяет ваш код и не создает новый. Он лишь динамически применяет все необходимые для приложения настройки.
👍16🔥2
Ключевое слово abstract в Java

abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract:

1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены).
2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
👍24
Приветствую всех, на связи админ! Какой контент вы бы хотели видеть на канале больше всего? Какие темы вам интересны?
👍3
spring-projects/spring-framework

Один из самых популярных Java-фреймворков. Spring предоставляет разработчику огромные возможности и большую свободу действий, поддерживает самые разные сценарии и архитектуры приложений. Подробное описание проекта, его возможности и Java примеры использования вы можете найти в официальной документации.
👍11
#Вопросы_с_собеседования

Что выведет эта программа?

Ответ:
Программа напечатает “String method”. Прежде всего стоит отметить, что null не является объектом в Java. Но null можно присвоить любой ссылке. Java String является объектом класса java.lang.String. В этой программе компилятор Java выбирает вызов перегруженного метода с наиболее конкретными параметрами. Это будет String, потому что класс String более конкретен, чем класс Object.
👍69😱20
#Вопросы_с_собеседования

Выполнится ли блок finally, если блок try или catch выполняют инструкцию return?

Да, блок finally выполнится, даже если return выполнился в блоке try или catch. Это один из самых популярных и сложных вопросов по Java. Запомните: единственный способ остановить выполнение блока finally — использовать System.exit().
👍63🔥14
👍9
Что выведет код сверху?
Anonymous Quiz
36%
1357
22%
2468
26%
1
16%
2
👍8