Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Throwable:-
getMessage(): Возвращает сообщение об ошибке, которое было передано при создании исключения. -
getCause(): Возвращает причину исключения, если она была указана. -
printStackTrace(): Выводит стек вызовов, который привел к исключению. -
getStackTrace(): Возвращает массив элементов StackTraceElement, представляющих стек вызовов. -
toString(): Возвращает строковое представление исключения, включая его класс и сообщение.
try {
// код, который может вызвать исключение
} catch (Exception e) {
System.out.println(e.getMessage()); // вывод сообщения об ошибке
e.printStackTrace(); // вывод стека вызовов
}
Эти методы помогают анализировать и обрабатывать исключения в приложениях.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
new, за которым следует вызов конструктора класса. Конструктор может быть как по умолчанию, так и пользовательским.
ClassName obj = new ClassName();
Если класс имеет параметризованный конструктор, объект создается с передачей аргументов:
ClassName obj = new ClassName(arg1, arg2);
Пример с классом
Person:
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Person person = new Person("Alice", 30);
Объект создается в куче, а переменная
person хранит ссылку на этот объект.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
continue используется в циклах для пропуска текущей итерации и перехода к следующей. Когда встречается continue, выполнение кода внутри цикла прерывается, и управление передается на следующую итерацию.
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // Пропустить итерацию при i == 2
}
System.out.println(i); // Выведет 0, 1, 3, 4
}
Этот оператор полезен, когда нужно пропустить выполнение части кода при определенных условиях.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Comparable и Comparator используются для сравнения объектов, но имеют разные подходы.Comparable — это интерфейс, который реализуется самим классом. Он содержит метод compareTo, определяющий естественный порядок сортировки объектов.
class Person implements Comparable<Person> {
private String name;
public int compareTo(Person other) {
return this.name.compareTo(other.name);
}
}
Comparator — это отдельный интерфейс, который позволяет определять различные способы сортировки без изменения класса. Реализуется в виде отдельного класса или лямбда-выражения.
Comparator<Person> byName = (p1, p2) -> p1.getName().compareTo(p2.getName());
Comparable задает естественный порядок, а Comparator предоставляет гибкость для множества вариантов сортировки.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Анонимный класс создает новый класс на лету с полным синтаксисом:
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Running");
}
};
Лямбда-выражение предоставляет более компактный синтаксис для реализации функционального интерфейса:
Runnable r = () -> System.out.println("Running");
Лямбда-выражения не создают новый объект класса, что делает их более эффективными по памяти. Они также улучшают читаемость кода, особенно для простых операций. Анонимные классы могут использоваться для более сложных сценариев, где требуется несколько методов или состояние.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
super используется для обращения к родительскому классу. Оно имеет два основных применения:1. Вызов конструктора родительского класса:
public class Child extends Parent {
public Child() {
super(); // Вызов конструктора родительского класса
// или super(параметры) для вызова конкретного конструктора
}
}
2. Обращение к методам или полям родительского класса:
public class Child extends Parent {
@Override
public void display() {
super.display(); // Вызов метода родительского класса
System.out.println("Дополнительная логика");
}
public void accessField() {
System.out.println(super.field); // Доступ к полю родительского класса
}
}
super особенно полезен при переопределении методов, когда нужно расширить, а не полностью заменить поведение родительского класса.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
r и ListIterator - интерфейсы для перебора элементов коллекций, но с существенными различиями:1. Направление обхода:
- Iterator: только вперед (методы hasNext(), next()) - ListIterator: в обоих направлениях (дополнительно hasPrevious(), previous())2. Позиционирование:
- ListIterator позволяет узнать текущую позицию (nextIndex(), previousIndex())3. Модификация:
- Iterator: только удаление (remove()) - ListIterator: удаление, добавление (add()) и замена (set())4. Применимость:
- Iterator: для любых коллекций - ListIterator: только для списков (List)
List<String> list = new ArrayList<>();
// Получение итераторов
Iterator<String> iterator = list.iterator();
ListIterator<String> listIterator = list.listIterator();
ListIterator предоставляет больше возможностей, но применим только к спискам.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Writer и предоставляет методы для печати различных типов данных.Основные особенности:
- Автоматическая обработка исключений (не выбрасывает IOException)
- Методы print() и println() для разных типов данных
- Возможность автоматического сброса буфера (autoFlush)
- Поддержка форматирования через printf() и format()
// Запись в файл
try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
writer.println("Привет, мир!"); // Запись строки с переносом
writer.print(42); // Запись числа без переноса
writer.printf("Число Pi: %.2f", Math.PI); // Форматированный вывод
}
// Запись в консоль
PrintWriter consoleWriter = new PrintWriter(System.out, true); // autoFlush=true
consoleWriter.println("Текст в консоль");
PrintWriter часто используется для создания текстовых файлов и форматированного вывода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Хранение данных:
Производительность:
Дополнительные возможности:
Выбор между ними зависит от необходимости сортировки и производительности.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
- HashMap использует хеш-таблицу, элементы хранятся без гарантии порядка.
- TreeMap основан на красно-черном дереве, элементы сортируются по ключам (естественный порядок или Comparator). Производительность:
- HashMap обеспечивает O(1) для операций put() и get() в среднем случае.
- TreeMap имеет O(log n) для этих операций из-за необходимости поддерживать упорядоченность. Дополнительные возможности:
- TreeMap предоставляет методы для работы с отсортированными данными (firstKey(), lastKey(), headMap(), tailMap()).
- HashMap позволяет использовать null в качестве ключа и значения, TreeMap — только в качестве значения.
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("key", 1); // порядок не гарантируется
Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("key", 1); // автоматическая сортировка
Выбор между ними зависит от необходимости сортировки и производительности.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Автоматическая буферизация:
Удобные методы записи:
Поддерживает методы
Гибкость работы с разными источниками:
Может писать в
Обработка ошибок:
Автоматически проверяет ошибки через
Используется для удобного и эффективного вывода текстовых данных.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
PrintWriter оборачивает выходные потоки, уменьшая количество операций ввода-вывода за счет буферизации. Удобные методы записи:
Поддерживает методы
print(), println(), printf() для простого форматированного вывода данных. Гибкость работы с разными источниками:
Может писать в
OutputStream (байтовые потоки) или Writer (символьные потоки), включая файлы, сокеты и консоль. Обработка ошибок:
Автоматически проверяет ошибки через
checkError(), упрощая отладку.
PrintWriter writer = new PrintWriter("output.txt");
writer.println("Text"); // запись с переводом строки
writer.printf("Formatted: %d", 123); // форматированный вывод
writer.close();
Используется для удобного и эффективного вывода текстовых данных.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
this — это ключевое слово, которое ссылается на текущий объект, в контексте которого выполняется метод или конструктор. Оно используется для различения полей класса от параметров метода или конструктора, когда их имена совпадают.public class Example {
private int value;
public Example(int value) {
this.value = value; // 'this.value' — поле класса, 'value' — параметр конструктора
}
public void setValue(int value) {
this.value = value; // 'this.value' — поле класса, 'value' — параметр метода
}
}this также может быть использовано для вызова других конструкторов в том же классе.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7