Преобразование одного типа данных в другой в настоящее время очень просто, поскольку многие языки, включая Java, поддерживают преобразование для удобства программиста. Здесь преобразование может быть выполнено двумя способами, т.е. неявное или явное преобразование.
- неявное преобразование: этот тип преобразования автоматически выполняется языками программирования. В случае с Java это делает JVM (виртуальная машина Java).
- явное преобразование: этот тип преобразования должен выполняться программистом в соответствии с его требованиями. (Нет правила JVM)
Coercion в Java
Здесь мы будем обсуждать принуждение (также известное как преобразование типов). Итак, Coercion — это процесс преобразования одного типа данных в другой. Проще говоря, неявное преобразование носит в java титул принуждения.
Пример 1
// Java Program to Illustrate Coercion Via
// Integer Data Type to Double Data Type
// Importing required classes
import
java.io.*;
// Class
class
GFG {
// Main driver method
public
static
void
main(String[] args)
{
// Declaring and initializing
// integer and double variables
int
numerator =
15
;
double
result = numerator /
5
;
// Print statement
System.out.println(
"Result is in double format : "
+ result);
}
}
Выход
Result is in double format : 3.0
В приведенном выше примере константа (числитель) 15 является целым числом, но ее контекст требует двойного значения.
Объяснение вывода: Машинная операция выполняется с данными во время выполнения программы:
- Извлекает значение переменной числителя.
- Использование буквального значения ie 5.
- Преобразует значение литерала в число с плавающей запятой.
- Выполняет деление с плавающей запятой (задача ЦП).
- Сохраняет результат в памяти, выделенной для переменной результата.
Пример 2
// Java Program to Illustrate Coercion Via
// Character data type to Integer data type
// Importing required classes
import
java.io.*;
// Class
class
GFG {
// Main driver method
public
static
void
main(String[] args)
{
// Declaring character and integer variables
char
alphabet =
'A'
;
int
ascii_value = alphabet;
// Print statement
System.out.println(
"ASCII Value of A is: "
+ ascii_value);
}
}
Выход
ASCII Value of A is: 65
В приведенном выше примере ascii_value является целым числом, но его контекст требует символьного значения, поэтому с помощью принуждения/неявного преобразования это возможно с легкостью.
Вот еще несколько примеров нескольких принуждений, выполняемых JVM, как указано ниже:
- byte + short = int
- short + byte = int
- char + short = int
- byte + byte = int
- int + int = int
- int + float = float
- long + float = float
- float + double = double
- long + double = double….. and many more.
Примечание. В приведенных выше пунктах «+» — любой арифметический оператор, который подходит для соответствующих типов данных.