一旦将各种类型的变量和常量放在一个表达式中,它们就可以更改为相似的类型。这种将一种预定义类型转换为另一种类型的技术在 Java 中称为类型转换。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
我们在编程语言中使用两种不同类型的转换。
如果类型转换是在没有程序员参与的情况下通过编译器立即进行的,则这种类型转换称为隐式类型转换。编译器从根本上鼓励每个操作数都转向最大操作数的数据类型。在整个数据转换过程中不会发生数据丢失。转换过程中不会抛出异常,因此被称为类型安全。较小数量的转换或较大数量的转换可以是隐式转换。整数类型数据转换为浮点数。
float i=0; int j=10; i=j;
// 这可以是隐式转换,因为浮点数可以大于整数,因此不会缺少数据,也不例外。
可以通过程序员强制执行的类型转换称为显式类型转换。从根本上讲,程序员使表达式成为特定类型。显式类型转换可以称为类型转换。数据转换期间可能会或可能不会发生数据丢失。因此存在细节丢失的可能性。如果它尝试在不进行类型转换的情况下执行,它可能会抛出错误。较大数字到较小数字的转换可以是显式转换。
float k=123.456 int i= (int) k
// 这可以是显式转换以及 (int) 是类型转换、运算符。此时,我们可能会设法逃脱异常,但您可以发现明显的数据丢失。即 i=123
// .456 可以在转换过程中删除
与其他编程语言一样,java 中有两种类型的转换:
下面详细提到的类型转换示例:
代码:
我们这里有一个简单的程序,顶部有一些声明,float、double、byte、short 和 long,并且每个变量都有命名以帮助识别它们的类型,例如 float 是 floatVal,
代码:
长就是长Val
代码:
如果程序运行,它只会打印出一条成功消息。
所以让我们看看一些类型转换是如何发挥作用的。首先,让我们继续创建一个变量。我们有短路,我们就称其为结果。
事实上,我们将其命名为 result1。让我们做一个简单的作业。首先,我们将 byteVal 分配给它。现在,正如我们所期望的,如果我们继续运行它,那么就会成功运行。
代码:
输出:
我们知道这是一个有效的分配,因为一个字节可以被分配为一个短整型,因为这是一个扩大转换。
但是,如果我们采用这个 byteVal,并将其设为 longVal,那么现在它实际上是一个 long;如果我们运行这个,我们会在这里收到一条错误消息,指出类型不兼容,可能会丢失从长到短的转换。
代码:
所以我们在这里可以做的是我们可以进行显式强制转换。我们先简单介绍一下。现在它是有效的,所以我们可以运行它。
代码:
当然,它确实有效。因为多头不能转为空头,因为那是缩小转换。
输出:
但是通过将显式强制转换放在它前面,现在它是有效的。如果我们愿意,我们可以非常明确地放置一个强制转换符号,并说你知道,我们知道虽然字节转换是合法的,但我们想通过将短强制转换放在那里来明确表明我们正在强制转换它,我们可以这样做那个,而且这是完全合法的。
代码:
输出:
现在,让我们看看另一个场景。我们将创建另一个变量,我们将其称为 result2, 并且 result2 也很短。我们在这里要做的就是取出 byteVal,然后减去 longVal。现在我们知道这是不合法的,因为表达式的结果将是其中最大整数的大小,即长度。
代码:
因此,如果我们运行此命令,我们会收到一条错误消息,指出将长整型转换为短整型无效。
但是假设我们想要继续并保持结果尽可能短。我们需要进行演员阵容。但我们想将这次转换为整个结果的值。所以我们要做的就是把短演员表放在它前面。
将短演员表放在此处。并将整个内容括在括号中。并运行它。
代码:
它将成功运行。
输出:
现在声明另一个名为 result3 的变量,但将其声明为 long。所以得到结果 3,我们在这里要做的就是分配我们的 longVal – floatVal。所以我们运行它,从 float 转换为 long 时会出现错误,因为每当我们有整数类型和任何浮点类型时,结果都将是浮点类型。
代码:
所以让我们继续将结果转换为浮点数。因此,通过将其设为浮动,我们应该能够继续运行它。并成功运行。
代码:
输出:
但是现在,如果我们在这里获取 floatVal 并将其转换为 doubleVal,并且如果我们尝试运行它,我们会收到错误,因为它表示结果将是 double,因为当您执行整数时和浮点数,它是方程中最大浮点数的大小。
代码:
所以让我们继续将结果加倍,这样现在我们就可以运行它了。
代码:
输出:
1. Java 中的变量是强类型
2. 原始类型
3.类型转换
以上是Java 中的类型转换的详细内容。更多信息请关注PHP中文网其他相关文章!