Play Framework
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
GitHub
GitHub - playframework/playframework: The Community Maintained High Velocity Web Framework For Java and Scala.
The Community Maintained High Velocity Web Framework For Java and Scala. - playframework/playframework
👍16
#Вопросы_с_собеседования
❓Зачем нужны и какие бывают блоки инициализации?
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в 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