📓 The Java Workshop: A New, Interactive Approach to Learning Java.
What you will learn:
• Get to grips with fundamental concepts and conventions of Java 12;
• Write clean and well-commented code that’s easy to maintain;
• Debug and compile logical errors and handle exceptions in your programs;
• Understand how to work with Java APIs and Java streams;
• Learn how to use third-party libraries and software development kits (SDKs);
• Discover how you can work with information stored in databases;
• Understand how you can keep data secure with cryptography and encryption;
• Learn how to keep your development process bug-free with unit testing in Java;
#Eng
What you will learn:
• Get to grips with fundamental concepts and conventions of Java 12;
• Write clean and well-commented code that’s easy to maintain;
• Debug and compile logical errors and handle exceptions in your programs;
• Understand how to work with Java APIs and Java streams;
• Learn how to use third-party libraries and software development kits (SDKs);
• Discover how you can work with information stored in databases;
• Understand how you can keep data secure with cryptography and encryption;
• Learn how to keep your development process bug-free with unit testing in Java;
#Eng
📓 OpenCV и Java. Обработка изображений и компьютерное зрение.
• Книга знакомит с современными технологиями компьютерного зрения, позволяющими машинам, роботам, веб-камерам и другим устройствам распознавать изображения. Приведено описание библиотеки компьютерного зрения OpenCV применительно к языку программирования Java.
• Объясняется, как загружать и сохранять изображения в различных форматах, захватывать кадры с веб-камеры в режиме реального времени, выполнять обработку, трансформацию и сегментацию изображения, применять к изображению фильтры. На практических примерах рассмотрены алгоритмы компьютерного зрения, предназначенные для обнаружения, классификации и отслеживания объектов, выделения границ и контуров объектов, поиска объектов по шаблону, особым точкам, цвету или обученному классификатору.
#RU
• Книга знакомит с современными технологиями компьютерного зрения, позволяющими машинам, роботам, веб-камерам и другим устройствам распознавать изображения. Приведено описание библиотеки компьютерного зрения OpenCV применительно к языку программирования Java.
• Объясняется, как загружать и сохранять изображения в различных форматах, захватывать кадры с веб-камеры в режиме реального времени, выполнять обработку, трансформацию и сегментацию изображения, применять к изображению фильтры. На практических примерах рассмотрены алгоритмы компьютерного зрения, предназначенные для обнаружения, классификации и отслеживания объектов, выделения границ и контуров объектов, поиска объектов по шаблону, особым точкам, цвету или обученному классификатору.
#RU
📓 Волшебство Kotlin.
• Kotlin — один из самых новых языков в экосистеме Java, устраняющий многие ограничения Java и гораздо более универсальный. Среди его преимуществ: полная совместимость с Java и возможность интеграции на уровне исходного кода, широкая поддержка парадигмы функционального программирования, помогающая писать надежный и безопасный код, лаконичность синтаксиса, а также, что весьма немаловажно, гарантии поддержки со стороны IT-гиганта Google.
• Автор является опытным разработчиком на Java, в своей книге подробно освещает нюансы программирования на Kotlin, переходя от общего описания языка к его характерным особенностям и возможностям, включая приемы функционального программирования. Издание предназначено для разработчиков, знакомых с Java и стремящихся повысить безопасность своих программ, а также упростить их написание, тестирование и сопровождение.
#RU #Kotlin
• Kotlin — один из самых новых языков в экосистеме Java, устраняющий многие ограничения Java и гораздо более универсальный. Среди его преимуществ: полная совместимость с Java и возможность интеграции на уровне исходного кода, широкая поддержка парадигмы функционального программирования, помогающая писать надежный и безопасный код, лаконичность синтаксиса, а также, что весьма немаловажно, гарантии поддержки со стороны IT-гиганта Google.
• Автор является опытным разработчиком на Java, в своей книге подробно освещает нюансы программирования на Kotlin, переходя от общего описания языка к его характерным особенностям и возможностям, включая приемы функционального программирования. Издание предназначено для разработчиков, знакомых с Java и стремящихся повысить безопасность своих программ, а также упростить их написание, тестирование и сопровождение.
#RU #Kotlin
📓 Java EE to Jakarta EE 10 Recipes.
What you will learn:
• Develop enterprise java applications using the latest open-source Jakarta EE platform;
• Create great-looking user interfaces using Jakarta Servlets, Jakarta Server Pages, Jakarta Server Faces and the Eclipse Krazo framework (an implementation of Jakarta MVC);
• Build database applications using Jakarta NoSQL, Jakarta Persistence, and Jakarta Enterprise Beans;
• Develop enterprise grade applications using Context & Dependency Injection, and Jakarta RESTFul web services;
• Automate testing through cohesive test suites built on Arquillian for Jakarta EE applications;
• Build loosely coupled distributed applications using Jakarta Messaging;
• Deploy microservices applications in cloud environments using Docker;
• Secure applications utilizing the Jakarta EE Security API;
#Eng
What you will learn:
• Develop enterprise java applications using the latest open-source Jakarta EE platform;
• Create great-looking user interfaces using Jakarta Servlets, Jakarta Server Pages, Jakarta Server Faces and the Eclipse Krazo framework (an implementation of Jakarta MVC);
• Build database applications using Jakarta NoSQL, Jakarta Persistence, and Jakarta Enterprise Beans;
• Develop enterprise grade applications using Context & Dependency Injection, and Jakarta RESTFul web services;
• Automate testing through cohesive test suites built on Arquillian for Jakarta EE applications;
• Build loosely coupled distributed applications using Jakarta Messaging;
• Deploy microservices applications in cloud environments using Docker;
• Secure applications utilizing the Jakarta EE Security API;
#Eng
📓 Основы Java.
• Описан базовый синтаксис языка Java: типы данных, операторы, условия, циклы, регулярные выражения, объектно-ориентированное программирование. Рассмотрены основные классы стандартной библиотеки, получение данных из Интернета, работа с базой данных MySQL. Приводится описание большинства нововведений: Date API, Stream API, лямбда-выражения, ссылки на методы, функциональные интерфейсы и др.
• Книга содержит большое количество практических примеров, помогающих начать программировать на языке Java самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник.
#RU
• Описан базовый синтаксис языка Java: типы данных, операторы, условия, циклы, регулярные выражения, объектно-ориентированное программирование. Рассмотрены основные классы стандартной библиотеки, получение данных из Интернета, работа с базой данных MySQL. Приводится описание большинства нововведений: Date API, Stream API, лямбда-выражения, ссылки на методы, функциональные интерфейсы и др.
• Книга содержит большое количество практических примеров, помогающих начать программировать на языке Java самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник.
#RU
📓 Learn Java 17 Programming: Learn the fundamentals of Java Programming with this updated guide with the latest features.
What you will learn
• Understand and apply object-oriented principles in Java;
• Explore Java design patterns and best practices to solve everyday problems;
• Build user-friendly and attractive GUIs with ease;
• Understand the usage of microservices with the help of practical examples;
• Discover techniques and idioms for writing high-quality Java code;
• Get to grips with the usage of data structures in Java.
#Eng
What you will learn
• Understand and apply object-oriented principles in Java;
• Explore Java design patterns and best practices to solve everyday problems;
• Build user-friendly and attractive GUIs with ease;
• Understand the usage of microservices with the help of practical examples;
• Discover techniques and idioms for writing high-quality Java code;
• Get to grips with the usage of data structures in Java.
#Eng
📓 Основы программирования с Java.
• Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.
Эта книга даст понимание основных элементов программирования на Java и абстракции данных с использованием объектно-ориентированного подхода.
• С этой книгой Вы научитесь писать программы с использованием переменных, массивов, управляющих операторов, циклов, рекурсии, абстракции данных и объектов в интегрированной среде разработки. Вы изучите основы языка программирования Java, познакомитесь с его синтаксисом, типами данных, объектами и классами и многим другим.
📌 Скачать.
#RU
• Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.
Эта книга даст понимание основных элементов программирования на Java и абстракции данных с использованием объектно-ориентированного подхода.
• С этой книгой Вы научитесь писать программы с использованием переменных, массивов, управляющих операторов, циклов, рекурсии, абстракции данных и объектов в интегрированной среде разработки. Вы изучите основы языка программирования Java, познакомитесь с его синтаксисом, типами данных, объектами и классами и многим другим.
📌 Скачать.
#RU
📓 Гид Java-разработчика.
• Этот гид позволит вам прокачать свои навыки ООП и ознакомиться с его приемами на примере реальных проектов. Авторы представляют проектно-ориентированный подход к созданию ПО на Java, используя который можно стать эффективным разработчиком.
• Каждая глава книги сконцентрирована на определенном проекте, начинающемся как простое консольное приложение и вырастающем в полноценное приложение. Если вы знаете основы программирования на Java, то здесь вы изучите современные методы разработки программного обеспечения, которые позволят создавать актуальные, стабильные и поддерживаемые Java-приложения.
📌 Скачать.
#RU
• Этот гид позволит вам прокачать свои навыки ООП и ознакомиться с его приемами на примере реальных проектов. Авторы представляют проектно-ориентированный подход к созданию ПО на Java, используя который можно стать эффективным разработчиком.
• Каждая глава книги сконцентрирована на определенном проекте, начинающемся как простое консольное приложение и вырастающем в полноценное приложение. Если вы знаете основы программирования на Java, то здесь вы изучите современные методы разработки программного обеспечения, которые позволят создавать актуальные, стабильные и поддерживаемые Java-приложения.
📌 Скачать.
#RU
Строки в Java
По своей сути, строки — это массив символов char, обёрнутый в класс String. Такая обёртка позволяет обрабатывать строку всеми возможными методами: split, join, trim и другими.
Особенность строк Java в том, что они — ссылочные и неизменяемые. Это позволяет оптимизировать занимаемую память строкой.
#lesson
По своей сути, строки — это массив символов char, обёрнутый в класс String. Такая обёртка позволяет обрабатывать строку всеми возможными методами: split, join, trim и другими.
Особенность строк Java в том, что они — ссылочные и неизменяемые. Это позволяет оптимизировать занимаемую память строкой.
#lesson
Массив vs Список
В основном вы будете работать с массивами — наборами данных определённой длины. В Java они имеют Си-подобный синтаксис и являются очень быстрыми в работе.
Однако, фиксированная длина часто стреляет в ногу программистам, так как не все данные являются статическими. В таких случаях, им на помощь приходят List-ы. Они позволяют создавать динамические наборы данных, также предоставляя некоторые методы для их обработки.
#java #lesson
В основном вы будете работать с массивами — наборами данных определённой длины. В Java они имеют Си-подобный синтаксис и являются очень быстрыми в работе.
Однако, фиксированная длина часто стреляет в ногу программистам, так как не все данные являются статическими. В таких случаях, им на помощь приходят List-ы. Они позволяют создавать динамические наборы данных, также предоставляя некоторые методы для их обработки.
#java #lesson
System.arraycopy
Невероятно полезный и часто используемый метод. Суть в чём: он копирует данные из одного массива в другой с учётом индексации.
Ситаксис:
#lesson
Невероятно полезный и часто используемый метод. Суть в чём: он копирует данные из одного массива в другой с учётом индексации.
Ситаксис:
System.arraycopy(source, from, root, dest, len);
В результате метод копирует значения из source[from]
по source[from + len]
и вставляет их в массив root
в позицию dest
.#lesson
Инструмент StreamAPI
Думаем, любой программист наслышан о том, как просто можно обрабатывать списки в таких языках, как Python.
Java тоже не обделена подобными особенностями, а в частности — она имеет SteamAPI. Это некий набор объектов и методов, которые позволяют обрабатывать списки.
P.S.: В следующих уроках под тегом #stream мы будем подробно рассказывать о методах обработки
#java #lesson #stream
Думаем, любой программист наслышан о том, как просто можно обрабатывать списки в таких языках, как Python.
Java тоже не обделена подобными особенностями, а в частности — она имеет SteamAPI. Это некий набор объектов и методов, которые позволяют обрабатывать списки.
P.S.: В следующих уроках под тегом #stream мы будем подробно рассказывать о методах обработки
#java #lesson #stream
map и flatMap
Для перевода значений Stream существуют два метода: map и flatMap. В чём же в них разница?
Метод map перевод одно входящие значение строго в одно выходное. Другими словами если переводить массив new int[10] в тип double[], то получится массив длинной 10, не больше и не меньше.
flatMap же не имеет таких ограничений и на выходе может выдавать несколько значений или вообще ничего не возвращать. В основном он нужен для изменения размерности массивов.
#java #lesson #stream
Для перевода значений Stream существуют два метода: map и flatMap. В чём же в них разница?
Метод map перевод одно входящие значение строго в одно выходное. Другими словами если переводить массив new int[10] в тип double[], то получится массив длинной 10, не больше и не меньше.
flatMap же не имеет таких ограничений и на выходе может выдавать несколько значений или вообще ничего не возвращать. В основном он нужен для изменения размерности массивов.
#java #lesson #stream
Ключевые типы и их классы
Структура языка Java сильно завязана на ООП. По этой причине, практически всё с чем вы взаимодействуете в Java — объект.
Даже привычные для всех типы int, float, char и так далее — это всё сокращения объекта. Другими словами, их легко можно заменить соответствующими им классами: Integer, Float и Character.
Однако, у сокращений типов есть одна особенность — они не могут быть null.
#java #lesson #theory
Структура языка Java сильно завязана на ООП. По этой причине, практически всё с чем вы взаимодействуете в Java — объект.
Даже привычные для всех типы int, float, char и так далее — это всё сокращения объекта. Другими словами, их легко можно заменить соответствующими им классами: Integer, Float и Character.
Однако, у сокращений типов есть одна особенность — они не могут быть null.
#java #lesson #theory
implements и extends
Одной из основных догм в ООП является наследование. В Java можно наследовать как и классы, так и интерфейсы, но делается это по-разному.
Ключевое слово extends привязывает к классу родительский класс и только один. В своё время ключевое слово implements привязывает к классу один или несколько интерфейсов, которые класс должен реализовать.
#java #lesson #oop
Одной из основных догм в ООП является наследование. В Java можно наследовать как и классы, так и интерфейсы, но делается это по-разному.
Ключевое слово extends привязывает к классу родительский класс и только один. В своё время ключевое слово implements привязывает к классу один или несколько интерфейсов, которые класс должен реализовать.
#java #lesson #oop
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
Stream Filter
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис:
#java #lesson #stream
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис:
.filter(object -> condition)
Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition
. Если результат равен true, значение оставляем в массиве.#java #lesson #stream
Кортежи в Java
Часто бывает ситуация, когда надо вернуть из метода несколько объектов одного разного типа. На этот случай придуманы кортежи.
В Java кортежи реализованы интерфейсом Cortege<F, S> и имплементированы классом CortageChain. Чтобы хранить в нём данные, достаточно с помощью дженериков задать типы и присвоить им значения.
Важной особенностью кортежей является возможность выстраивать цепочки, например так:
Часто бывает ситуация, когда надо вернуть из метода несколько объектов одного разного типа. На этот случай придуманы кортежи.
В Java кортежи реализованы интерфейсом Cortege<F, S> и имплементированы классом CortageChain. Чтобы хранить в нём данные, достаточно с помощью дженериков задать типы и присвоить им значения.
Важной особенностью кортежей является возможность выстраивать цепочки, например так:
Cortege<Long, Cortege<String, Cortege<Float, Cortege.End>>>
#java #lesson #collectionsТеория дженериков в Java
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Рефлексии в Java
Рефлексия — это механизм, который позволяет получить данные из структуры классов, методов и полей.
Сам же механизм рефлексии позволяет обрабатывать типы, отсутствующие при компиляции, но появившиеся во время выполнения программы.
Рефлексия и наличие логически целостной модели выдачи информации об ошибках дает возможность создавать корректный динамический код.
#java #lesson #theory
Рефлексия — это механизм, который позволяет получить данные из структуры классов, методов и полей.
Сам же механизм рефлексии позволяет обрабатывать типы, отсутствующие при компиляции, но появившиеся во время выполнения программы.
Рефлексия и наличие логически целостной модели выдачи информации об ошибках дает возможность создавать корректный динамический код.
#java #lesson #theory