Базовая информация о типизации.


Базовая информация о типизации.

Базовая информация о типизации в языке программирования Java включает следующие ключевые аспекты, основанные на принципах строгой типизации:

1. Строгая типизация

Java является строго типизированным языком. Это означает, что каждая переменная и каждое выражение имеют строго определенный тип уже на этапе компиляции. Любое несоответствие типов (например, попытка присвоить строку числовой переменной без явного преобразования) вызовет ошибку компиляции. Компилятор проверяет все присваивания и вызовы методов на совместимость типов.

2. Категории типов данных

В Java типы данных делятся на две основные группы (и специальный тип null):

• Примитивные типы (Primitive types): Хранят непосредственно значение. Их всего восемь,:

    ◦ Целочисленные: byte (8 бит), short (16 бит), int (32 бита), long (64 бита).

    ◦ Символьный: char (16-битный символ Unicode).

    ◦ Вещественные (с плавающей точкой): float (32 бита), double (64 бита).

    ◦ Логический: boolean (значения true или false). Тип boolean — единственный примитивный тип, который нельзя преобразовать ни в какой другой примитивный тип, и наоборот.

• Ссылочные типы (Reference types): Хранят ссылку (адрес в памяти) на объект, а не сам объект. К ним относятся:

    ◦ Классы (например, String, Integer).

    ◦ Интерфейсы.

    ◦ Массивы.

    ◦ Переменные типов (type variables). Значение по умолчанию для ссылочных типов — null.

3. Особенности примитивных типов

• Целые числа: По умолчанию целочисленные литералы имеют тип int. Если один из операндов имеет тип long, результат операции будет long. Перед выполнением арифметических операций типы byte, short и char автоматически расширяются (повышаются) до int.

• Вещественные числа: По умолчанию литералы с плавающей точкой имеют тип double. Стандарт различает положительный и отрицательный ноль, а также специальные значения: бесконечность (POSITIVE_INFINITY, NEGATIVE_INFINITY) и «не число» (NaN).

4. Классы-обертки (Wrappers)

Для каждого примитивного типа существует соответствующий класс-обертка (reference type), что позволяет использовать примитивы как объекты (например, в коллекциях):

byte -> Byte

int -> Integer

double -> Double

char -> Character и так далее. Существует механизм автоупаковки (autoboxing) и автораспаковки (unboxing), который автоматически преобразует примитивные типы в соответствующие объекты-обертки и обратно при необходимости.

5. Преобразование типов

Преобразование типов бывает двух видов:

• Неявное (автоматическое): Происходит, когда типы совместимы и целевой тип шире исходного (например, int в long).

• Явное (приведение типов): Требуется, когда возможно потеря данных (например, double в int).

6. Переменные и константы

• Переменные: Должны быть объявлены перед использованием с указанием типа (например, int a = 10;).

• Константы: Объявляются с ключевым словом final. Значение такой переменной может быть присвоено только один раз и не может быть изменено впоследствии.

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:


Базовая информация о типизации.

Базовая информация о типизации в языке программирования Java включает следующие ключевые аспекты, основанные на принципах строгой типизации:

1. Строгая типизация

Java является строго типизированным языком. Это означает, что каждая переменная и каждое выражение имеют строго определенный тип уже на этапе компиляции. Любое несоответствие типов (например, попытка присвоить строку числовой переменной без явного преобразования) вызовет ошибку компиляции. Компилятор проверяет все присваивания и вызовы методов на совместимость типов.

2. Категории типов данных

В Java типы данных делятся на две основные группы (и специальный тип null):

• Примитивные типы (Primitive types): Хранят непосредственно значение. Их всего восемь,:

    ◦ Целочисленные: byte (8 бит), short (16 бит), int (32 бита), long (64 бита).

    ◦ Символьный: char (16-битный символ Unicode).

    ◦ Вещественные (с плавающей точкой): float (32 бита), double (64 бита).

    ◦ Логический: boolean (значения true или false). Тип boolean — единственный примитивный тип, который нельзя преобразовать ни в какой другой примитивный тип, и наоборот.

• Ссылочные типы (Reference types): Хранят ссылку (адрес в памяти) на объект, а не сам объект. К ним относятся:

    ◦ Классы (например, String, Integer).

    ◦ Интерфейсы.

    ◦ Массивы.

    ◦ Переменные типов (type variables). Значение по умолчанию для ссылочных типов — null.

3. Особенности примитивных типов

