Библиотека Java разработчика
رفتن به کانال در Telegram
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
نمایش بیشتر9 988
مشترکین
+124 ساعت
-157 روز
-5730 روز
آرشیو پست ها
🔥 Начните знакомство с популярными технологиями Scala на вебинаре «REST API при помощи HTTP4S и ZIO».
📚 Преподаватель Алексей Воронец, руководитель разработки в NAUMEN, на примере построения простого веб сервиса с REST API, разберет основные компоненты: пути, бизнес логику, доступ к данным, документацию. А также мы посмотрим, как взаимодействуют такие функциональные библиотеки, как http4s, cats, zio в рамках одного приложения.
📌 Занятие пройдет 24 марта в 20:00 в рамках онлайн-курса «Scala Developer».
👉 Для регистрации на вебинар пройдите вступительный тест https://otus.pw/AMCB/
Изучаем Java. Методы equals() и hashCode()
В этой статье мы рассмотрим два важных метода класса Object в Java - equals() и hashCode(), разберемся, зачем они нужны и расскажем об их использовании на конкретных примерах.
Подробнее
equals, hashCode
Эти два метода придуманы для использования в Java Collections Framework и связаны общим контрактом, для соблюдения которого переопределять их необходимо вместе. Методы обязательно нужно переопределить чтобы эффективно использовать экземпляры как ключи в HashMap или
HashSet. HashMap работает тем эффективнее, чем «лучше» распределение хэшей.
Контракт:
1. Если объекты equals, у них должны быть одинаковые hashCode (не обязательно наоборот – коллизии допустимы!)
2. equals должен быть отношением эквивалентности
3. Ничто не может быть equals(null)
4. equals и hashCode должны возвращать одни и те же значения для одного и того же объекта при каждом последующем вызове, даже если состояние объекта изменилось. Это делает реализацию для изменяемых (mutable) объектов крайне сложной.
По умолчанию equals сравнивает на ==. С умолчательным hashCode дела обстоят интереснее: он зависит от реализации JVM, и может быть неожиданным. Например в OpenJDK 7 это случайное число.
Подробная инструкция по переопределению этих методов описана в Effective Java Item 9 (больше деталей о волшебном числе 31 здесь).⁉️Какие ошибки совершают большинство разработчиков при построении архитектуры приложений?
🗓 16 марта в 20:00 пройдет открытый урок «Послание про архитектуру приложений самому себе в прошлое». Вы узнаете, как избежать ошибок, которые могут сильно усложнить развитие приложения. Его проведет Виталий Куценко, эксперт с 20-летним разработки ПО, занимает должность Java Lead в RND подразделении Ростсельмаша.
📚Занятие состоится в рамках онлайн-курса «Java Developer. Professional», это отличная возможность перенять опыт преподавателя и посмотреть на процесс обучения на онлайн в OTUS изнутри.
📌Пройдите вступительный тест, чтобы участвовать в демо-занятии: https://otus.pw/Knbl/
Дайте определение понятию «интерфейс». Какие модификаторы по умолчанию имеют поля и методы интерфейсов?
Ключевое слово
interface используется для создания полностью абстрактных классов. Основное предназначение интерфейса - определять каким образом мы можем использовать класс, который его реализует. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не реализует их поведение. Все методы неявно объявляются как public.
Начиная с Java 8 в интерфейсах разрешается размещать реализацию методов по умолчанию default и статических static методов.
Интерфейс также может содержать и поля. В этом случае они автоматически являются публичными public, статическими static и неизменяемыми final.vRepost from Программирование {BookFlow}
Оптимизируем Java-приложения с помощью GraalVM
В этой статье я приведу простые и не очень простые примеры, чтобы наглядно показать преимущества и особенности GraalVM.
Подробнее
getClass
Возвращает класс этого экземпляра. То есть результатом вызова
.getClass() переменной типа Foo может быть как Foo.class, так и .class любого из его подклассов. Компилятор страхуется от ClassCastException в рантайме подменой возвращаемого типа метода на Class<? extends Foo>.
ПодробнееПодборка каналов для IT специалистов 🎯
https://t.me/progjob Вакансии для программистов
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/linux_sup Новости и информация из мира Linux
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/dev_ops_info Devops
https://t.me/network_arch Network architecture and Administration
https://t.me/database_group Все про базы данных
https://t.me/cloud_comp Облачные сервисы, вычисления и безопасность
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/coddy_academy Академия кода. Полезный контент по программированию
https://t.me/BookPython Библиотека Python разработчика
https://t.me/Welcome_Python Добро пожаловать в мир Python
Мобильная разработка: iOS, Android 📌
https://t.me/imobile_dev Все по мобильной разработке: iOS, Android
https://t.me/developer_mobila Мобильная разработка
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/Frontend_now Все для фронтендеров
https://t.me/react_prog Все что связано с reactjs
https://t.me/Angular_Vuejs Angular Vue js React
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_sup Программирование на Java
Разработка игр 📌
https://t.me/game_devv GameDev: разработка игр
Программирование, Биг дата, книги 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/bigdata_world Data Science, Big Data, Machine Learning
https://t.me/easy_program Программирование для новичков
https://t.me/generalprog General programming
QA, тестирование 📌
https://t.me/testin_new Тестирование
IT новости 📌
https://t.me/htech_news Новости HighTech
https://t.me/all_itnews IT новости на английском
https://t.me/gmorning_news Последнии новости из мира науки
https://t.me/youtips_tricks Технологические советы и хитрости
Шутки программистов 📌
https://t.me/dev_jokes Daily Dev Jokes
https://t.me/itumor ITumor | программисты шутят
Защита, взлом, безопасность 📌
https://t.me/crypto_security_lab Материалы по информационной безопасности
https://t.me/thehaking Канал о кибербезопасности
https://t.me/Hackme_news Новости из мира хакинга
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/goodw_design Статьи по Веб дизайну
Должен знать 📌
https://t.me/UchuEnglish Английский с нуля
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/crypto_moneygo Канал о крипте, новости, инсайды
https://t.me/bitkoinoff Нгвости криптовалют
VR, робототехника 📌
https://t.me/AR_VR_vision Компьютерное зрение, виртуальная реальность
https://t.me/robotics_scince Канал о Робототехнике и автоматизации
SMM, Seo, Wordpress 📌
https://t.me/allsocial_news SMM / Советы, Новости, Лайфхаки
https://t.me/seo_go Новости по SEO продвижению сайтов
https://t.me/news_wordpress Канал о самой популярной CMS
https://t.me/IoTprog Интернет вещей
https://t.me/Hware_news Цифровые тенденции
🤖 Разрабатываете на Java?
🤓Недавно ученые открыли, что на свете бывают невнимательные разработчики, которые все делают наоборот. Ученые придумали, что таким разработчикам нужно давать не полезные, а вредные советы. Они все сделают наоборот, и получится как раз правильно.
🗓9 марта в 20:00 (мск) в OTUS пройдет открытый урок «Вредные советы по созданию кода». Его проведет Виталий Куценко, Java Lead в RND подразделении Ростсельмаша.
После вебинара вы сможете продолжить обучение бэкенд-разработке на онлайн-курсе «Java Developer. Professional».
📌Пройдите вступительный тест, чтобы зарегистрироваться на занятие: https://otus.pw/IXM3/
Repost from Академия Кода
Дочерние классы в массивах
В Java полиморфизм позволяет нам помещать экземпляры разных классов, которые имеют общий родительский класс, вместе в массив или
ArrayList. Например, если у нас есть родительский класс Animal с дочерними классами Cat, Dog и Pig, мы можем настроить массив с экземплярами каждого животного, а затем перебрать список животных, чтобы выполнить одно и то же действие над каждым.
Подписывайтесь на канал 👉@coddy_academy
#javaPlatformer Tutorial - Java
A New Beginning - Episode #01
INPUTS - Episode #02
GAME LOOP - Episode #03
HOW TO MAKE A Game Loop in Java
IMAGES - Episode #04
ANIMATIONS - Episode #05
GAME LOOP 2.0 - Episode #06
PLAYER CLASS - Episode #07
Level Creation - Episode #08
https://www.youtube.com/playlist?list=PL4rzdwizLaxYmltJQRjq18a9gsSyEQQ-0
Platformer Tutorial - Java
A New Beginning - Episode #01
INPUTS - Episode #02
GAME LOOP - Episode #03
HOW TO MAKE A Game Loop in Java
IMAGES - Episode #04
ANIMATIONS - Episode #05
GAME LOOP 2.0 - Episode #06
PLAYER CLASS - Episode #07
Level Creation - Episode #08
https://www.youtube.com/playlist?list=PL4rzdwizLaxYmltJQRjq18a9gsSyEQQ-0
https://youtu.be/6_N8QZ47toY
Можно ли достать параметры метода рефлекшеном?
По умолчанию – нет. Рефлекшн-информация о параметрах метода представляется объектами класса
Parameter. По умолчанию их свойство name синтетическое: "arg0", "arg1", и так далее. Метод isNamePresent при этом возвращает false, что значит что действительная информация об имени недоступна. Она не попадает даже в байт-код.
Начиная с Java 8 у компилятора (javac) появилась опция -parameters. В скомпилированный с этой опцией класс добавляются имена аргументов методов. Parameter#getName() тогда возвращает уже настоящее имя.
Классический пример, когда информация об именах может понадобиться – библиотека JSON сериализации Jackson. Параметры конструктора могут трактоваться ей как поля сериализационной формы.
До появления флага -parameters Jackson использовал для этого аннотации. Каждый параметр снабжался аннотацией @JsonProperty. Значением аннотации передавалась строка, которая повторяла имя параметра. Эти аннотации затем можно было получить, вызвав Method#getParameterAnnotations().🚀Начни с нуля осваивать разработку на Java!
🗓Приходи 9 марта в 20:00 в OTUS на открытый урок «Введение в Java Collections: обзор интерфейсов и их имплементаций». Вебинар проведет преподаватель Нигяр Мовсумова, разработчик программного обеспечения в Azerconnect.
На занятии вы:
✔️Познакомитесь Generic-ами в Java
✔️Изучите особенности использования стандартных коллекций
✔️Получите понимание базовых коллекций
✔️Узнаете ответ на самый популярный вопрос на собеседованиях по Java
Это шанс попробовать формат обучении на специализации «Java-разработчик» и узнать особенности этого онлайн-курса.
📌Зарегистрируйтесь, чтобы посетить вебинар - https://otus.pw/FW6R/
Repost from Академия Кода
Как сделать скриншот на Java?
Вы можете испольщовать
Robot().createScreenCapture() чтобы сделать скриншот экрана на Java.
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@coddy_academy
#javaКак применить регулярное выражение в Java?
Регулярные выражения – мощный механизм работы со строками. Здесь мы не будем говорить о регулярных выражениях в целом, поговорим об их использовании в Java. Это становится возможно благодаря пакету
java.util.regex стандартной библиотеки.
Работа с регулярными выражениями в Java начинается с класса Pattern. Это представление самого выражения, без привязки к целевому тексту. Создать его можно компиляцией строки, с помощью фабричного метода Pattern.compile(). Паттерн иммутабельный и потокобезопасный.
Matcher – регулярное выражение, примененное к конкретному тексту. Пораждается вызовом метода Pattern.matches(). Одним паттерном можно порождать несколько разных матчеров. В отличие от паттерна, матчер мутирует. Он не безопасен для многопоточной среды. Основные операции регулярных выражений – перебор совпадений, доступ к группам, замена – реализованы именно в этом классе.
Работа с экземпляром Matcher похожа на работу с итератором. Результат метода matches() просто скажет, соответствует ли строка шаблону. Но после его вызова матчер поменяет состояние. Теперь, из него можно получить группы, позицию совпадения в тексте, а также произвести замену.
В объекте шаблона Pattern реализованы несколько методов-сокращений, чтобы не использовать Matcher явно. Например, просто проверить строку на соответствие выражению можно одним методом Pattern.matches().🚀 Хочешь разрабатывать приложения для андроид?
📌 Начни практиковаться уже 10 марта в OTUS на вебинаре - Создание приложения с одним экраном
🔥 Вместе с Антоном Мачихиным, Android-разработчиком в АО «Альфа-Банк», мы создадим приложение с одним экраном, на котором будет показываться погода на данный момент. Вы познакомитесь с архитектурой MVVM, Retrofit, Coroutine и узнате, почему кодить на Kotlin теперь быстрее и удобнее Kotlin.
Бесплатный урок пройдет в рамках онлайн-курса «Специализация Android Developer».
🎯 Приходите и убедитесь, что кодить под андроид несложно и нестрашно!
👉 Для участия нужно зарегистрироваться - https://otus.pw/NUI3/
Что такое статическое и динамическое связывание?
Присоединение вызова метода к телу метода называется связыванием. Если связывание проводится компилятором (компоновщиком) перед запуском программы, то оно называется статическим или ранним связыванием (
early binding).
В свою очередь, позднее связывание (late binding) это связывание, проводимое непосредственно во время выполнения программы, в зависимости от типа объекта. Позднее связывание также называют динамическим (dynamic) или связыванием на стадии выполнения (runtime binding). В языках, реализующих позднее связывание, должен существовать механизм определения фактического типа объекта во время работы программы, для вызова подходящего метода. Иначе говоря, компилятор не знает тип объекта, но механизм вызова методов определяет его и вызывает соответствующее тело метода. Механизм позднего связывания зависит от конкретного языка, но нетрудно предположить, что для его реализации в объекты должна включаться какая-то дополнительная информация.
Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).Подборка каналов для IT специалистов 🎯
https://t.me/progjob Вакансии для программистов
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/linux_sup Новости и информация из мира Linux
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/dev_ops_info Devops
https://t.me/network_arch Network architecture and Administration
https://t.me/database_group Все про базы данных
https://t.me/cloud_comp Облачные сервисы, вычисления и безопасность
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/coddy_academy Академия кода. Полезный контент по программированию
https://t.me/BookPython Библиотека Python разработчика
https://t.me/Welcome_Python Добро пожаловать в мир Python
Мобильная разработка: iOS, Android 📌
https://t.me/imobile_dev Все по мобильной разработке: iOS, Android
https://t.me/developer_mobila Мобильная разработка
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/Frontend_now Все для фронтендеров
https://t.me/react_prog Все что связано с reactjs
https://t.me/Angular_Vuejs Angular Vue js React
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_sup Программирование на Java
Разработка игр 📌
https://t.me/game_devv GameDev: разработка игр
Программирование, Биг дата, книги 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/bigdata_world Data Science, Big Data, Machine Learning
https://t.me/easy_program Программирование для новичков
https://t.me/generalprog General programming
QA, тестирование 📌
https://t.me/testin_new Тестирование
IT новости 📌
https://t.me/htech_news Новости HighTech
https://t.me/all_itnews IT новости на английском
https://t.me/gmorning_news Последнии новости из мира науки
https://t.me/youtips_tricks Технологические советы и хитрости
Шутки программистов 📌
https://t.me/dev_jokes Daily Dev Jokes
https://t.me/itumor ITumor | программисты шутят
Защита, взлом, безопасность 📌
https://t.me/crypto_security_lab Материалы по информационной безопасности
https://t.me/thehaking Канал о кибербезопасности
https://t.me/Hackme_news Новости из мира хакинга
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/goodw_design Статьи по Веб дизайну
Должен знать 📌
https://t.me/UchuEnglish Английский с нуля
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/crypto_moneygo Канал о крипте, новости, инсайды
https://t.me/bitkoinoff Нгвости криптовалют
VR, робототехника 📌
https://t.me/AR_VR_vision Компьютерное зрение, виртуальная реальность
https://t.me/robotics_scince Канал о Робототехнике и автоматизации
SMM, Seo, Wordpress 📌
https://t.me/allsocial_news SMM / Советы, Новости, Лайфхаки
https://t.me/seo_go Новости по SEO продвижению сайтов
https://t.me/news_wordpress Канал о самой популярной CMS
https://t.me/IoTprog Интернет вещей
https://t.me/Hware_news Цифровые тенденции
#вакансия #удалённо #job #remote #parttime #преподаватель #ментор #Java #руководитель
🦉OTUS – образовательная платформа🦉
OTUS специализируется на курсах для IT-специалистов разного уровня от junior до senior🤘
У нас более 90 авторских курсов😎
▫️Вакансии:
Руководитель курса - Java Bootcamp
Ментор на курс - Java basic
🔹 Вы можете выбрать на какие темы преподавать.
Мы предлагаем удалённое сотрудничество, занятость частичная, нагрузку вы определяете сами.
Ставка за 1 урок – от 4000р. до 6000р.
Ментор консультирует студентов, созваниваясь онлайн в удобное для ментора время
1 консультация (30-40 минут) = 1500р
🔸 Есть возможность работать с материалом:
За разработку вебинара (если нет материала или вебинар необходимо полностью переработать) заплатим 5000р
Если необходимо переписать более половины материала к вебинару, заплатим 2500р.
✅ Научим:
- Работать с аудиторией
- Давать обратную связь
- Публично выступать
- Структурировать свои знания
♦️Вы сможете:
- Проходить наши курсы со скидкой
- Набирать себе команду из лучших студентов
- Прокачать свой бренд
- Совмещать с текущей фул-тайм загрузкой
▫️У нас классная команда: 450+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Хотите узнать больше?
@HR_Nikita🦉
