Java Learning
18.7K subscribers
1.62K photos
1 video
3 files
996 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Разбираем float на части

Смотреть статью
👍8
Перевод строки в число

Часто бывает нужно перевести строку в число. У классов оберток примитивных типов есть методы, которые служат как раз для этой цели. Все эти методы начинаются со слова parse. Рассмотрим ниже перевод строки в целочисленное (Integer) и дробное (Double) числа.
👍17
Создаем байт-код для JVM без компилятора

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

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

Смотреть статью
👍4
😱6👍51
Что выведет код сверху?
Anonymous Quiz
44%
4
8%
2
42%
1
6%
0
👍21🤔16
Возведение в степень

Возвести число в степень можно двумя способами:

1)простое умножение;
2)используя метод Math.pow() (двойное основание, двойной показатель степени).

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

Простое умножение в Java работает в 300-600 раз эффективнее, кроме того, его можно дополнительно оптимизировать.
👍15
#Вопросы_с_собеседования

Что такое «ссылка на метод»?

Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:

имя_класса::имя_статического_метода для статического метода;
объект_класса::имя_метода для метода экземпляра;
название_класса::new для конструктора.
Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.

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

Что такое Map.of()?

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

Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.
👍161
#Вопросы_с_собеседования

Что выведет код сверху?

Ответ:
Программа не выдаст ошибки компиляции. Поскольку a больше 20, а b больше 25, будет выведена 1. Второй оператор if не будет истинным, так как a не больше 30, поэтому будет выполнен блок else, который выведет 3. Таким образом, на выходе будет 1, а затем 3. Обратите пристальное внимание на операторы if и else if. Если бы вместо второго оператора if был оператор else if, то на выходе была бы только 1.
👍45😱32🔥1😢1
Шаблон проектирования: Chain of Responsibility

Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.

Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.

Смотреть статью
👍6🔥2🤔1😢1
Может ли имя класса не совпадать с именем файла?

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

Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.

Так что ответ – может.
👍231
Log4j

Log4j – библиотека, взявшая на себя обязанности по избавлению разработчика от лишней головной боли при организации логирования в приложении. Она инкапсулирует почти все операции (прямая работа с файлами логов, оформление логов, разграничение уровней логирования), предоставляя разработчику удобный и минималистичный интерфейс взаимодействия с логами.

После подключения и быстрой настройки библиотеки работа с логами будет сведена к коду на картинке. После выполнения кода в лог будет записано что-то вроде:

2022-02-05 15:00 DEBUG MainClass:5 — Сообщение об баге

2022-02-05 15:00 ERROR MainClass:6 — Сообщениe об ошибке

2022-02-05 15:00 WARN MainClass:7 — Предупреждение

2022-02-05 15:00 INFO MainClass:8 — Информация

Подробнее о библиотеке можно узнать на сайте разработчика.
👍102
#Вопросы_с_собеседования

FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
👍27
Манипуляции с байт-кодом Java

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

Смотреть статью
👍6😱2
#Вопросы_с_собеседования

🎙️ Какие два класса не наследуются от Object?

Ответ:
Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍874🔥2
Как долго вы изучаете Java?
Anonymous Poll
45%
Менее года
37%
1-2 года
8%
3 года
10%
4+ лет
👍14😢8
👍1
Какая строка первой вызовет ошибку компиляции?
Anonymous Quiz
51%
l1
6%
l2
6%
l3
26%
l4
11%
Узнать ответ
🤔20👍19🔥3
Узнаем IP-адрес своего компьютера

InetAddress.getLocalHost() используется для поиска частных IP - адресов, используемых в локальной сети или любой другой локальной сети.

Подробнее объяснение кода можно найти здесь.
👍24
#Вопросы_с_собеседования

Где разрешена инициализация статических/нестатических полей?

☕️ Статические поля можно инициализировать при объявлении, в статическом или нестатическом блоке инициализации.
☕️ Нестатические поля можно инициализировать при объявлении, в нестатическом блоке инициализации или в конструкторе.
👍23