Java 数据类型及转换
整形:
byte(1个字节) 范围:-128~127
short(2个字节) 范围:-215~215-1 (-32768~32767)
int(4个字节) 范围:-231~231-1 (-2147483648~2147483647)
long(8个字节) 范围:-263~263-1
浮点型:
float(4个字节) 范围:-3.403E38~3.403E38
double(8个字节) 范围:-1.798E308~1.798E308
float只能表示7位有效数字,double能表示15位有效数字
字符型:
char(2个字节)
布尔型:
boolean(1个位)
整型的三种表示形式:
十进制整数,如:12,-30
八进制整数,要求以0开头,如:0123
十六进制整数,要求以0x或0X开头,如:0x123,0X123
整型默认为 in t型,long 型需要在数字后面加 ’l’ 或 ’L’ 。
如:long data = 30000L;
浮点型有两种表示形式:
十进制形式,必须含有小数点,如:3.14,4.25,.25
科学记数法形式,如:3.14e2,3.14E2
浮点型默认为 double 型,float需要在数字后面加 ’f’ 或 ’F’ 。
如:float length = 15.2F;
字符类型有三种表示形式:
单引号括起来单个字符,如:char c = 'B';
十六进制编码形式,如:char c1 = ‘\u0042’;
十进制表示形式,如:char c2 = 20320; // 20320(十进制) -> 4F60(十六进制) -> '你'(字符)
Java字符采用Unicode编码,每个字符占用两个字节,因而可用十六进制编码形式表示(前缀为u表示Unicode)。
Java中还允许使用转义字符 '\' 来将其后的字符转变为其他的含义。
如:char c3 = '\n'; // 换行
特殊字符
转移符 | 含义 | Unicode值 |
\\ | 反斜杠 | \u005c |
\' | 单引号 | \u0027 |
\" | 双引号 | \u0022 |
\t | 制表符(tab) | \u0009 |
\r | 回车 | \u000d |
\n | 换行 | \u000a |
\b | 退格(backspace) | \u0008 |
boolean类型适用于逻辑运算,一般用于程序流程控制中作为条件判断、
boolean类型只允许取值 true 和 false,不可以用0或非0的整数代替 true 和 false 。
布尔值不能与整数类型进行转换、
数据类型转换
自动类型转换
byte -> short(char) -> int -> long -> float -> double
两种类型兼容
目标类型表述范围大于源类型
有可能会丢失精度,如下:
int -> float long -> float long -> double
强制类型转换
double -> float -> long -> int -> short(char) -> byte
有可能丢失精度,如下:
float -> int float -> long double -> long