Рефлексии в 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
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
👍1🤮1
Аннотация FunctionalInterface
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
Java vs C++: что выбрать?
Сравнение C++ с Java. Сферы применения каждого из языков, особенности, востребованность специалистов, перспективы C++ и Java. Смотрите, выбирайте, что вам ближе.
👉 Читать статью
#java #cpp
Сравнение C++ с Java. Сферы применения каждого из языков, особенности, востребованность специалистов, перспективы C++ и Java. Смотрите, выбирайте, что вам ближе.
👉 Читать статью
#java #cpp
Думаю начать делать подборки видео с Ютуб. Как вам идея?
Anonymous Poll
63%
Норм
18%
Лучше только текст
19%
Все в меру
👍2
Строки в 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