В поисках работы Java программистом? Тогда тебе точно нужен наш канал!
Забудь о трате драгоценного времени на поиск работы. Мы ежедневно обновляем наш канал самыми свежими и интересными вакансиями от российских и зарубежных компаний.
У нас ты найдешь работу для любого уровня подготовки и индивидуальной специализации.
Кроме того, мы постоянно следим за рынком и выбираем для тебя только наиболее выгодные и перспективные предложения.
Присоединяйся к нашему каналу с Java вакансиями и найди работу своей мечты уже сегодня!
Забудь о трате драгоценного времени на поиск работы. Мы ежедневно обновляем наш канал самыми свежими и интересными вакансиями от российских и зарубежных компаний.
У нас ты найдешь работу для любого уровня подготовки и индивидуальной специализации.
Кроме того, мы постоянно следим за рынком и выбираем для тебя только наиболее выгодные и перспективные предложения.
Присоединяйся к нашему каналу с Java вакансиями и найди работу своей мечты уже сегодня!
Как построить архитектуру сервиса, которые выдержит высокую загрузку? Начните погружение в Highload-архитектуру на открытых уроках онлайн-курса «Highload Architect» в OTUS. Они рассчитаны на веб-разработчиков, тимлидов команд веб-разработки, архитекторов, технических руководителей и специалистов, которые интересуются SRE или работают в этой области.
🗓 31 марта в 20:00 мск — «Когда нужны микросервисы, а когда монолиты»
Обсудим способы выбора между монолитной или микросервисной архитектурой, подходы и бенефиты, которые получаем от каждой из этих архитектур.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/qj5y/
🗓 14 апреля в 20:00 мск — «Twitter-like архитектура приложений»
Спроектируем типовую архитектуру нагруженного twitter-like приложения, определим пользовательские сценарии и узкие места прототипа.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/VO7y/
После занятий вы сможете продолжить обучение на курсе, доступном в рассрочку. Не упустите возможность пообщат...
🗓 31 марта в 20:00 мск — «Когда нужны микросервисы, а когда монолиты»
Обсудим способы выбора между монолитной или микросервисной архитектурой, подходы и бенефиты, которые получаем от каждой из этих архитектур.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/qj5y/
🗓 14 апреля в 20:00 мск — «Twitter-like архитектура приложений»
Спроектируем типовую архитектуру нагруженного twitter-like приложения, определим пользовательские сценарии и узкие места прототипа.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/VO7y/
После занятий вы сможете продолжить обучение на курсе, доступном в рассрочку. Не упустите возможность пообщат...
Прокачай свои знания в архитектуре современных распределенных систем
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, зачем и как правильно использовать паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию с паттерном Saga или двухфазным коммитом
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут инженеры из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля!❗️
Переходи по ссылке и подавай заявку!
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, зачем и как правильно использовать паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию с паттерном Saga или двухфазным коммитом
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут инженеры из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля!❗️
Переходи по ссылке и подавай заявку!
Прокачай свои знания в архитектуре современных распределенных систем
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, где и как правильно применять паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, где и как правильно применять паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Media is too big
VIEW IN TELEGRAM
JAVA SPRING TRANSACTIONAL: ОСНОВЫ ТРАНЗАКЦИЙ ЗА 7 МИНУТ
00:00 - Определение транзакции, схематичный пример
00:46 - Свойство транзакции
00:59 - Знакомство с кодовой базой
02:05 - Пример, где нужна аннотация Transactional
03:10 - Вызов в пределах одного класса
04:04 - Обработка не всех исключений
04:47 - Область видимости метода
05:10 - Транзакция занимает соединение с БД
06:25 - Повторяем
Код примера: https://github.com/dispikerton/transactional
источник
👉@BookJava
00:00 - Определение транзакции, схематичный пример
00:46 - Свойство транзакции
00:59 - Знакомство с кодовой базой
02:05 - Пример, где нужна аннотация Transactional
03:10 - Вызов в пределах одного класса
04:04 - Обработка не всех исключений
04:47 - Область видимости метода
05:10 - Транзакция занимает соединение с БД
06:25 - Повторяем
Код примера: https://github.com/dispikerton/transactional
источник
👉@BookJava
Как построить архитектуру сервиса, которые выдержит высокую загрузку? Начните погружение в Highload-архитектуру на открытых уроках онлайн-курса «Highload Architect» в OTUS. Они рассчитаны на веб-разработчиков, тимлидов команд веб-разработки, архитекторов, технических руководителей и специалистов, которые интересуются SRE или работают в этой области.
🗓 31 марта в 20:00 мск — «Когда нужны микросервисы, а когда монолиты»
Обсудим способы выбора между монолитной или микросервисной архитектурой, подходы и бенефиты, которые получаем от каждой из этих архитектур.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/wV8x/
🗓 14 апреля в 20:00 мск — «Twitter-like архитектура приложений»
Спроектируем типовую архитектуру нагруженного twitter-like приложения, определим пользовательские сценарии и узкие места прототипа.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/i1Bq/
После занятий вы сможете продолжить обучение на курсе, доступном в рассрочку. Не упустите возможность пообщат...
🗓 31 марта в 20:00 мск — «Когда нужны микросервисы, а когда монолиты»
Обсудим способы выбора между монолитной или микросервисной архитектурой, подходы и бенефиты, которые получаем от каждой из этих архитектур.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/wV8x/
🗓 14 апреля в 20:00 мск — «Twitter-like архитектура приложений»
Спроектируем типовую архитектуру нагруженного twitter-like приложения, определим пользовательские сценарии и узкие места прототипа.
👉 Для записи на урок, пройдите вступительный тест — https://otus.pw/i1Bq/
После занятий вы сможете продолжить обучение на курсе, доступном в рассрочку. Не упустите возможность пообщат...
Методы start и end
Выше представлен пример, в котором производится подсчет количества раз, когда в строке ввода встречается слово "кот".
Как видим, в данном примере используются границы слов с целью удостоверения в том, что буквы "c" "a" "t" не являются частью другого слова. Также отображаются определенные полезные сведения касательно нахождения совпадения в вводимой строке.
Метод start производит возврат начального индекса в последовательности, захваченной в данной группе в ходе предыдущей операции поиска совпадений, а end производит возврат индекса к последнему совпавшему символу, плюс один.
Выше представлен пример, в котором производится подсчет количества раз, когда в строке ввода встречается слово "кот".
Как видим, в данном примере используются границы слов с целью удостоверения в том, что буквы "c" "a" "t" не являются частью другого слова. Также отображаются определенные полезные сведения касательно нахождения совпадения в вводимой строке.
Метод start производит возврат начального индекса в последовательности, захваченной в данной группе в ходе предыдущей операции поиска совпадений, а end производит возврат индекса к последнему совпавшему символу, плюс один.
Java developer (middle, senior)
#офис #полныйдень
Локация: Новосибирск, Москва
Обязанности:
- задачи в рамках опенсорс проектов по оптимизация распределенных алгоритмов. Если у вас не было опыта работы в них, мы готовы вас обучить.
Требования:
- Опыт Backend разработки на Java, Kotlin, Scala
- уверенное знание принципов работы JVM
Будет плюсом:
- знание BigData
- знакомство с фреймворками (Spark, Flink, Hadoop, Hudi, Nifi, Kafka, ES и пр.)
-глубокое понимание принципов построения баз данных
- опыт низкоуровневой оптимизации Java
- опыт написания своих парсеров и оптимизаторов (SQL или любого другого языка)
Откликнуться: @Svetlanakachar
#офис #полныйдень
Локация: Новосибирск, Москва
Обязанности:
- задачи в рамках опенсорс проектов по оптимизация распределенных алгоритмов. Если у вас не было опыта работы в них, мы готовы вас обучить.
Требования:
- Опыт Backend разработки на Java, Kotlin, Scala
- уверенное знание принципов работы JVM
Будет плюсом:
- знание BigData
- знакомство с фреймворками (Spark, Flink, Hadoop, Hudi, Nifi, Kafka, ES и пр.)
-глубокое понимание принципов построения баз данных
- опыт низкоуровневой оптимизации Java
- опыт написания своих парсеров и оптимизаторов (SQL или любого другого языка)
Откликнуться: @Svetlanakachar
JUnit
JUnit — свободный Java-фреймворк для создания модульных тестов (они же — юнит-тесты). Эта библиотека — одна из самых популярных, её используют почти все. Рекомендуем вам разобраться с ней как можно быстрее, поскольку очень часто начинающих Java-разработчиков и Java Trainee заставляют «покрывать код тестами». И, надо сказать, это далеко не самое плохое начало карьеры.
Больше информации о Junit можно найти здесь.
JUnit — свободный Java-фреймворк для создания модульных тестов (они же — юнит-тесты). Эта библиотека — одна из самых популярных, её используют почти все. Рекомендуем вам разобраться с ней как можно быстрее, поскольку очень часто начинающих Java-разработчиков и Java Trainee заставляют «покрывать код тестами». И, надо сказать, это далеко не самое плохое начало карьеры.
Больше информации о Junit можно найти здесь.
👩💻 Java. Об Iterator и Iterable c примерами.
В данном видео объясняется что такое паттерн Iterator и интерфейс Iterable в языке программирования Java. На примерах показывается для чего нужен Iterator и как его использовать. Рассматривается так же вопрос удаления и вставки элементов в LinkedList за константное время.
В данном видео объясняется что такое паттерн Iterator и интерфейс Iterable в языке программирования Java. На примерах показывается для чего нужен Iterator и как его использовать. Рассматривается так же вопрос удаления и вставки элементов в LinkedList за константное время.
YouTube
Java. Об Iterator и Iterable c примерами.
В данном видео объясняется что такое паттерн Iterator и интерфейс Iterable в языке программирования Java. На примерах показывается для чего нужен Iterator и как его использовать. Рассматривается так же вопрос удаления и вставки элементов в LinkedList за константное…
Java разработчик (middle+/senior)
#удаленка #полныйдень
ЗП: 3000$ - 3900$
Локация: Беларусь
Компания: Dev Team Inc
Обязанности::
Оформленного списка задач нет, но из того что в планах:
- настройка архитектуры Dev In test окружения (включая CI/CD процессов)
- взаимодействие с AI движком и написание различных интеграций (возможность прокачки в этом направлении)
- большая часть задач будет связана с рутинными задачами по разработке (так как есть множество мест, где нужна помощь другим разработчикам)
Требования:
- опыт работы от 4-х лет в разработке web-приложений на Java
- уверенные знания фреймворка Spring (Boot, Core, MVC, JDBC, Security);
- клиент-серверные приложения, использующие JSON/XML и REST API;
- опыт работы в ORM: JPA, Hibernate;
- хорошие знания MySQL/PostgreSQL
- знания wiki систем (Confluence), систем управления проектами Jira, IDE Idea, Bitbucket-Git
- Английский уровня intermediate или выше.
Откликнуться: @andrey_poklyak
#удаленка #полныйдень
ЗП: 3000$ - 3900$
Локация: Беларусь
Компания: Dev Team Inc
Обязанности::
Оформленного списка задач нет, но из того что в планах:
- настройка архитектуры Dev In test окружения (включая CI/CD процессов)
- взаимодействие с AI движком и написание различных интеграций (возможность прокачки в этом направлении)
- большая часть задач будет связана с рутинными задачами по разработке (так как есть множество мест, где нужна помощь другим разработчикам)
Требования:
- опыт работы от 4-х лет в разработке web-приложений на Java
- уверенные знания фреймворка Spring (Boot, Core, MVC, JDBC, Security);
- клиент-серверные приложения, использующие JSON/XML и REST API;
- опыт работы в ORM: JPA, Hibernate;
- хорошие знания MySQL/PostgreSQL
- знания wiki систем (Confluence), систем управления проектами Jira, IDE Idea, Bitbucket-Git
- Английский уровня intermediate или выше.
Откликнуться: @andrey_poklyak
#статья
Кто такой тим-лидер и чем он занимается?
Глава, руководитель, менеджер, босс, как только не называют тим-лидера.
Пришло время расставить все точки над i, рассказали об обязанностях тим-лидера в нашей статье
Ещё больше интересных статей и полезной информации вы можете читать на нашем Яндекс Дзен канале!
Кто такой тим-лидер и чем он занимается?
Глава, руководитель, менеджер, босс, как только не называют тим-лидера.
Пришло время расставить все точки над i, рассказали об обязанностях тим-лидера в нашей статье
Ещё больше интересных статей и полезной информации вы можете читать на нашем Яндекс Дзен канале!
This media is not supported in your browser
VIEW IN TELEGRAM
😎Хотите расширить свой стек языком Clojure? Приходите на бесплатный вебинар «Разработка скриптов на Clojure», приуроченный к старту онлайн-курса «Clojure Developer» в OTUS.
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение: https://otus.pw/TutR/
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение: https://otus.pw/TutR/
Что такое cookies?
• аутентификации пользователя;
• хранения персональных предпочтений и настроек пользователя;
• отслеживания состояния сеанса доступа пользователя;
• ведения разнообразной статистики.
Сookies («куки») — небольшой фрагмент данных, отправленный web-сервером и хранимый на устройстве пользователя. Всякий раз при попытке открыть страницу сайта, web-клиент пересылает соответствующие этому сайту cookies web-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя и на практике обычно используется для:• аутентификации пользователя;
• хранения персональных предпочтений и настроек пользователя;
• отслеживания состояния сеанса доступа пользователя;
• ведения разнообразной статистики.
51 Java -Spring Boot- Лучшие практики для разработчиков приложений
1.Использовать внешний сервер конфигурации
2. Используйте правильные зависимости
3. Сохраняйте модульность приложения
4. Используйте кэширование с умом
5. Контролируйте и протоколируйте свое приложение
6. Используйте последовательный стиль кода
7. Пишите модульные и интеграционные тесты
8. Используйте балансировщик нагрузки
9. Используйте последовательный формат протоколирования
10. Используйте инструмент мониторинга
11. Используйте инструмент сборки
12. Используйте инструмент версионирования кода
13. Использовать IDE
14. Использовать форматтер кода
15. Используйте линкер кода
16. Используйте клиентскую библиотеку HTTP
17. Использовать библиотеку JSON
18. Использовать пул соединений с базой данных
19. Использовать библиотеку безопасности
20. Использовать библиотеку тестирования
21. Использовать фреймворк для инъекции зависимостей
22. Используйте клиентскую библиотеку REST
23. Используйте брокер сообщений
24. Используйте профилировщик
25. Используйте инструмент обзора кода
26. Используйте инструмент статического анализа
27. Используйте инструмент покрытия кода
28. Используйте инструмент непрерывной интеграции
29. Используйте инструмент развертывания
30. Используйте инструмент управления конфигурацией
31. Использовать инструмент контейнеризации
32. Использовать облачную платформу
33. Использовать инструмент миграции баз данных
34. Использовать веб-сервер
35. Использовать инструмент CI/CD
36. Использовать обратный прокси-сервер HTTP
37. Используйте профилировщик JVM
38. Используйте профилировщик базы данных
39. Используйте инструмент нагрузочного тестирования
40. Используйте инструмент непрерывной доставки
41. Используйте API-шлюз
42. Используйте очередь сообщений
43. Используйте сетку сервисов
44. Используйте инструмент управления конфигурацией
45. Используйте конвейер развертывания
46. Использование Swagger для документации Api
47. Использование актуатора
48. Использование AOP
49. Использование рулевых диаграмм
50. Использование распределенной трассировки
51. Использование Lombok
https://connect2grp.medium.com/51-java-spring-boot-best-practices-for-application-developers-cafff2766896
👉@BookJava
1.Использовать внешний сервер конфигурации
2. Используйте правильные зависимости
3. Сохраняйте модульность приложения
4. Используйте кэширование с умом
5. Контролируйте и протоколируйте свое приложение
6. Используйте последовательный стиль кода
7. Пишите модульные и интеграционные тесты
8. Используйте балансировщик нагрузки
9. Используйте последовательный формат протоколирования
10. Используйте инструмент мониторинга
11. Используйте инструмент сборки
12. Используйте инструмент версионирования кода
13. Использовать IDE
14. Использовать форматтер кода
15. Используйте линкер кода
16. Используйте клиентскую библиотеку HTTP
17. Использовать библиотеку JSON
18. Использовать пул соединений с базой данных
19. Использовать библиотеку безопасности
20. Использовать библиотеку тестирования
21. Использовать фреймворк для инъекции зависимостей
22. Используйте клиентскую библиотеку REST
23. Используйте брокер сообщений
24. Используйте профилировщик
25. Используйте инструмент обзора кода
26. Используйте инструмент статического анализа
27. Используйте инструмент покрытия кода
28. Используйте инструмент непрерывной интеграции
29. Используйте инструмент развертывания
30. Используйте инструмент управления конфигурацией
31. Использовать инструмент контейнеризации
32. Использовать облачную платформу
33. Использовать инструмент миграции баз данных
34. Использовать веб-сервер
35. Использовать инструмент CI/CD
36. Использовать обратный прокси-сервер HTTP
37. Используйте профилировщик JVM
38. Используйте профилировщик базы данных
39. Используйте инструмент нагрузочного тестирования
40. Используйте инструмент непрерывной доставки
41. Используйте API-шлюз
42. Используйте очередь сообщений
43. Используйте сетку сервисов
44. Используйте инструмент управления конфигурацией
45. Используйте конвейер развертывания
46. Использование Swagger для документации Api
47. Использование актуатора
48. Использование AOP
49. Использование рулевых диаграмм
50. Использование распределенной трассировки
51. Использование Lombok
https://connect2grp.medium.com/51-java-spring-boot-best-practices-for-application-developers-cafff2766896
👉@BookJava
Medium
51 Java -Spring Boot- Best practices for Application Developers
Hi All ,
Как уменьшить размер образа докера JVM как минимум на 60%
Если вы какое-то время работали с языками на основе JVM (Java, Kotlin, Scala и т. д.), вы могли заметить, что, начиная с Java 11, Java Runtime Environment (JRE) больше не имеет отдельного дистрибутива. . Из-за этого решения многие распространители образов докеров Java Development Kit (JDK), такие как OpenJDK , Amazon Correto и другие, не предоставляют JRE в виде отдельного образа докера. Использование этих образов привело к тому, что общий размер образа Docker составил около 360 МБ, в то время как фактический размер jar приложения составил около 26 МБ. Общий размер образа Docker, на мой взгляд, слишком велик, и его следует уменьшить, чтобы сэкономить место и пропускную способность сети для всех, кто будет использовать этот образ Docker. Теперь давайте посмотрим, как резко уменьшить размер образа Docker.
https://blog.devops.dev/how-to-reduce-jvm-docker-image-size-by-at-least-60-459ec87b95d8
Если вы какое-то время работали с языками на основе JVM (Java, Kotlin, Scala и т. д.), вы могли заметить, что, начиная с Java 11, Java Runtime Environment (JRE) больше не имеет отдельного дистрибутива. . Из-за этого решения многие распространители образов докеров Java Development Kit (JDK), такие как OpenJDK , Amazon Correto и другие, не предоставляют JRE в виде отдельного образа докера. Использование этих образов привело к тому, что общий размер образа Docker составил около 360 МБ, в то время как фактический размер jar приложения составил около 26 МБ. Общий размер образа Docker, на мой взгляд, слишком велик, и его следует уменьшить, чтобы сэкономить место и пропускную способность сети для всех, кто будет использовать этот образ Docker. Теперь давайте посмотрим, как резко уменьшить размер образа Docker.
https://blog.devops.dev/how-to-reduce-jvm-docker-image-size-by-at-least-60-459ec87b95d8
Как ограничивается тип generic параметра?
В объявлении дженерик-параметра класса или метода может быть указана его верхняя граница (bound)
Помимо ограничения возможных применяемых типов, bounded-параметр дает право использовать в реализации методы и поля типа-ограничителя – он будет как минимум предком фактического типа. Это достигается стиранием типа-параметра до верхней границы.
Тип-параметр может иметь несколько верхних границ, то есть границу-пересечение типов: <T extends Comparable & Serializable>. Стирание произойдет до первой из границ, остальные послужат только ограничением вариантов фактического типа. Поэтому граница-класс, при наличии, должна быть указана раньше границ-интерфейсов.
При указании значения дженерик-параметра переменной может быть использован вайлдкард – символ ?. Вайлдкард з...
В объявлении дженерик-параметра класса или метода может быть указана его верхняя граница (bound)
class Foo<T extends Number>Ключевое слово extends применяется как для классов, так и для интерфейсов. Фактическим параметром такого класса Foo может быть или сам Number, или его наследники.
Помимо ограничения возможных применяемых типов, bounded-параметр дает право использовать в реализации методы и поля типа-ограничителя – он будет как минимум предком фактического типа. Это достигается стиранием типа-параметра до верхней границы.
Тип-параметр может иметь несколько верхних границ, то есть границу-пересечение типов: <T extends Comparable & Serializable>. Стирание произойдет до первой из границ, остальные послужат только ограничением вариантов фактического типа. Поэтому граница-класс, при наличии, должна быть указана раньше границ-интерфейсов.
При указании значения дженерик-параметра переменной может быть использован вайлдкард – символ ?. Вайлдкард з...
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/job_javadevs
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/job_javadevs
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Путешествие к центру Spring Security
Я вас категорически приветствую! В этой статье я хотел бы поглубже разобрать такую штуку как Spring Security, а в частности Security фильтры, как они работают в целом и как объединяются в цепочку ApplicationFilterChain.
Скажу сразу, эта статья является скорее финальной точкой моего ночного дебагинга кишочков Spring Security, а также одной из основных целей этой статьи является закрепление знаний, которые я получил. Но это не отменяет тот факт, что статья кому-то (и я уверен что многим) будет полезна. Поехали.
Читать статью
Я вас категорически приветствую! В этой статье я хотел бы поглубже разобрать такую штуку как Spring Security, а в частности Security фильтры, как они работают в целом и как объединяются в цепочку ApplicationFilterChain.
Скажу сразу, эта статья является скорее финальной точкой моего ночного дебагинга кишочков Spring Security, а также одной из основных целей этой статьи является закрепление знаний, которые я получил. Но это не отменяет тот факт, что статья кому-то (и я уверен что многим) будет полезна. Поехали.
Читать статью
IntelliJIDEA_ReferenceCard.pdf
65.8 KB
Шпаргалка по горячим клавишам в IntelliJ IDEA