#Вопросы_с_собеседования
❓Зачем нужен 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
#Вопросы_с_собеседования
Правда ли, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных — в куче?
Ответ:
Нет. Примитивные поля экземпляра класса хранятся не в стеке, а в куче, а любой объект (всё, что создаётся при помощи оператора new) хранится в куче.
Правда ли, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных — в куче?
Ответ:
👍27👎6
java8-tutorial
Подробный гайд по Java 8, шаг за шагом описывающий все возможности и особенности Java. Короткие примеры грамотно иллюстрируют основные концепции: минимум текста, максимум наглядности. Данный репозиторий может быть как справочником, так и учебником.
https://github.com/winterbe/java8-tutorial
Подробный гайд по Java 8, шаг за шагом описывающий все возможности и особенности Java. Короткие примеры грамотно иллюстрируют основные концепции: минимум текста, максимум наглядности. Данный репозиторий может быть как справочником, так и учебником.
https://github.com/winterbe/java8-tutorial
GitHub
GitHub - winterbe/java8-tutorial: Modern Java - A Guide to Java 8
Modern Java - A Guide to Java 8. Contribute to winterbe/java8-tutorial development by creating an account on GitHub.
👍8😱2
Какова оценка временной сложности операций над элементами из HashMap? Гарантирует ли HashMap указанную сложность выборки элемента?
В общем случае операции добавления, поиска и удаления элементов занимают константное время.
Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).
Пример кода двоичного поиска приведен выше.
В общем случае операции добавления, поиска и удаления элементов занимают константное время.
Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).
Пример кода двоичного поиска приведен выше.
👍20
#Вопросы_с_собеседования
❓Сколько выделяется дополнительно памяти при вызове LinkedList.add()?
Ответ:
Создается один новый экземпляр вложенного класса Node.
❓Сколько выделяется дополнительно памяти при вызове LinkedList.add()?
Ответ:
👍25👎4
#Вопросы_с_собеседования
Что такое Spring Initializr?
Spring Initializr — это удобный способ создать проект на Spring Boot.
Для этого можно перейти на сайт Spring Initializr, выбрать инструмент управления зависимостями (Maven или Gradle), язык (Java, Kotlin или Groovy), схему упаковки (Jar или War), версию, зависимости и загрузить проект. Это создаст для нас каркас проекта и сэкономит время на настройку, поэтому мы сможем сосредоточиться на добавлении бизнес-логики.
Даже когда мы используем мастер создания нового проекта в IDE (например, STS или Eclipse с плагином STS) для создания проекта со Spring Boot, под капотом используется Spring Initializr.
Что такое Spring Initializr?
Spring Initializr — это удобный способ создать проект на Spring Boot.
Для этого можно перейти на сайт Spring Initializr, выбрать инструмент управления зависимостями (Maven или Gradle), язык (Java, Kotlin или Groovy), схему упаковки (Jar или War), версию, зависимости и загрузить проект. Это создаст для нас каркас проекта и сэкономит время на настройку, поэтому мы сможем сосредоточиться на добавлении бизнес-логики.
Даже когда мы используем мастер создания нового проекта в IDE (например, STS или Eclipse с плагином STS) для создания проекта со Spring Boot, под капотом используется Spring Initializr.
Spring Initializr
Initializr generates spring boot project with just what you need to start quickly!
👍20
#Вопросы_с_собеседования
❓Каким образом можно создать поток?
• Создать потомка класса
• Создать объект класса
• Вызвать метод
❓Каким образом можно создать поток?
• Создать потомка класса
Thread
и переопределить его метод run()
;• Создать объект класса
Thread
, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable
. Эти интерфейс содержит метод run()
, который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run()
.• Вызвать метод
submit()
у экземпляра класса реализующего интерфейс ExecutorService
, передав ему в качестве параметра экземпляр класса реализующего интерфейс Runnable
или Callable
(содержит метод call()
, в котором описывается логика выполнения).👍22
#Вопросы_с_собеседования
❓Как вывести на экран 10 случайных чисел, используя forEach()?
Ответ на картинке.
❓Как вывести на экран 10 случайных чисел, используя forEach()?
Ответ на картинке.
👍46