JavaStart
910 subscribers
906 photos
28 videos
616 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Потоки (Threads) в Java. Часть 2.

Создание и запуск потоков.

Чтобы создать и запустить поток в Java, мы можем использовать класс Thread или реализовать интерфейс Runnable.

Пример наследования от класса Thread на Картинке 1.

Пример использования интерфейса Runnable для создания и запуска потока на Картинке 2.

В этом примере создается класс MyRunnable, который реализует интерфейс Runnable. Затем создается объект myRunnable, который представляет этот класс. После этого создается новый поток thread, используя myRunnable в качестве задачи для выполнения. Запуск потока происходит с помощью метода start().

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

Так обеспечивается многопоточность.

Важные моменты 💡

1) Нужно избегать избыточного создания потоков. Разработчики для этой цели используют пулы потоков (ThreadPool), чтобы эффективно управлять ресурсами.

2) Нужно быть осторожным с синхронизацией. Неправильное использование может привести к гонкам данных и ошибкам.

3) Важно изучить библиотеку java.util.concurrent, которая предоставляет высокоуровневые абстракции для работы с потоками.

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

Потоки - это важный аспект разработки на Java, и с их помощью мы можем создавать более эффективные и отзывчивые приложения. Не бойтесь экспериментировать и учиться новому! 🚀👨‍💻👩‍💻

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2👨‍💻1
Сеттеры (setters) геттеры (getters) в Java.  Часть 1.

Setters и Getters - это методы, которые используются для установки и получения значений членов (полей) объектов. Давайте рассмотрим, как они работают и почему они важны.

Setters:

Сеттеры - это методы, которые используются для установки значения поля объекта. Они обычно начинаются с префикса "set", за которым следует имя поля с большой буквы. Сеттеры позволяют контролировать доступ к полям и устанавливать определенные правила для изменения значений. Пример на Картинке 1.

public class Person {
    private String name;

    public void setName(String name) {
        // Здесь можно добавить проверки на валидность имени
        this.name = name;
    }
}

Getters:

Геттеры - это методы, которые используются для получения значения поля объекта. Они начинаются с префикса "get", за которым следует имя поля с большой буквы. Геттеры позволяют другим частям кода получать доступ к данным объекта, при этом обеспечивают контроль доступа. Пример также на Картинке 1.

public class Person {
    private String name;

    public String getName() {
        return name;
    }
}

Зачем использовать сеттеры и геттеры:

1) Инкапсуляция
Сеттеры и геттеры позволяют скрыть детали реализации и изменения полей объекта. Это помогает обеспечить инкапсуляцию данных.

2) Контроль доступа
С помощью сеттеров и геттеров вы можете установить правила доступа к данным объекта, например, проверки на валидность.

3) Гибкость
Сеттеры и геттеры позволяют легко изменять реализацию класса без изменения интерфейса.

Пример использования сеттеров и геттеров на Картинке 2.

В этом примере мы создали объект класса Person, установили его имя с помощью сеттера setName() и получили имя с помощью геттера getName().

Сеттеры и геттеры являются важной частью объектно-ориентированного программирования в Java и помогают обеспечить правильную инкапсуляцию и контроль доступа к данным объекта.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👨‍💻3🔥1
Сеттеры (setters) геттеры (getters) в Java. Часть 2.

Автоматическая генерация геттеров и сеттеров с Lombok в Java.

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

Что такое Lombok:

Project Lombok - это библиотека для Java, которая позволяет сократить количество бойлерплейта (шаблонного кода) в нашем проекте. Она предоставляет аннотации для генерации различных методов, таких как геттеры, сеттеры, конструкторы и другие.

Генерация геттеров и сеттеров с Lombok:

Для генерации геттеров и сеттеров с помощью Lombok, нам нужно сделать следующее:

1) Добавить библиотеку Lombok в зависимости нашего проекта.

2) Аннотировать класс аннотацией @Data. Эта аннотация включает автоматическую генерацию геттеров, сеттеров, equals(), hashCode() и других методов.

