Работаем с временем
Для работы с датами и временем, у нас, в пакете java.util, есть класс Date.
При создании экземпляра с пустым конструктором вы получаете время и дату, которая сейчас. Если же вам надо считать всё из строки, воспользуйтесь классом SimpleDateFormat и его методом parse().
После вы можете редактировать объект, добавлять значения, отбавлять или переводить всё в строку.
#lesson #theory
Для работы с датами и временем, у нас, в пакете java.util, есть класс Date.
При создании экземпляра с пустым конструктором вы получаете время и дату, которая сейчас. Если же вам надо считать всё из строки, воспользуйтесь классом SimpleDateFormat и его методом parse().
После вы можете редактировать объект, добавлять значения, отбавлять или переводить всё в строку.
#lesson #theory
👍1
☕️ Тестируем Java
Протестированный код лучше, чем код с кучей багов. Чтобы ручками не проверять его работоспособность, пишут автоматические тесты.
JUnit — одна из самых популярных библиотек для проверки кода на Java. Она позволит вам за пару минут проверить функционал.
📖 Документация
#java #lesson #testing
Протестированный код лучше, чем код с кучей багов. Чтобы ручками не проверять его работоспособность, пишут автоматические тесты.
JUnit — одна из самых популярных библиотек для проверки кода на Java. Она позволит вам за пару минут проверить функционал.
📖 Документация
#java #lesson #testing
👍1
Почему так много кода
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
#lesson #theory
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
System.out.println()
. Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err#lesson #theory
👍1
Лямбда-выражение
Вам нужна функция, которая больше нигде не пригодится и выполняет одно простое действие. Но ради этого надо будет создать отдельную функцию... Или нет.
Лямбда выражения позволяют определить функцию с одним действием в строку, а также вам не придётся думать над именем.
Создаётся она так:
#java #lesson #features
Вам нужна функция, которая больше нигде не пригодится и выполняет одно простое действие. Но ради этого надо будет создать отдельную функцию... Или нет.
Лямбда выражения позволяют определить функцию с одним действием в строку, а также вам не придётся думать над именем.
Создаётся она так:
(type1 arg1,type2 arg2) -> expression
, где arg1 и arg2 - аргументы функции, а expression
— действие, которое надо выполнить.#java #lesson #features
👍1
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
👍2
Stream Filter
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис: .filter(object -> condition)
Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition. Если результат равен true, значение оставляем в массиве.
#java #lesson #stream
Метод Stream::filter позволяет отфильтровывать значения из набора данных.
Синтаксис: .filter(object -> condition)
Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition. Если результат равен true, значение оставляем в массиве.
#java #lesson #stream
👍4
Теория дженериков в Java
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
👍1
Рефлексии в 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 существуют различные типы данных, которые помогут тебе работать…
🔥2
Алгоритмическая сложность коллекций
Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.
Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.
На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.
#lesson #collections
Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.
Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.
На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.
#lesson #collections
👍2
Почему так много кода
Если ваш первый язык не 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
👍3
Инструмент 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, которые будут полезны для изучения разработки.
👉Читать статью
👍2👎1
Перечисления в Java
Это набор именнованых констант. Таким образом мы можем заменить непонятные цифры (1, 2, 4) или буквы ("E", "W", "N", "S") и сделать код более стабильным.
Определяются они с помощью ключевого слова enum, после которого идёт имя, и, в фигурных, скобках перечиляются значения.
Перечесления в Java могут также хранить собственные переменные и методы. Для этого надо создать enum конструктор и добавить его вызов к значениям.
#java #lesson
Это набор именнованых констант. Таким образом мы можем заменить непонятные цифры (1, 2, 4) или буквы ("E", "W", "N", "S") и сделать код более стабильным.
Определяются они с помощью ключевого слова enum, после которого идёт имя, и, в фигурных, скобках перечиляются значения.
Перечесления в Java могут также хранить собственные переменные и методы. Для этого надо создать enum конструктор и добавить его вызов к значениям.
#java #lesson
❤🔥1
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