整型
通常所说的整型分为4类
数值类型 | 内存(byte) | 范围 |
---|---|---|
byte | 1 | -2^7~2^7-1 |
short | 2 | -2^15~2^15-1 |
int | 4 | -2^31~2^31-1 |
long | 8 | -2^63~2^63-1 |
Java整数常量默认是int类型,如果较小的整数常量赋给byte或short变量,则以byte或short类型处理。
如果超过int类型范围,Java并不会自动将该整数常量当做long类型处理,此时最好使用L作为后缀。
在Java中,可以使用十进制、二进制、八进制、十六进制表示整数常量。
int octValue=013;
int hexValue=0x13;
int binValue=0b11010100;
当定义32位的二进制整数时,其最高位是符号位,因此如果是1,则表示为负数。负数在计算机是以补码形式存在的,因此还要换算成原码。(正数的补码和源码完全相同,负数的补码是反码加1)
字符型
字符型通常表示单个字符,使用单引号。Java使用16位的Unicode字符集作为编码方式。
字符型常量有3种表示形式:
直接通过单个字符指定,如'A','9'
通过转移字符表示,如'\n'、'\t'
使用Unicode值表示,如'\u0000'
Java没有提供字符串基本类型,而是通过String类表示字符串。
浮点型
Java的浮点类型有两种:float和double。
Java的浮点类型有固定的表数范围和字段长度,遵循IEEE 754标准,采用二进制数据的科学计数法表示。
对于float,第1位是符号位,接下来8位表示指数,接下来23位表示尾数;
对double,第1位是符号位,接下来11位表示指数,接下来52位表示尾数。
由于是采用二进制数据的科学计数法,因此不可能精确表示浮点数,此时可以考虑BigDecimal类。
Java默认的浮点类型是double,并提供3个特殊的浮点数值:POSITIVE_INFINITY、NEGATIVE_INFINITY、NaN。
Java 7引入的功能是:可以在数值中使用下划线,不管是整型数值还是浮点型数值。
double pi=3.14_15_9265;
类型转换
Java中所有数值类型变量可以进行类型变换。
表数范围小的类型可以向表数范围大的类型自动转换。反之,则需要进行强制类型转换。
在算术表达式中,数据类型会自动提升为表达式中最高级操作数同样的类型。
运算符
Java支持所有基本的算术运算符,包括加减乘除和求余等。
Java支持单目运算符:++、--
Java的赋值表达式是有值的,就是右边被赋的值。
int a,b,c;
a=b=c=7;
Java支持位运算符:&(按位与)、|(按位或)、~(按位非)、^(按位异或)、<<(左移)、>>(右移)、>>>(无符号右移)、