3) Определить поля класса с модификатором доступа private.

import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}

Теперь у нас есть класс Person, и Lombok автоматически создал геттеры и сеттеры для полей name и age. Это сильно упрощает работу с классами и делает код более чистым и читаемым.

Преимущества Lombok:

1) Сокращение объема кода
Lombok позволяет избежать написания множества стандартного шаблонного кода.

2) Улучшение читаемости
Генерированный код Lombok более чист и понятен.

3) Ускорение разработки
Мы экономим время на написании рутиных методов.

Библиотека Lombok - это мощный инструмент для улучшения процесса разработки на Java. Она помогает сделать наш код более компактным и читаемым, а также ускоряет разработку.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2👨‍💻1
Иммутабельность в Java. Часть 1.

Вопрос об иммутабельности очень часто задается на собеседованиях от уровня junior до middle. Давайте разбираться.

Что такое иммутабельность?

Иммутабельность (immutable) - это концепция, согласно которой объекты не могут быть изменены после своего создания. В Java это означает, что данные объекта остаются неизменными после их инициализации.

Преимущества иммутабельных объектов:

1) Потокобезопасность
Иммутабельные объекты могут использоваться в многопоточных приложениях без необходимости синхронизации, так как их состояние не меняется.

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

3) Безопасность
Иммутабельные объекты труднее подвергнуть атакам и ошибкам, таким как неправильные изменения данных.

Пример иммутабельного класса объекта в Java на Картинке.

В этом примере класс ImmutablePerson является иммутабельным, так как его состояние (поля name и age) не может быть изменено после создания объекта.

Советы для использования иммутабельности:

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

2) Вместо изменения иммутабельных объектов создавайте новые объекты с обновленными значениями.

3) Избегайте публичных сеттеров (setter methods) в классах, чтобы предотвратить изменение состояния объекта.

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

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻2
Какая из следующих коллекций в Java представляет собой неупорядоченную коллекцию без дубликатов?
Anonymous Quiz
7%
ArrayList
9%
TreeMap
75%
HashSet
5%
LinkedList
3%
Посмотреть ответ
👍8🎉21
Иммутабельность в Java. Часть 2.

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

Immutable класс должен соответствовать следующем критериям:

– Должен быть объявлен как final. Чтобы запретить от него наследоваться.

– Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.

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

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

– Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.

Из того, что железобетонно нужно запомнить — все классы-обертки над примитивными типами — неизменяемые. Integer, Byte, Character, Short, Boolean, Long, Double, Float — все эти классы создают Immutable объекты.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1411
Иммутабельность в Java. Часть 3.1. Классы обертки примитивных типов данных.

В языке программирования Java существует набор классов-оберток (wrappers), таких как String, Double, Integer, Long, Byte, Float, Boolean, Character, Short, предназначенных для работы с примитивными типами данных. Эти классы позволяют преобразовывать примитивные значения в объекты (классы-обертки) и выполнять различные операции над ними.

В этом посте мы рассмотрим классы-обертки для примитивных типов данных, их основные методы и связь с концепцией иммутабельности.

Классы-обертки в Java являются иммутабельными, что означает, что их значения нельзя изменить после создания. Все операции, такие как арифметические действия, создают новые объекты того или иного класса.

1) Integer (java.lang.Integer)

Описание: Класс Integer представляет 32-битное целое число (как и примитивный тип int).

Пример использования:
Integer num = 42;
int primitiveNum = num.intValue();

Иммутабельность: Класс Integer является иммутабельным, что означает, что его значение нельзя изменить после создания. Все операции, такие как арифметические действия, создают новые объекты Integer.

2) Long (java.lang.Long)

Описание: Класс Long представляет 64-битное целое число (как и примитивный тип long).

Пример использования:
Long bigNum = 1234567890L;
long primitiveBigNum = bigNum.longValue();

Иммутабельность: Класс Long также является иммутабельным и не позволяет изменять свое значение.

3) Double (java.lang.Double)

