大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下:
一、算术运算符
单目运算符:+(取正)-(取负) ++(自增1) --(自减1)
1.1 +(取正)-(取负)
当操作数是byte,short,char时,会自动转化为int类型;返回结果为int。
当操作数是int,long时,不转化,原来是啥类型,还是啥类型。
1.2++(自增1)--(自减1)
不管操作数是啥类型,不转化。
双目运算符:+ - * / %(取余)
1.3+ - * / %(取余)
当两个操作数中没有long类型时,两个操作数中非int类型会先自动转换为int类型,再参与运算,返回结果为int;
当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long;
二、位运算符
位运算符:&(与)、|(或)、^(异或)、~(非)、<< (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)
2.1 &(与)、|(或)、^(异或)
与1.3情况相同
2.2 ~(非)
与1.1情况相同
2.3<< (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)
与1.1情况相同
总结
虽然上面列出这么多种情况,但归纳下不难记住。
即:除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
首先,我们来探讨“Java中的byte, short, int在计算时会自动转化为int”。在Java中,有五种整数类型:byte、short、int、long和char。当这些类型之间进行算术运算时,较小的类型(byte、short)会被提升到较大的类型...
在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等场景下。下面将详细介绍如何进行这些...
例如,`byte`、`short`和`char`类型在与`int`、`long`、`float`或`double`进行运算时,会被提升到更高的类型。 在Java中,数据类型提升遵循以下规则: 1. `char`会被提升到`int`,因为每个字符在内存中占据16位(两...
自动转换是指当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,例如 byte、short、char 可以自动转换为 int、long、float 和 double。强制转换是指将“大”数据转换为...
Java中数据类型的转换顺序是从byte、short、char到int,然后依次是long、float和double,这种顺序被称为类型提升。 需要注意的是,类型转换可能引发溢出问题。例如,当一个大于int最大值的long值尝试转换为int时,...
基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。引用数据类型主要包括类(class)、接口(interface)和数组,它们都是对象的引用,而不是对象本身...
- 数据类型从低精度向高精度转换是允许的,例如:byte -> short -> char -> int -> long -> float -> double。 - 字符型(char)可以转换为整型(int)。 - 布尔型(boolean)不能和其他任何类型进行转换。 - 对于引用...
基本数据类型包括boolean、byte、char、short、int、long、float、double。引用数据类型包括类、接口、数组等。在进行类型转换时,需要注意不同数据类型之间的转换规则。 2. 自动类型转换 在Java中,如果一个类型较...
总之,在Java中,对于`byte`、`short`和`char`等基本数据类型,进行算术运算时,这些值会被隐式提升为`int`类型。如果需要将运算结果存储回这些小范围类型,通常需要显式转换以避免数据溢出问题。理解这些规则对于...
Java有八种基本数据类型:byte、short、char、int、long、float、double以及boolean。当这些基本数据类型之间进行运算时,较小的数据类型会被自动提升到较大的数据类型,以确保结果的精确性。例如,一个byte与一个...
简单类型包括boolean、byte、char、short、int、long、float和double,它们直接存储值,大小固定,不受机器架构影响。Java还为每个简单类型提供了一个对应的封装器类,如Integer、Byte、Character、Short、Integer、...
简单类型包括boolean、byte、char、short、int、long、float和double,以及void。这些简单类型占用了固定的二进制位数,不受机器架构的影响,从而确保了代码的可移植性。Java还为每个简单类型提供了一个对应的封装器...
Java中的整型分为四种类型:byte、short、int和long。它们分别占用8位、16位、32位和64位内存。数据类型的表示范围也因此不同,例如: - byte:8位,两个补码表示,范围是-128到127。 - short:16位,两个补码表示,...
Java支持八种基本数据类型:byte、short、int、long、float、double、boolean和char。例如,在例2-1中,声明了三个double类型的变量x、y和s,用来计算正方形的面积。 双精度浮点数运算 Java支持双精度浮点数运算。...
在Java语言中,位运算符可以应用于所有整型数据类型,如`long`、`int`、`short`、`char`和`byte`。位运算在很多场景下非常有用,例如优化算法性能、实现高效的数据结构等。 #### 二、位运算符 Java中的位运算符...
1. 自动类型提升(隐式转换):在运算或赋值时,范围小的类型自动提升为范围大的类型,如int + double会自动将int转换为double进行运算。 2. 强制类型转换(显式转换):需要使用括号将目标类型放在要转换的表达式...
- 自动类型转换:从低级别类型(如byte、short、char)到高级别类型(如int、long、float、double)会自动进行,无需额外操作。例如,将byte赋值给int,系统会自动提升数据类型。然而,char类型转换为整型时,会...
- 对于byte, short, char,它们在运算时会先提升为int类型。 - char转换为整型时,会转换为对应的ASCII码值。 - **强制类型转换**: - 需要注意可能产生的溢出和精度损失,如将double强制转换为int时,小数部分...
总的来说,`switch`语句在Java中是一个强大的控制流工具,它可以处理`byte`、`short`和`char`以及它们的包装类,但不支持`long`。从Java 7开始,`switch`也支持`String`对象,这极大地提高了代码的可读性和可维护性...