#Вопросы_с_собеседования
❓Зачем нужны и какие бывают блоки инициализации?
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
❓Зачем нужны и какие бывают блоки инициализации?
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
👍19
Java 17 для тех, кто не следил. Часть 1
Уже вышла Java 18, но для всех, кто сидит на LTS, по-прежнему остаётся актуальной версия 17. Такие люди могут не отслеживать постоянно фичи каждой новой версии, а спокойно заниматься своими делами и иногда навёрстывать сразу всё.
https://habr.com/ru/company/jugru/blog/652821/
Уже вышла Java 18, но для всех, кто сидит на LTS, по-прежнему остаётся актуальной версия 17. Такие люди могут не отслеживать постоянно фичи каждой новой версии, а спокойно заниматься своими делами и иногда навёрстывать сразу всё.
https://habr.com/ru/company/jugru/blog/652821/
Хабр
Java 17 для тех, кто не следил. Часть 1
Уже вышла Java 18, но для всех, кто сидит на LTS, по-прежнему остаётся актуальной версия 17. Такие люди могут не отслеживать постоянно фичи каждой новой версии, а спокойно заниматься своими делами и...
👍17❤1
#Вопросы_с_собеседования
Когда в приложении может быть выброшено исключение ClassCastException?
Когда в приложении может быть выброшено исключение ClassCastException?
ClassCastException
(потомок RuntimeException
) - исключение, которое будет выброшено при ошибке приведения типа.👍19
#Вопросы_с_собеседования
❓Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?
Ответ на картинке.
❓Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?
Ответ на картинке.
👍32
Учебник по Java: списочный массив ArrayList
ArrayList – это реализация динамического использования массива в Java.
Смотреть статью
ArrayList – это реализация динамического использования массива в Java.
Смотреть статью
Библиотека программиста
☕ Учебник по Java: списочный массив ArrayList
В продолжении серии постов о языке программировании Java поговорим об ArrayList. Для чего он нужен и как его использовать.
👍14😱1
#Вопросы_с_собеседования
❓Как одним вызовом из List получить List со всеми элементами, кроме первых и последних 3-х?
Ответ на картинке.
❓Как одним вызовом из List получить List со всеми элементами, кроме первых и последних 3-х?
Ответ на картинке.
👍39
#Вопросы_с_собеседования
❓Что такое «fail-fast поведение»?
fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени.
В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (modification count):
• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
❓Что такое «fail-fast поведение»?
fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени.
В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
ConcurrentModificationException
, если после его создания была произведена модификация коллекции, т.е. добавлен или удален элемент напрямую из коллекции, а не используя методы итератора.Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (modification count):
• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
👍25❤1
#Вопросы_с_собеседования
Как вывести на экран 5 случайных чисел в порядке возрастания в одну строку?
Ответ на картинке.
Как вывести на экран 5 случайных чисел в порядке возрастания в одну строку?
Ответ на картинке.
👍49
Java RegEx: использование регулярных выражений на практике
Рассмотрим регулярные выражения в Java, затронув синтаксис и наиболее популярные конструкции, а также продемонстрируем работу RegEx на примерах.
Смотреть статью
Рассмотрим регулярные выражения в Java, затронув синтаксис и наиболее популярные конструкции, а также продемонстрируем работу RegEx на примерах.
Смотреть статью
Tproger
Регулярные выражения в Java: спецификации языка, примеры, задачи
Рассмотрим регулярные выражения в Java с учётом особенностей языка и с практическим применением для решения нескольких задач.
👍8
#Вопросы_с_собеседования
❓Как, используя LinkedHashMap, сделать кэш c «invalidation policy»?
Необходимо использовать LRU-алгоритм (Least Recently Used algorithm) и
Стоит заметить, что
❓Как, используя LinkedHashMap, сделать кэш c «invalidation policy»?
Необходимо использовать LRU-алгоритм (Least Recently Used algorithm) и
LinkedHashMap
с access-order. В этом случае при обращении к элементу он будет перемещаться в конец списка, а наименее используемые элементы будут постепенно группироваться в начале списка. Так же в стандартной реализации LinkedHashMap
есть метод removeEldestEntries()
, который возвращает true
, если текущий объект LinkedHashMap
должен удалить наименее используемый элемент из коллекции при использовании методов put()
и putAll()
.Стоит заметить, что
LinkedHashMap
не позволяет полностью реализовать LRU-алгоритм, поскольку при вставке уже имеющегося в коллекции элемента порядок итерации по элементам не меняется.👍12❤1
#Вопросы_с_собеседования
❓Зачем нужен HashMap, если есть Hashtable?
• Методы класса
•
• Iterator у
❓Зачем нужен HashMap, если есть Hashtable?
• Методы класса
Hashtable
синхронизированы, что приводит к снижению производительности, а HashMap
- нет;•
HashTable
не может содержать элементы null
, тогда как HashMap
может содержать один ключ null
и любое количество значений null
;• Iterator у
HashMap
, в отличие от Enumeration у HashTable
, работает по принципу «fail-fast» (выдает исключение при любой несогласованности данных).Hashtable
это устаревший класс и его использование не рекомендовано.👍31
Простой пример JDBC для начинающих
JDBC (Java DataBase Connectivity — соединение с базами данных на Java) предназначен для взаимодействия Java-приложения с различными системами управления базами данных (СУБД).
Смотреть статью
JDBC (Java DataBase Connectivity — соединение с базами данных на Java) предназначен для взаимодействия Java-приложения с различными системами управления базами данных (СУБД).
Смотреть статью
Хабр
Простой пример JDBC для начинающих
Здравствуйте! В этой статье я напишу простой пример соединения с базами данных на Java.Эта статья предназначена новичкам.Здесь я опишу каждую строчку объясню что...
👍18
#Вопросы_с_собеседования
❓Как получить коллекцию только для чтения?
При помощи:
•
❓Как получить коллекцию только для чтения?
При помощи:
•
Collections.unmodifiableList(list);
• Collections.unmodifiableSet(set);
• Collections.unmodifiableMap(map).
Эти методы принимают коллекцию в качестве параметра, и возвращают коллекцию только для чтения с теми же элементами внутри.👍33
Tapestry
Tapestry объектно-ориентированный Java фреймворк для создания веб-приложений, реализующих модель MVC. Tapestry был создан Howard Lewis Ship и продолжает активно развиваться. Фреймворк является проектом верхнего уровня в организации Apache Software Foundation.
Посмотреть документацию можно здесь.
Tapestry объектно-ориентированный Java фреймворк для создания веб-приложений, реализующих модель MVC. Tapestry был создан Howard Lewis Ship и продолжает активно развиваться. Фреймворк является проектом верхнего уровня в организации Apache Software Foundation.
Посмотреть документацию можно здесь.
👍19❤2
Что такое ReadWriteLock?
Существует реализующий интерфейс
ReadWriteLock
– это интерфейс расширяющий базовый интерфейс Lock
. Используется для улучшения производительности в многопоточном процессе и оперирует парой связанных блокировок (одна - для операций чтения, другая - для записи). Блокировка чтения может удерживаться одновременно несколькими читающими потоками, до тех пор, пока не появится записывающий. Блокировка записи является эксклюзивеной.Существует реализующий интерфейс
ReadWriteLock
класс ReentrantReadWriteLock
, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.👍19
JFreeChart
Библиотека для создания диаграмм прямо на Java — круговых, объёмных и линейных, а также графиков. Позволяет настраивать фон, оси, заголовки. Полученные диаграммы можно сохранять в JPEG и PNG форматы.
Посмотреть документацию можно здесь.
Библиотека для создания диаграмм прямо на Java — круговых, объёмных и линейных, а также графиков. Позволяет настраивать фон, оси, заголовки. Полученные диаграммы можно сохранять в JPEG и PNG форматы.
Посмотреть документацию можно здесь.
👍13