Описание: Класс Double представляет 64-битное число с плавающей запятой (как и double).

Пример использования:
Double value = 3.14159265359;
double primitiveValue = value.doubleValue();

Иммутабельность: Класс Double тоже не изменяет свое значение после создания.

Рассмотрим другие типы классов-оберток в следующем посте.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥21
Иммутабельность в Java. Часть 3.2. Классы обертки примитивных типов данных.

Продолжаем наш обзор классов-оберток над примитивными типами данных в Java:

4) Float (java.lang.Float)

Описание: Класс Float представляет 32-битное число с плавающей запятой (float).

Пример использования:
Float floatValue = 2.71828f;
float primitiveFloatValue = floatValue.floatValue();

Иммутабельность: Класс Float также является иммутабельным.

5) Boolean (java.lang.Boolean)

Описание: Класс Boolean представляет логическое значение (true или false).

Пример использования:
Boolean flag = true;
boolean primitiveFlag = flag.booleanValue();

Иммутабельность: Класс Boolean является иммутабельным и не изменяет свое значение.

6) Character (java.lang.Character)

Описание: Класс Character представляет символ Unicode (как и примитив char).

Пример использования:
Character letter = 'A';
char primitiveLetter = letter.charValue();

Иммутабельность: Класс Character также является иммутабельным.

7) Byte (java.lang.Byte)

Описание: Класс Byte представляет 8-битное целое число (byte).

Пример использования:
Byte smallNumber = 99;
byte primitiveSmallNumber = smallNumber.byteValue();

Иммутабельность: Класс Byte также является иммутабельным.

8) Short (java.lang.Short)

Описание: Класс Short представляет 16-битное целое число (short).

Пример использования:
Short smallValue = 1000;
short primitiveSmallValue = smallValue.shortValue();

Иммутабельность: Класс Short также не изменяет свое значение после создания.

Заключение.

Классы-обертки примитивных типов данных в Java являются иммутабельными. Это означает, что после создания объекта класса-обертки его значение не может быть изменено. Эта особенность позволяет более надежно работать с данными и избегать нежелательных побочных эффектов. Также классы-обертки используются для хранения объектов в различных коллекциях, например List<String> или Map<Integer, String> и др.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👨‍💻3👍2🔥1
Какие из следующих типов данных являются примитивными типами?
Anonymous Quiz
3%
float, char, String
8%
Integer, Double, Boolean
85%
boolean, char, int
4%
long, byte, void
1%
Посмотреть ответ
🎉4👍2😁21👨‍💻1
JSON. Основы.

JSON (JavaScript Object Notation) - это легкий и удобочитаемый формат обмена данными, который широко используется в программировании, в том числе и в языке Java. JSON представляет собой текстовый формат, предназначенный для хранения и передачи структурированных данных. В этом посте мы рассмотрим основы JSON и как его использовать в Java.

Что такое JSON?

JSON - это формат данных, представленный в виде текста, который состоит из пар "ключ-значение". Эти пары могут быть вложенными, создавая иерархическую структуру данных, а также могут содержать различные типы данных, такие как строки, числа, логические значения и даже другие объекты JSON. Важно отметить, что JSON является независимым от языка форматом, и его можно использовать в различных языках программирования.

Пример JSON:

Давайте рассмотрим пример JSON-объекта, представляющего информацию о человеке на Картинке 1:

{
  "firstName": "John",
  "lastName": "Doe",
  "age": 30,
  "isStudent": false,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  },
  "hobbies": ["reading", "traveling"]
}

В этом примере:

"firstName", "lastName" и "age" - это строки и число.
"isStudent" - это логическое значение.
"address" - это вложенный JSON-объект.
"hobbies" - это массив строк.

Использование JSON в Java:

В Java существует библиотека под названием JSON библиотека, которая позволяет разбирать (парсить) JSON-строки и создавать JSON-объекты.
Пример использования JSON-библиотеки для разбора JSON-строки на Картинке 2.

Заключение.

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

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍622🔥2
Знакомо? 😄

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12💯82