Java Portal | Программирование
12.1K subscribers
948 photos
69 videos
32 files
758 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Работаем с временем 

Для работы с датами и временем, у нас, в пакете java.util, есть класс Date. 

При создании экземпляра с пустым конструктором вы получаете время и дату, которая сейчас. Если же вам надо считать всё из строки, воспользуйтесь классом SimpleDateFormat и его методом parse(). 

После вы можете редактировать объект, добавлять значения, отбавлять или переводить всё в строку.

#lesson #theory
👍1
☕️ Тестируем Java

Протестированный код лучше, чем код с кучей багов. Чтобы ручками не проверять его работоспособность, пишут автоматические тесты.

JUnit — одна из самых популярных библиотек для проверки кода на Java. Она позволит вам за пару минут проверить функционал.

📖 Документация

#java #lesson #testing
👍1
Почему так много кода

Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"

Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.

Разберём случай с выводом System.out.println(). Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err

#lesson #theory
👍1
Float vs Double

Оба эти типа данных представляют числа с плавающей запятой. А то, что double является более точным, является общеизвестным фактом.

Настоятельно рекомендуется использовать double вместо float. Но помните, что у всего есть цена, double требует в два раза больше памяти.

#java #lesson
👍4
Лямбда-выражение

Вам нужна функция, которая больше нигде не пригодится и выполняет одно простое действие. Но ради этого надо будет создать отдельную функцию... Или нет.

Лямбда выражения позволяют определить функцию с одним действием в строку, а также вам не придётся думать над именем.

Создаётся она так: (type1 arg1,type2 arg2) -> expression, где arg1 и arg2 - аргументы функции, а expression — действие, которое надо выполнить.

#java #lesson #features
👍1
В чём разница между абстрактными классами и интерфейсами?

С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.

Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.

Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.

#java #lesson #oop
👍2
Stream Filter

Метод Stream::filter позволяет отфильтровывать значения из набора данных.

Синтаксис: .filter(object -> condition)

Работает он предельно просто: он проходит по каждому элементу из массива и проверяет его с помощью лямбды object -> condition. Если результат равен true, значение оставляем в массиве.

#java #lesson #stream
👍4
Теория дженериков в Java

Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.

Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).

По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.

#java #lesson #oop
👍1
Рефлексии в Java

Рефлексия — это механизм, который позволяет получить данные из структуры классов, методов и полей.

Сам же механизм рефлексии позволяет обрабатывать типы, отсутствующие при компиляции, но появившиеся во время выполнения программы. 

Рефлексия и наличие логически целостной модели выдачи информации об ошибках дает возможность создавать корректный динамический код.

#java #lesson #theory
Аннотации в Java

По сути своей аннотации — это метаданные объектов структуры класса и самого класса, который в дальнейшем обрабатывается.

Аннотации бывают встроенными, а также можно создать свои, но самые ключевые из них это 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-битное число с плавающей запятой, которое может хранить значения с плавающей точкой. Для объявления числа с плавающей запятой следует использовать суффикс f или F.

double: это 64-битное число с плавающей запятой и используется для хранения больших чисел с плавающей точкой. В отличие от типа float, суффикс d или D необязателен.

boolean: это простой тип данных, который может принимать только два значения: true или false. Как прав...
🔥2
Алгоритмическая сложность коллекций

Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.

Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.

На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.

#lesson #collections
👍2
Почему так много кода

Если ваш первый язык не 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
👍3
Инструмент StreamAPI

Думаем, любой программист наслышан о том, как просто можно обрабатывать списки в таких языках, как Python. 

Java тоже не обделена подобными особенностями, а в частности — она имеет SteamAPI. Это некий набор объектов и методов, которые позволяют обрабатывать списки.

P.S.: В следующих уроках под тегом #stream мы будем подробно рассказывать о методах обработки

#java #lesson #stream
Топ 10 книг для изучения Java

В статье рассмотрены 10 топовых книг по Java, которые будут полезны для изучения разработки.

👉Читать статью
👍2👎1
Перечисления в Java

Это набор именнованых констант. Таким образом мы можем заменить непонятные цифры (1, 2, 4) или буквы ("E", "W", "N", "S") и сделать код более стабильным.

Определяются они с помощью ключевого слова enum, после которого идёт имя, и, в фигурных, скобках перечиляются значения. 

Перечесления в Java могут также хранить собственные переменные и методы. Для этого надо создать enum конструктор и добавить его вызов к значениям.

#java #lesson
❤‍🔥1
System.arraycopy

Невероятно полезный и часто используемый метод. Суть в чём: он копирует данные из одного массива в другой с учётом индексации.

Ситаксис:

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