Java Learning
19.8K subscribers
1.58K photos
1 video
3 files
953 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Что выведет код сверху?
Anonymous Quiz
16%
5
3%
6
48%
7
14%
0
19%
Error
👍4
alibaba/fastjson

Библиотека для быстрого преобразования любых произвольных Java-объектов в JSON-представление и обратно. Поддерживает даже объекты со сложной структурой (глубокими иерархиями наследования и использованием универсальных типов).
FastJson улучшает производительность сервера и клиента и позволяет использовать для объектов любые пользовательские представления.
👍11
#Вопросы_с_собеседования

Какая проблема возникнет с этим кодом?

Ответ: Данный код не с компилируется.

Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано.
👍20
#Вопросы_с_собеседования

Какой самый надежный способ проверить, равны ли два значения типа double?

Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем.
👍24
eclipse-vertx/vert.x

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

Фреймворк решает такие низкоуровневые задачи, как поддержка протоколов HTTP, TCP и доступ к файловой системе.
👍7👎1
Преобразование строки в дату

Класс SimpleDateFormat имеет некоторые дополнительные методы, в частности parse(), который в Java поможет нам перевести строку в дату соответствии с форматом, хранящимся в данном объекте SimpleDateFormat. Пример на картинке.
👍11
Data reading

Что плохого в этих невинных строках? Да в общем-то ничего, кроме того факта, что мы не знаем размер файла который считываем. Вместо файла может быть что угодно — открытый сокет, который принимает данные, данные из post запроса, все… В общем случае старайтесь не считывать всё в массив байтов, у вас попросту может не хватить памяти. Поэтому будьте осторожны с размером любых данных. Старайтесь обрабатывать и пересылать данные по частям. И всегда следите за размером пользовательских данных и по возможности ограничивайте их.
👍25
Log field

Используете логированние в классе? Всегда определяйте переменную лога как static final. Во-первых: у вас никогда не возникнет проблем при попытках сериализации и десериализации обьекта. Во-вторых: инициализация происходит только 1 раз, вместо постоянной инициализации при создании обьектов класса.
👍20
Fields initialization

Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно уверены. Всё-таки для этих целей у Вас есть конструктор. В случае явного указания значений для полей класса — они будут проинициализированы до вызова конструктора, что влечет дополнительные расходы в тех случаях, когда у Вас нет необходимости пользоваться проинициализированными значениями, например, когда сразу после создания обьекта Вы устанавливаете другие значения для проинициализированных полей. Ну и не забывайте, что поля класса всегда инициализируются значениями по умолчанию.
👍15
Форматирование даты с помощью SimpleDateFormat

SimpleDateFormat — это конкретный класс для парсинга и форматирования даты в Java. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени.
👍13
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