• Целые числа: По умолчанию целочисленные литералы имеют тип int. Если один из операндов имеет тип long, результат операции будет long. Перед выполнением арифметических операций типы byte, short и char автоматически расширяются (повышаются) до int.

• Вещественные числа: По умолчанию литералы с плавающей точкой имеют тип double. Стандарт различает положительный и отрицательный ноль, а также специальные значения: бесконечность (POSITIVE_INFINITY, NEGATIVE_INFINITY) и «не число» (NaN).

4. Классы-обертки (Wrappers)

Для каждого примитивного типа существует соответствующий класс-обертка (reference type), что позволяет использовать примитивы как объекты (например, в коллекциях):

byte -> Byte

int -> Integer

double -> Double

char -> Character и так далее. Существует механизм автоупаковки (autoboxing) и автораспаковки (unboxing), который автоматически преобразует примитивные типы в соответствующие объекты-обертки и обратно при необходимости.

5. Преобразование типов

Преобразование типов бывает двух видов:

• Неявное (автоматическое): Происходит, когда типы совместимы и целевой тип шире исходного (например, int в long).

• Явное (приведение типов): Требуется, когда возможно потеря данных (например, double в int).

6. Переменные и константы

• Переменные: Должны быть объявлены перед использованием с указанием типа (например, int a = 10;).

• Константы: Объявляются с ключевым словом final. Значение такой переменной может быть присвоено только один раз и не может быть изменено впоследствии.

https://webprogr.ru/~wolsX
Короткая ссылка на новость:https://webprogr.ru/~wolsX


Последние новости

Базовая информация о типизации.


Базовая информация о типизации.

Базовая информация о типизации в языке программирования Java включает следующие ключевые аспекты, основанные на принципах строгой типизации:

1. Строгая типизация

Java является строго типизированным языком. Это означает, что каждая переменная и каждое выражение имеют строго определенный тип уже на этапе компиляции. Любое несоответствие типов (например, попытка присвоить строку числовой переменной без явного преобразования) вызовет ошибку компиляции. Компилятор проверяет все присваивания и вызовы методов на совместимость типов.

2. Категории типов данных

В Java типы данных делятся на две основные группы (и специальный тип null):

• Примитивные типы (Primitive types): Хранят непосредственно значение. Их всего восемь,:

    ◦ Целочисленные: byte (8 бит), short (16 бит), int (32 бита), long (64 бита).

    ◦ Символьный: char (16-битный символ Unicode).

    ◦ Вещественные (с плавающей точкой): float (32 бита), double (64 бита).

    ◦ Логический: boolean (значения true или false). Тип boolean — единственный примитивный тип, который нельзя преобразовать ни в какой другой примитивный тип, и наоборот.

• Ссылочные типы (Reference types): Хранят ссылку (адрес в памяти) на объект, а не сам объект. К ним относятся:

    ◦ Классы (например, String, Integer).

    ◦ Интерфейсы.

    ◦ Массивы.

    ◦ Переменные типов (type variables). Значение по умолчанию для ссылочных типов — null.

3. Особенности примитивных типов

• Целые числа: По умолчанию целочисленные литералы имеют тип int. Если один из операндов имеет тип long, результат операции будет long. Перед выполнением арифметических операций типы byte, short и char автоматически расширяются (повышаются) до int.

• Вещественные числа: По умолчанию литералы с плавающей точкой имеют тип double. Стандарт различает положительный и отрицательный ноль, а также специальные значения: бесконечность (POSITIVE_INFINITY, NEGATIVE_INFINITY) и «не число» (NaN).

4. Классы-обертки (Wrappers)

Для каждого примитивного типа существует соответствующий класс-обертка (reference type), что позволяет использовать примитивы как объекты (например, в коллекциях):

byte -> Byte

int -> Integer

double -> Double

char -> Character и так далее. Существует механизм автоупаковки (autoboxing) и автораспаковки (unboxing), который автоматически преобразует примитивные типы в соответствующие объекты-обертки и обратно при необходимости.

5. Преобразование типов

Преобразование типов бывает двух видов:

• Неявное (автоматическое): Происходит, когда типы совместимы и целевой тип шире исходного (например, int в long).

• Явное (приведение типов): Требуется, когда возможно потеря данных (например, double в int).

6. Переменные и константы

• Переменные: Должны быть объявлены перед использованием с указанием типа (например, int a = 10;).

• Константы: Объявляются с ключевым словом final. Значение такой переменной может быть присвоено только один раз и не может быть изменено впоследствии.

Рейтинг@Mail.ru