#вопросы_с_собеседований
Что такое ServletResponse?
Интерфейс ServletResponse используется для отправки данных клиенту. Все методы данного инструмента служат именно этой цели:
•
•
•
•
•
•
• и др.
Что такое ServletResponse?
Интерфейс ServletResponse используется для отправки данных клиенту. Все методы данного инструмента служат именно этой цели:
•
String getCharacterEncoding()
- возвращает MIME
тип кодировки (к примеру - UTF8
), в которой будет выдаваться информация;•
void setLocale(Locale locale)/Locale getLocale()
- указывают на язык используемый в документе;•
ServletOutputStream getOutputStream()/PrintWriter getWriter()
- возвращают потоки вывода данных;•
void setContentLength(int len)
- устанавливает значение поля HTTP
заголовка Content-Length
;•
void setContentType(String type)
- устанавливает значение поля HTTP
заголовка Content-Type
.•
void reset()
- позволяет сбросить HTTP
заголовок к значениям по-умолчанию, если он ещё не был отправлен• и др.
❓ Тест на знание алгоритмов и структур данных #2
Пришло время узнать, как хорошо вы разбираетесь в алгоритмах и структурах данных. Проверьте свои знания в нашем тесте из 10 вопросов. Сможете набрать максимальный балл?
🔗 Основной сайт
🔗 Зеркало
Пришло время узнать, как хорошо вы разбираетесь в алгоритмах и структурах данных. Проверьте свои знания в нашем тесте из 10 вопросов. Сможете набрать максимальный балл?
🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
В чем разница между композицией и агрегацией?
Ассоциация обозначает связь между объектами. Композиция и агрегация — частные случаи ассоциации «часть-целое».
Агрегация предполагает, что объекты связаны взаимоотношением «part-of» (часть). Композиция более строгий вариант агрегации. Дополнительно к требованию «part-of» накладывается условие, что экземпляр «части» может входить только в одно целое (или никуда не входить), в то время как в случае агрегации экземпляр «части» может входить в несколько целых.
Например, книга состоит из страниц, и мы не можем вырвать страницу из книги и вложить в другую книгу. Страницы четко привязаны к конкретной книге, поэтому это композиция. В тоже время мы можем взять и перенести книгу из одной библиотеки в другую - это уже агрегация.
В чем разница между композицией и агрегацией?
Ассоциация обозначает связь между объектами. Композиция и агрегация — частные случаи ассоциации «часть-целое».
Агрегация предполагает, что объекты связаны взаимоотношением «part-of» (часть). Композиция более строгий вариант агрегации. Дополнительно к требованию «part-of» накладывается условие, что экземпляр «части» может входить только в одно целое (или никуда не входить), в то время как в случае агрегации экземпляр «части» может входить в несколько целых.
Например, книга состоит из страниц, и мы не можем вырвать страницу из книги и вложить в другую книгу. Страницы четко привязаны к конкретной книге, поэтому это композиция. В тоже время мы можем взять и перенести книгу из одной библиотеки в другую - это уже агрегация.
#вопросы_с_собеседований
Что такое статическое и динамическое связывание?
Присоединение вызова метода к телу метода называется связыванием. Если связывание проводится компилятором (компоновщиком) перед запуском программы, то оно называется статическим или ранним связыванием (
В свою очередь, позднее связывание (
Для всех методов
Что такое статическое и динамическое связывание?
Присоединение вызова метода к телу метода называется связыванием. Если связывание проводится компилятором (компоновщиком) перед запуском программы, то оно называется статическим или ранним связыванием (
early binding
).В свою очередь, позднее связывание (
late binding
) это связывание, проводимое непосредственно во время выполнения программы, в зависимости от типа объекта. Позднее связывание также называют динамическим (dynamic
) или связыванием на стадии выполнения (runtime binding
). В языках, реализующих позднее связывание, должен существовать механизм определения фактического типа объекта во время работы программы, для вызова подходящего метода. Иначе говоря, компилятор не знает тип объекта, но механизм вызова методов определяет его и вызывает соответствующее тело метода. Механизм позднего связывания зависит от конкретного языка, но нетрудно предположить, что для его реализации в объекты должна включаться какая-то дополнительная информация.Для всех методов
Java
используется механизм позднего (динамического) связывания, если только метод не был объявлен как final
(приватные методы являются final
по умолчанию).Java 17: что нового по сравнению с Java 11
Версия Java 17 была выпущена не так уж давно. Отличие этого релиза в том, что это — новая LTS-версия (Long Term Support, с долговременной поддержкой) после Java 11.
https://nuancesprog.ru/p/16355/
Версия Java 17 была выпущена не так уж давно. Отличие этого релиза в том, что это — новая LTS-версия (Long Term Support, с долговременной поддержкой) после Java 11.
https://nuancesprog.ru/p/16355/
NOP::Nuances of programming
Java 17: что нового по сравнению с Java 11
Что может предложить разработчикам новая стабильная версия Java? Вкратце обрисуем самые важные функции, отличающие эти два релиза: Java 11 и 17.
🐕🖥️ 16 универсальных идей для пет-проектов вне зависимости от языка
Хотите создать что-нибудь эдакое, но вам не хватает фантазии и вдохновения? Держите 16 идей для разработки собственного проекта от «Библиотеки программиста».
🔗 Основной сайт
🔗 Зеркало
Хотите создать что-нибудь эдакое, но вам не хватает фантазии и вдохновения? Держите 16 идей для разработки собственного проекта от «Библиотеки программиста».
🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы Consumer<T>, DoubleConsumer, IntConsumer и LongConsumer?
Consumer<T> (потребитель) - интерфейс, с помощью которого реализуется функция, которая получает на вход экземпляр класса T, производит с ним некоторое действие и ничего не возвращает.
☕️ IntConsumer — потребитель, получающий на вход Integer;
☕️ LongConsumer — потребитель, получающий на вход Long.
Для чего нужны функциональные интерфейсы Consumer<T>, DoubleConsumer, IntConsumer и LongConsumer?
Consumer<T> (потребитель) - интерфейс, с помощью которого реализуется функция, которая получает на вход экземпляр класса T, производит с ним некоторое действие и ничего не возвращает.
Consumer<String> hello = (name) -> System.out.println("Hello, " + name);
hello.accept("world");
☕️ DoubleConsumer — потребитель, получающий на вход Double;☕️ IntConsumer — потребитель, получающий на вход Integer;
☕️ LongConsumer — потребитель, получающий на вход Long.
Что выведет программа?
Anonymous Quiz
56%
Error
39%
11 22 33
1%
11 33
1%
22 33
2%
null
2%
Два пробела
🎃 В честь Хэллоуина мы устраиваем распродажу на все курсы нашей школы Proglib.academy.
➡️ Скидка 50% действует до 31 октября, выбирай курсы по ссылке: https://proglib.io/w/fb35e277
👉🏻 Алгоритмы и структуры данных
👉🏻 Математика для Data Science
👉🏻 Основы IT для непрограммистов
👉🏻 Основы программирования на Python
👉🏻 Frontend Basic: принцип работы современного веба
➡️ Скидка 50% действует до 31 октября, выбирай курсы по ссылке: https://proglib.io/w/fb35e277
👉🏻 Алгоритмы и структуры данных
👉🏻 Математика для Data Science
👉🏻 Основы IT для непрограммистов
👉🏻 Основы программирования на Python
👉🏻 Frontend Basic: принцип работы современного веба
#вопросы_с_собеседований
Какие существуют модификаторы доступа?
private (приватный): члены класса доступны только внутри класса. Для обозначения используется служебное слово private.
default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется.
protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected.
public (публичный): класс/члены класса доступны всем. Для обозначения используется служебное слово public.
Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private.
Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).
Какие существуют модификаторы доступа?
private (приватный): члены класса доступны только внутри класса. Для обозначения используется служебное слово private.
default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется.
protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected.
public (публичный): класс/члены класса доступны всем. Для обозначения используется служебное слово public.
Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private.
Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).
"Вы - это будущее Java"! 😃
Так называется доклад на конференции JavaOne (LasVegas) о нескольких программах сообщества Java, которые дают разработчикам право голоса в формировании будущего Java.
Приятного просмотра!
Так называется доклад на конференции JavaOne (LasVegas) о нескольких программах сообщества Java, которые дают разработчикам право голоса в формировании будущего Java.
Приятного просмотра!
YouTube
The Future of Java is You | JavaOne 2022 Community Keynote
Not only does Oracle take our Java leadership seriously, we also embrace our stewardship of the Java community. As the Java language and platform evolves to rapidly address modern application development, Oracle continues to invest in the Java community to…
#вопросы_с_собеседований
Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer?
☕️
☕️
☕️
☕️
Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer?
☕️
InputStream
и его наследники нужны для получения байтовых данных из разных источников☕️
OutputStream
и его наследники — набор классов, определяющих потоковый байтовый вывод☕️
Writer
и его наследники определяют потоковый вывод символов в юникоде☕️
Reader
и его наследники определяют потоковый ввод символов в юникоде#вопросы_с_собеседований
Какими значениями инициализируются переменные по умолчанию?
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
Какими значениями инициализируются переменные по умолчанию?
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
Внутренний мир: Project Reactor
У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но все таки, как оно работает?".
https://habr.com/ru/post/694850/
У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но все таки, как оно работает?".
https://habr.com/ru/post/694850/
Хабр
Внутренний мир: Project Reactor
Привет, Хабр! У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу,...
Какой результат выведет следующая программа?
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()
вызываются на каждый запрос клиента и т.к. сервлеты используют многопоточность, то здесь задумываться о потокобезопасной работе обязательно. При этом правила использования многопоточности остаются теми же: локальные переменные этих методов будут созданы отдельно для каждого потока, а при использовании глобальных разделяемых ресурсов необходимо использовать синхронизацию или другие приёмы многопоточного программирования.