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

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

Как сборка мусора (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
FileOutputStream vs. FileWriter

Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.

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

У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
👍35
Что такое mutable?

Mutable называются объекты, чьи состояния и переменные можно изменить после создания. Например такие классы, как StringBuilder, StringBuffer.
👍19
Что такое immutable?

Immutable называются объекты, состояния и переменные которых нельзя изменить после создания объекта. Чем не отличный ключ для HashMap, да?) Например, String, Integer, Double и так далее.
👍16
#Вопросы_с_собеседования

Как написать immutable класс?

Чтоб написать immutable неизменяемый класс, нужно следовать простым пунктам:
• сделать класс финальным.
• сделать все поля приватными и создать только геттеры к ним. Сеттеры, разумеется, не нужно.
• Сделать все mutable поля final, чтобы установить значение можно было только один раз.
• инициализировать все поля через конструктор, выполняя глубокое копирование (то есть, копируя и сам объект, и его переменные, и переменные переменных, и так далее)
• клонировать объекты mutable переменных в геттерах, чтобы возвращать только копии значений, а не ссылки на актуальные объекты.
👍38
#Вопросы_с_собеседования

Какая разница между процессом и потоком?

Существуют следующие различия между процессом и потоком:
1) Программа в исполнении называется процессом, тогда как Поток является подмножеством процесса.
2) Процессы независимы, тогда как потоки являются подмножеством процесса.
3) Процессы имеют различное адресное пространство в памяти, в то время как потоки содержат общее адресное пространство.
4) Переключение контекста происходит быстрее между потоками по сравнению с процессами.
5) Межпроцессное взаимодействие медленнее и дороже, чем межпотоковое взаимодействие.
6) Любые изменения в родительском процессе не влияют на дочерний процесс, тогда как изменения в родительском потоке могут влиять на дочерний поток.
👍295
#Вопросы_с_собеседования

Что такое переопределение (overriding) методов?

Переопределение методов происходит, когда child хочет изменить поведение parent класса. Если нужно, чтоб выполнилось-таки то, что есть в методе parent, можно использовать в child конструкцию вида super.methodName(), что выполнит работу parent метода, а уже потом добавить логику.

Требования, которые нужно соблюдать:
• сигнатура метода должна быть такая же;
• возвращаемое значение должно быть таким же.
👍26
Перегрузка в Java

Рассмотрим работу перегрузки методов в Java. Что, если передавать в функцию аргумент, который не вполне соответствует определенным нами аргументам по типу? На этом этапе возможны два исхода.
1. Произойдет преобразование типа, но в более высокий тип (с точки зрения диапазона) в том же семействе.
2. Произойдет преобразование типа в следующее более старшее семейство (предположим, что если нет типа данных long, доступного для типа данных int, тогда будет поиск типа данных с плавающей запятой).
👍30🔥1🎉1
Какими значениями инициализируются переменные по умолчанию?

• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
👍34