Spring: новости за прошедшую неделю / 18-е октября
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
This Week in Spring - October 18th, 2022
Level up your Java code and explore what Spring can do for you.
☕️ ТОП-10 IDE для Java-разработки
Обзор и сравнение лучших платных и бесплатных Java IDE и онлайн-компиляторов Java.
https://proglib.io/sh/cLdlhCxpSA
Обзор и сравнение лучших платных и бесплатных Java IDE и онлайн-компиляторов Java.
https://proglib.io/sh/cLdlhCxpSA
Библиотека программиста
☕ ТОП-10 IDE для Java-разработки
Обзор и сравнение лучших платных и бесплатных Java IDE и онлайн-компиляторов Java.
#вопросы_с_собеседований
Что представляет собой «обмен сообщениями»?
Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. В
Пусть требуется создать физическую модель, описывающую сталкивающиеся шары разных размеров. Традиционный подход к решению этой задачи примерно таков: определяется набор данных, описывающих каждый шар (например, его координаты, массу и ускорение); каждому шару присваивается уникальный идентификатор (например, организуется массив, значение индекса которого соответствует номеру шара), который позволит отличать каждый из шаров от всех других. Наконец, пишется подпрограмма с названием, скажем, bounce; эта процедура должна на основе номера шара и его начальных параметров соответствующим образом изменять данные, описывающие шар. В отличие от традиционного подхода объектно-ориентированная версия программы моделирует каждый из шаров посредством объекта. При этом объект, соответствующий конкретному шару, содержит не только его параметры, но и весь код, описывающий поведение шара при различных взаимодействиях. Так, каждый шар будет иметь собственный метод bounce(). Вместо того, чтобы вызывать подпрограмму bounce с аргументом, определяющим, скажем, шар №3, необходимо будет передать объекту «шар №3» сообщение, предписывающее ему выполнить столкновение.
Что представляет собой «обмен сообщениями»?
Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. В
ООП
посылка сообщения (вызов метода) — это единственный путь передать управление объекту. Если объект должен «отвечать» на это сообщение, то у него должна иметься соответствующий данному сообщению метод. Так же объекты, используя свои методы, могут и сами посылать сообщения другим объектам. Обмен сообщениями реализуется с помощью динамических вызовов, что приводит к чрезвычайно позднему связыванию (extreme late binding
).Пусть требуется создать физическую модель, описывающую сталкивающиеся шары разных размеров. Традиционный подход к решению этой задачи примерно таков: определяется набор данных, описывающих каждый шар (например, его координаты, массу и ускорение); каждому шару присваивается уникальный идентификатор (например, организуется массив, значение индекса которого соответствует номеру шара), который позволит отличать каждый из шаров от всех других. Наконец, пишется подпрограмма с названием, скажем, bounce; эта процедура должна на основе номера шара и его начальных параметров соответствующим образом изменять данные, описывающие шар. В отличие от традиционного подхода объектно-ориентированная версия программы моделирует каждый из шаров посредством объекта. При этом объект, соответствующий конкретному шару, содержит не только его параметры, но и весь код, описывающий поведение шара при различных взаимодействиях. Так, каждый шар будет иметь собственный метод bounce(). Вместо того, чтобы вызывать подпрограмму bounce с аргументом, определяющим, скажем, шар №3, необходимо будет передать объекту «шар №3» сообщение, предписывающее ему выполнить столкновение.
Учебные материалы по Spring Web MVC
Друзья, хотим предложить вам подборку материалов по Spring MVC, которая поможет начать изучение или закрепит базовые знания по этому фреймворку.
Приятного обучения!
https://howtodoinjava.com/series/spring-mvc-tutorials/
Друзья, хотим предложить вам подборку материалов по Spring MVC, которая поможет начать изучение или закрепит базовые знания по этому фреймворку.
Приятного обучения!
https://howtodoinjava.com/series/spring-mvc-tutorials/
HowToDoInJava
Spring MVC
Spring WebMVC (or Spring MVC) contains Spring's model-view-controller (MVC) and REST Web Services implementation for web applications.
Ключевое слово abstract в Java
abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract:
1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены).
2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract:
1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены).
2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
#вопросы_с_собеседований
Что такое 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: принцип работы современного веба