Что нужно вставить на 3-ю строку, чтобы вывод был “123abc 123abc”?
Anonymous Quiz
12%
sb1.append("abc"); s1.append("abc");
28%
sb1.append("abc"); s1.concat("abc");
5%
sb1.concat("abc"); s1.append("abc");
39%
sb1.append("abc"); s1 = s1.concat("abc");
16%
Посмотреть ответ
👍5😁3
#Вопросы_с_собеседования
❓Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
Таким образом, исходя из факта, что
❓Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).Таким образом, исходя из факта, что
FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.👍18
Какой результат выведет эта программа?
Anonymous Quiz
25%
Not equal
32%
Ошибку при выполнении
18%
Equal
26%
Ошибку при компиляции
👍9
#Вопросы_с_собеседования
👩💻 Опишите различные типы примитивов и объемы памяти, которые они занимают.
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