数据类型
1. 基本类型
包括八种 基本类型
有四种整数类型
byte 1字节 (-128 – 127)(-2^7 – 2^7-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)
图例
显示的输出结果 如下
有两种 浮点数类型(带小数点的)
float 4字节 单精度
double 8字节 双精度
图例
有一种char类型
char 2字节, 0到65535 字符或字符的证书编码 可以作为整数,作数字运算
有一种布尔类型(在流程控制中作为判断条件)
boolean 1字节 作为判断
True 真
False 假
基本类型字面值
整数字面值是int类型
* int a =8475;
long = 9999999999;//错,右侧字面值是int类型,且超出int值
byte,short,char 三种范围比int小的整数.可以以范围内的值直接赋值
byte a = 127;
byte b = 128;//错,右侧是int类型但超出了byte值
* 浮点数字面值是double类型
double a = 3.14;
float b = 3.14;// 错,右侧是double类型
* 字面值后缀
L = long long a = 999999999L;
F= float float a = 3.14 F
D= double double a= 3D
* 字面值前缀
0x – 16进制 int a = 0xff; 输出 (255)
0 - 8 进制 int a = 0377;
\u – char类型16进制 char a = ‘\u4e2d’
基本类型运算规则
* 运算结果的数据类型,与运算项中范围最大的类型一致
3/2得 1
3.0/2得 1.5
* byte,short,char 比int范围小的整数运算时,会自动转成int
byte a = 2
byte b =3
byte c = a+b;//错,右侧是int+int
* 整数运算溢出
int a= Integet.MAX_VALUE;
a = a+1; //不会出错,但得到的是负数最小值
正数会得出负数,负数会得出正数
* 浮点数运算不精确
2-1.9 得 0.10000000000000000009
4.35*100 得434.999999999999999994
* 浮点数的特殊值
infinity – 无穷大 3.14/0 Double.MAX_VALUE*2
NaN – Not a Numbel 不是个数 负数开平方 Math.sqrt(-2)
基本类型类型转换
*-范围小的类型—>范围大的类型
自动转换
byte a = 10;
int b = a
*范围大的类型–> f范围小的类型
强制转换
int a = 255;
byte = (byte)a;
运算符
+ ,-, /,*,<, >, <=, >=, ==, !=, %
& 逻辑与: 两侧同时为真, 结果是真
&& 短路与: 左侧为假,右侧被忽略
| 逻辑或: 两侧同时为假,结果是假
|| 短路或: 左侧为真,右侧被忽略
显示(输出)结果如下
!
非
非真是假,非假是真。