#Вопросы_с_собеседования
👩💻 Опишите различные типы примитивов и объемы памяти, которые они занимают.
Java имеет 8 примитивных типов:
☕️ boolean — логическое значение true/false. Размер логического значения не определяется спецификацией JVM и может различаться в разных реализациях
☕️ byte — 8-битное значение со знаком
☕️ short — 16-битное значение со знаком
☕️ char — беззнаковое 16-битное значение
☕️ int — 32-битное значение со знаком
☕️ long — 64-битное значение со знаком
☕️ float — 32-битное значение с плавающей запятой одинарной точности, соответствующее стандарту IEEE 754
☕️ double — 64-битное значение с плавающей запятой двойной точности, соответствующее стандарту IEEE 754
Java имеет 8 примитивных типов:
☕️ boolean — логическое значение true/false. Размер логического значения не определяется спецификацией JVM и может различаться в разных реализациях
☕️ byte — 8-битное значение со знаком
☕️ short — 16-битное значение со знаком
☕️ char — беззнаковое 16-битное значение
☕️ int — 32-битное значение со знаком
☕️ long — 64-битное значение со знаком
☕️ float — 32-битное значение с плавающей запятой одинарной точности, соответствующее стандарту IEEE 754
☕️ double — 64-битное значение с плавающей запятой двойной точности, соответствующее стандарту IEEE 754
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
❓ Что такое Lambda-выражения?
Лямбда-выражения — это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы.
🗣 Лямбда-выражения значительно упрощают работу с такими функциональными интерфейсами, как
✔️ Преимущества Lambda-выражений
Java Learning 👩💻
Лямбда-выражения — это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы.
🗣 Лямбда-выражения значительно упрощают работу с такими функциональными интерфейсами, как
Runnable, Callable, Comparator и многими другими.✔️ Преимущества Lambda-выражений
• Краткость: Лямбда-выражения позволяют писать меньше кода.• Читаемость: Код становится более читабельным и понятным.• Поддержка функциональных интерфейсов: Лямбда-выражения работают с функциональными интерфейсами, делая работу с ними проще и интуитивно понятной.• Повышенная производительность: В некоторых случаях лямбда-выражения могут улучшить производительность за счёт оптимизаций, выполненных компилятором.Java Learning 👩💻
👍9
⏳ System.currentTimeMillis или System.nanoTime?
В Java есть два стандартных способа проведения операций со временем, и не всегда ясно, какой из них следует выбрать.
➡️ Метод
➡️ Метод
Таким образом, метод
Java Learning 👩💻
В Java есть два стандартных способа проведения операций со временем, и не всегда ясно, какой из них следует выбрать.
➡️ Метод
System.currentTimeMillis() возвращает текущее количество миллисекунд с начала эры Unix в формате Long. Его точность составляет от 1 до 15 тысячных долей секунды в зависимости от системы.long startTime = System.currentTimeMillis();
long estimatedTime = System.currentTimeMillis() - startTime;
➡️ Метод
System.nanoTime() имеет точность до одной миллионной секунды (наносекунды) и возвращает текущее значение наиболее точного доступного системного таймера.long startTime = System.nanoTime();
long estimatedTime = System.nanoTime() - startTime;
Таким образом, метод
System.currentTimeMillis() лучше применять для отображения и синхронизации абсолютного времени, а System.nanoTime() для измерения относительных интервалов времени.Java Learning 👩💻
👍8🔥2❤1
Что ты ожидаешь в результате выполнения этого кода?
public class Haha {
public static void main(String args[]) {
System.out.print("H" + "a");
System.out.print('H' + 'a');
}
}Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤1
Программисты часто не могут выбрать необходимую точность для чисел с плавающей запятой. Float требует всего 4 байта, но имеет только 7 значащих цифр, а Double в два раза точнее (15 цифр), но в два раза прожорливее.
Выбор правильной точности для решения реальных задач требует хорошего понимания природы машинных вычислений. Если у вас его нет, либо посоветуйтесь с кем-нибудь, либо изучите проблему самостоятельно, либо используйте Double и надейтесь на лучшее.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.
String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true
Выражение использует обработчик
STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, отвечающего за интерполяцию и валидацию.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😱2❤1
Но, возможно, вы не знали, что начиная с Java 8, интерфейсы могут иметь реализацию с помощью методов по умолчанию. Это позволяет добавлять новые методы в интерфейс, не разрушая код, который его уже реализует.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Запись файлов в Java осуществляется двумя способами:
FileOutputStream и FileWriter. Какой метод выбрать, зависит от конкретной задачи.FileOutputStream предназначен для записи необработанных байтовых потоков. Это делает его идеальным решением, например, для работы с изображениями.FileWriter другое призвание: работа с потоками символов. Поэтому, если вы пишете текстовые файлы, выберите этот метод.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4
Java всегда ставила акцент на эффективное управление ресурсами, и одна из лучших фишек, которая помогает разработчикам в этом — механизм try-with-resources, представленный в Java 7.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Мощное средство для работы с коллекциями — Stream API, которое трансформировало подход к обработке данных, сделав код более читаемым, коротким и улучшив его производительность за счёт возможности параллельной обработки.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😁2
В Java часто приходится сталкиваться с проблемой, когда метод возвращает
null, что может привести к NullPointerException. Чтобы избежать таких ситуаций, можно использовать класс Optional.null.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤2
Java Streams позволяют легко и эффективно работать с коллекциями данных, такими как списки, используя функциональный подход.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Часто возникает необходимость объединять несколько строк в одну, используя определенный разделитель.
StringBuilder. С появлением метода String.join, эта задача стала намного проще и лаконичнее.Использование метода String.join значительно упрощает задачу объединения строк с разделителем, делая код более читаемым и сокращая количество кода, которое нужно написать и поддерживать.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
В Java 14 был представлен Pattern Matching для оператора instanceof. Эта возможность упрощает и делает более читабельным код, который проверяет типы объектов и затем приводит их к этим типам.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23😢1
Please open Telegram to view this post
VIEW IN TELEGRAM
Sealed classes позволяют разработчикам ограничивать, какие классы могут наследоваться от конкретного класса или реализовывать интерфейс.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2