Ключевые типы и их классы
Структура языка Java сильно завязана на ООП. По этой причине, практически всё с чем вы взаимодействуете в Java — объект.
Даже привычные для всех типы int, float, char и так далее — это всё сокращения объекта. Другими словами, их легко можно заменить соответствующими им классами: Integer, Float и Character.
Однако, у сокращений типов есть одна особенность — они не могут быть null.
#java #lesson #theory
Структура языка Java сильно завязана на ООП. По этой причине, практически всё с чем вы взаимодействуете в Java — объект.
Даже привычные для всех типы int, float, char и так далее — это всё сокращения объекта. Другими словами, их легко можно заменить соответствующими им классами: Integer, Float и Character.
Однако, у сокращений типов есть одна особенность — они не могут быть null.
#java #lesson #theory
Основные принципы ООП
Инкапсуляция — возможность пользователю класса не задумываться, как механика реализована внутри. Вам не нужно знать, как работает электричество, если вы хотите просто включить лампочку.
Наследование — позволяет создавать новые классы на основе уже существующих. Таким образом можно менять поведение или добавлять новый функционал.
Полиморфизм — возможность объектов с разной спецификацией иметь различную реализацию. Человек, собака и кошка могут есть, но делают это по разному.
#lesson #oop
Инкапсуляция — возможность пользователю класса не задумываться, как механика реализована внутри. Вам не нужно знать, как работает электричество, если вы хотите просто включить лампочку.
Наследование — позволяет создавать новые классы на основе уже существующих. Таким образом можно менять поведение или добавлять новый функционал.
Полиморфизм — возможность объектов с разной спецификацией иметь различную реализацию. Человек, собака и кошка могут есть, но делают это по разному.
#lesson #oop
Работаем с базами данных
Для этого в Java есть универсальный драйвер, который может работать с реляционными базами данных (Oracle, MySQL). Называется он JDBC.
Java Database Connectivity позволяет нам:
• Создавать соединения с БД.
• Создавать и выполнять SQL выражений.
• Просматривать и менять полученные записи.
Но, стоит отметить, что перед использованием вам всё равно придётся добавлять зависимости для работы с нужной базой данных.
#lesson #database
Для этого в Java есть универсальный драйвер, который может работать с реляционными базами данных (Oracle, MySQL). Называется он JDBC.
Java Database Connectivity позволяет нам:
• Создавать соединения с БД.
• Создавать и выполнять SQL выражений.
• Просматривать и менять полученные записи.
Но, стоит отметить, что перед использованием вам всё равно придётся добавлять зависимости для работы с нужной базой данных.
#lesson #database
Работаем с временем
Для работы с датами и временем, у нас, в пакете java.util, есть класс Date.
При создании экземпляра с пустым конструктором вы получаете время и дату, которая сейчас. Если же вам надо считать всё из строки, воспользуйтесь классом SimpleDateFormat и его методом parse().
После вы можете редактировать объект, добавлять значения, отбавлять или переводить всё в строку.
#lesson #theory
Для работы с датами и временем, у нас, в пакете java.util, есть класс Date.
При создании экземпляра с пустым конструктором вы получаете время и дату, которая сейчас. Если же вам надо считать всё из строки, воспользуйтесь классом SimpleDateFormat и его методом parse().
После вы можете редактировать объект, добавлять значения, отбавлять или переводить всё в строку.
#lesson #theory
☕️ Тестируем Java
Протестированный код лучше, чем код с кучей багов. Чтобы ручками не проверять его работоспособность, пишут автоматические тесты.
JUnit — одна из самых популярных библиотек для проверки кода на Java. Она позволит вам за пару минут проверить функционал.
📖 Документация
#java #lesson #testing
Протестированный код лучше, чем код с кучей багов. Чтобы ручками не проверять его работоспособность, пишут автоматические тесты.
JUnit — одна из самых популярных библиотек для проверки кода на Java. Она позволит вам за пару минут проверить функционал.
📖 Документация
#java #lesson #testing
Почему так много кода
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
#lesson #theory
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
System.out.println()
. Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err#lesson #theory
Лямбда-выражение
Вам нужна функция, которая больше нигде не пригодится и выполняет одно простое действие. Но ради этого надо будет создать отдельную функцию... Или нет.
Лямбда выражения позволяют определить функцию с одним действием в строку, а также вам не придётся думать над именем.
Создаётся она так:
#java #lesson #features
Вам нужна функция, которая больше нигде не пригодится и выполняет одно простое действие. Но ради этого надо будет создать отдельную функцию... Или нет.
Лямбда выражения позволяют определить функцию с одним действием в строку, а также вам не придётся думать над именем.
Создаётся она так:
(type1 arg1,type2 arg2) -> expression
, где arg1 и arg2 - аргументы функции, а expression
— действие, которое надо выполнить.#java #lesson #features
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
Stream Filter
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис: .filter(object -> condition)
Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition. Если результат равен true, значение оставляем в массиве.
#java #lesson #stream
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис: .filter(object -> condition)
Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition. Если результат равен true, значение оставляем в массиве.
#java #lesson #stream
Теория дженериков в Java
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Рефлексии в Java
Рефлексия — это механизм, который позволяет получить данные из структуры классов, методов и полей.
Сам же механизм рефлексии позволяет обрабатывать типы, отсутствующие при компиляции, но появившиеся во время выполнения программы.
Рефлексия и наличие логически целостной модели выдачи информации об ошибках дает возможность создавать корректный динамический код.
#java #lesson #theory
Рефлексия — это механизм, который позволяет получить данные из структуры классов, методов и полей.
Сам же механизм рефлексии позволяет обрабатывать типы, отсутствующие при компиляции, но появившиеся во время выполнения программы.
Рефлексия и наличие логически целостной модели выдачи информации об ошибках дает возможность создавать корректный динамический код.
#java #lesson #theory
Аннотации в Java
По сути своей аннотации — это метаданные объектов структуры класса и самого класса, который в дальнейшем обрабатывается.
Аннотации бывают встроенными, а также можно создать свои, но самые ключевые из них это Target и Retention.
Target принимает один или несколько типов, которым можно привязать дочернюю аннотацию. Получить их можно из ElementType.
Retention же обозначает на каком уровне будет находится и обрабатываться аннотация. Всего их три: RUNTIME, CLASS и SOURCE
#java #lesson #reflection
По сути своей аннотации — это метаданные объектов структуры класса и самого класса, который в дальнейшем обрабатывается.
Аннотации бывают встроенными, а также можно создать свои, но самые ключевые из них это Target и Retention.
Target принимает один или несколько типов, которым можно привязать дочернюю аннотацию. Получить их можно из ElementType.
Retention же обозначает на каком уровне будет находится и обрабатываться аннотация. Всего их три: RUNTIME, CLASS и SOURCE
#java #lesson #reflection
Типы данных в Java
Привет, Мэн! Сегодня мы поговорим о типах данных в Java. Тип данных определяет характеристики переменной – то, какие значения она может принимать и какие операции можно выполнять над ними. В Java существуют различные типы данных, которые помогут тебе работать с разными типами информации.
Примитивные типы данных
Java имеет восемь примитивных типов данных:
byte: это 8-битное знаковое целое число, которое может хранить значения от -128 до 127.
short: это 16-битное знаковое целое число, которое может хранить значения от -32,768 до 32,767.
int: это 32-битное знаковое целое число, которое может хранить значения от -2,147,483,648 до 2,147,483,647.
long: это 64-битное знаковое целое число, которое может хранить значения от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
float: это 32-битное число с плавающей запятой, которое может хранить значения с плавающей точкой. Для объявления числа с плавающей запятой следует использовать суффикс
double: это 64-битное число с плавающей запятой и используется для хранения больших чисел с плавающей точкой. В отличие от типа
boolean: это простой тип данных, который может принимать только два значения:
Привет, Мэн! Сегодня мы поговорим о типах данных в Java. Тип данных определяет характеристики переменной – то, какие значения она может принимать и какие операции можно выполнять над ними. В Java существуют различные типы данных, которые помогут тебе работать с разными типами информации.
Примитивные типы данных
Java имеет восемь примитивных типов данных:
byte: это 8-битное знаковое целое число, которое может хранить значения от -128 до 127.
short: это 16-битное знаковое целое число, которое может хранить значения от -32,768 до 32,767.
int: это 32-битное знаковое целое число, которое может хранить значения от -2,147,483,648 до 2,147,483,647.
long: это 64-битное знаковое целое число, которое может хранить значения от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
float: это 32-битное число с плавающей запятой, которое может хранить значения с плавающей точкой. Для объявления числа с плавающей запятой следует использовать суффикс
f
или F
.double: это 64-битное число с плавающей запятой и используется для хранения больших чисел с плавающей точкой. В отличие от типа
float
, суффикс d
или D
необязателен.boolean: это простой тип данных, который может принимать только два значения:
true
или false
. Как прав...Самоучитель-учебник по JavaScript -
Типы данных в Java - Самоучитель-учебник по JavaScript
Привет, Мэн! Сегодня мы поговорим о типах данных в Java. Тип данных определяет характеристики переменной - то, какие значения она может принимать и какие операции можно выполнять над ними. В Java существуют различные типы данных, которые помогут тебе работать…
Алгоритмическая сложность коллекций
Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.
Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.
На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.
#lesson #collections
Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.
Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.
На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.
#lesson #collections
Почему так много кода
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом System.out.println(). Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err
#lesson #theory
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом System.out.println(). Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err
#lesson #theory
System.arraycopy
Невероятно полезный и часто используемый метод. Суть в чём: он копирует данные из одного массива в другой с учётом индексации.
Ситаксис:
System.arraycopy(source, from, root, dest, len);
В результате метод копирует значения из source[from] по source[from + len] и вставляет их в массив root в позицию dest.
#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
Топ 10 книг для изучения Java
В статье рассмотрены 10 топовых книг по Java, которые будут полезны для изучения разработки.
👉Читать статью
В статье рассмотрены 10 топовых книг по Java, которые будут полезны для изучения разработки.
👉Читать статью