Какой результат выведет следующая программа?
Anonymous Quiz
8%
Hello
14%
Программа уйдет в бесконечный цикл
41%
Hello world
37%
Программа не скомпилируется
В чем разница между char и Character?
Anonymous Quiz
1%
нет разницы, они оба примитивные типы
4%
char является классом, а Character примитивным типом
1%
нет разницы, они оба классы
94%
char является примитивным типом, а Character классом
Стоит ли волноваться о многопоточной безопасности, работая с сервлетами?
Методы
Методы
Методы
init()
и destroy()
вызываются один раз за жизненный цикл сервлета — поэтому по поводу них беспокоиться не стоит.Методы
doGet()
, doPost()
, service()
вызываются на каждый запрос клиента и т.к. сервлеты используют многопоточность, то здесь задумываться о потокобезопасной работе обязательно. При этом правила использования многопоточности остаются теми же: локальные переменные этих методов будут созданы отдельно для каждого потока, а при использовании глобальных разделяемых ресурсов необходимо использовать синхронизацию или другие приёмы многопоточного программирования.Каких знаний вам не хватает?
Расскажите в комментариях ⬇️
Расскажите в комментариях ⬇️
Где и для чего используется модификатор abstract?
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Дайте определение понятию «интерфейс». Какие модификаторы по умолчанию имеют поля и методы интерфейсов?
Ключевое слово
Начиная с
Интерфейс также может содержать и поля. В этом случае они автоматически являются публичными
Ключевое слово
interface
используется для создания полностью абстрактных классов. Основное предназначение интерфейса - определять каким образом мы можем использовать класс, который его реализует. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не реализует их поведение. Все методы неявно объявляются как public
.Начиная с
Java 8
в интерфейсах разрешается размещать реализацию методов по умолчанию default
и статических static
методов.Интерфейс также может содержать и поля. В этом случае они автоматически являются публичными
public
, статическими static
и неизменяемыми final
.#вопросы_с_собеседований
В чем разница между PrintWriter и ServletOutputStream?
В чем разница между PrintWriter и ServletOutputStream?
PrintWriter
— класс для работы с символьным потоком, экземпляр которого можно получить через метод ServletResponse getWriter()
;ServletOutputStream
— класс для работы байтовым потоком. Для получения его экземпляра используется метод ServletResponse getOutputStream()
.Друзья, пришло время вспомнить многопоточность
Предложенный сегодня доклад раскроет следующие темы:
✔️ Разница между файбером и зеленым потоком
✔️ Типы пулов потоков и как много из них мы должны использовать?
✔️ Можем ли мы использовать не блокирующие соединения с БД?
и д. р.
Приятного просмотра!
Предложенный сегодня доклад раскроет следующие темы:
✔️ Разница между файбером и зеленым потоком
✔️ Типы пулов потоков и как много из них мы должны использовать?
✔️ Можем ли мы использовать не блокирующие соединения с БД?
и д. р.
Приятного просмотра!
YouTube
Modern JVM Multithreading • Paweł Jurczenko • Devoxx Poland 2021
Subscribe to our channel: https://youtube.pl/c/DevoxxPoland?sub_confirmation=1
In this presentation I will show what might be taken into consideration when writing a modern JVM application. What are the differences between green threads and fibers? What…
In this presentation I will show what might be taken into consideration when writing a modern JVM application. What are the differences between green threads and fibers? What…
Security, Cloud с JWT и WebFlux
Spring Security - довольно крутая штука, на тему которой много гайдов, статей на различных платформах. Но проблема в том, что множество этих видео ограничивается монолитной архитектурой. В этой статье я хочу рассказать о своем личном опыте применения ее для микросервисов. Конечно, это не статья уровня Тагира Валеева. Это исключительно личный опыт, которым хотелось бы поделиться, и может быть, кому то он окажется полезным.
https://habr.com/ru/post/697098/
Spring Security - довольно крутая штука, на тему которой много гайдов, статей на различных платформах. Но проблема в том, что множество этих видео ограничивается монолитной архитектурой. В этой статье я хочу рассказать о своем личном опыте применения ее для микросервисов. Конечно, это не статья уровня Тагира Валеева. Это исключительно личный опыт, которым хотелось бы поделиться, и может быть, кому то он окажется полезным.
https://habr.com/ru/post/697098/
Хабр
Security, Cloud с JWT и WebFlux
Spring Security - довольно крутая штука, на тему которой много гайдов, статей на различных платформах. Но проблема в том, что множество этих видео ограничивается монолитной архитектурой. В этой статье...
#вопросы_с_собеседований
Чем CompletableFuture отличается от Future?
В Java 9 прогресс пошел дальше, и появилась библиотека Flow API. Это встроенная реализация реактивных стримов. Реактивный стрим, сильно упрощая, – это более общий случай, последовательность отложенных значений. Другая их реализация – популярная, но не входящая в стандарт библиотека Reactive Extensions (RxJava).
Чем CompletableFuture отличается от Future?
Future
– интерфейс, который представляет пока еще недовычисленный результат. Когда породившая его асинхронная операция заканчивается, он заполняется значением. Метод get
блокирует выполнение до получения результата, isDone
проверяет его наличие. К примеру результат выполнения задач в ExecutorService
, ForkJoinTask
, реализует интерфейс Future
.CompletableFuture
появился в Java 8. Это класс-реализация старого интерфейса Future
, а значит всё сказанное выше справедливо и для него. Вдобавок к этому, CompletableFuture
реализует работу с отложенными результатами посредством коллбэков. Метод thenApply
регистрирует код обработки значения, который будет автоматически вызван позже, когда это значение появится.В Java 9 прогресс пошел дальше, и появилась библиотека Flow API. Это встроенная реализация реактивных стримов. Реактивный стрим, сильно упрощая, – это более общий случай, последовательность отложенных значений. Другая их реализация – популярная, но не входящая в стандарт библиотека Reactive Extensions (RxJava).
Oracle
Reactive Programming with JDK 9 Flow API
Reactive programming is about processing an asynchronous stream of data items, where applications react to the data items as they occur. This article by Rahul Srivastava presents an example using the JDK 9 Flow API.
Что выведет программа?
Anonymous Quiz
10%
FRIENDS
5%
ENEMY
1%
Ничего
67%
FRIENDS (бесконечно)
16%
Error
#вопросы_с_собеседований
Почему нельзя объявить метод интерфейса с модификатором final?
В случае интерфейсов указание модификатора
Почему нельзя объявить метод интерфейса с модификатором final?
В случае интерфейсов указание модификатора
final
бессмысленно, т.к. все методы интерфейсов неявно объявляются как абстрактные, т.е. их невозможно выполнить, не реализовав где-то еще, а этого нельзя будет сделать, если у метода идентификатор final
.#вопросы_с_собеседований
В чём заключаются различия между java.util.concurrent.Atomic*.compareAndSwap() и java.util.concurrent.Atomic*.weakCompareAndSwap()?
☕️ weakCompareAndSwap() не создает memory barrier и не дает гарантии happens-before;
☕️ weakCompareAndSwap() сильно зависит от кэша/CPU, и может возвращать false без видимых причин;
☕️ weakCompareAndSwap(), более легкая, но поддерживаемая далеко не всеми архитектурами и не всегда эффективная операция.
В чём заключаются различия между java.util.concurrent.Atomic*.compareAndSwap() и java.util.concurrent.Atomic*.weakCompareAndSwap()?
☕️ weakCompareAndSwap() не создает memory barrier и не дает гарантии happens-before;
☕️ weakCompareAndSwap() сильно зависит от кэша/CPU, и может возвращать false без видимых причин;
☕️ weakCompareAndSwap(), более легкая, но поддерживаемая далеко не всеми архитектурами и не всегда эффективная операция.
Reverse-инжиниринг “чёрного ящика”: зачем поддержке исходный код?
https://habr.com/ru/company/glowbyte/blog/698576/
https://habr.com/ru/company/glowbyte/blog/698576/
Хабр
Reverse-инжиниринг “чёрного ящика”: зачем поддержке исходный код?
Всем привет! Мы команда сопровождения GlowByte, занимаемся решением багов в различных системах крупного бизнеса. Большая часть продуктов, которые мы поддерживаем, – это маркетинговые комплексы банков,...
#вопросы_с_собеседований
Что такое «сессия»?
Сессия - это сеанс связи между клиентом и сервером, устанавливаемый на определенное время. Сеанс устанавливается непосредственно между клиентом и веб-сервером в момент получения первого запроса к веб-приложению. Каждый клиент устанавливает с сервером свой собственный сеанс, который сохраняется до окончания работы с приложением.
Что такое «сессия»?
Сессия - это сеанс связи между клиентом и сервером, устанавливаемый на определенное время. Сеанс устанавливается непосредственно между клиентом и веб-сервером в момент получения первого запроса к веб-приложению. Каждый клиент устанавливает с сервером свой собственный сеанс, который сохраняется до окончания работы с приложением.
#вопросы_с_собеседований
Как уведомить объект в сессии, что сессия недействительна или закончилась?
Чтобы быть уверенным в том, что объект будет оповещён о прекращении сессии, нужно реализовать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() используются при добавлении объекта в качестве атрибута к сессии и при уничтожении сессии соответственно.
Как уведомить объект в сессии, что сессия недействительна или закончилась?
Чтобы быть уверенным в том, что объект будет оповещён о прекращении сессии, нужно реализовать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() используются при добавлении объекта в качестве атрибута к сессии и при уничтожении сессии соответственно.