Java的8大数据
类型(位数) | 存储需求 | 取证范围 | 初始值 | 封装类 |
byte(8) | 1字节 | -128~127 | 0 | Byte |
short(16) | 2字节 | -32 768~32767 | 0 | Short |
int(32) | 4字节 | -2 147 483 648 ~ 2 147 483 647 | 0 | Integer |
long(64) | 8字节 | -9 223 372 036 854 775 808~ 9 223 372 036 854 775 807 | 0 | Long |
float(32) | 4字节 | 0.0 | Float | |
double(64) | 8字节 | 0.0 | Double | |
char(16) | 2字节 | null | Character | |
boolean(1) | 1个字节 | false | Boolean | |
Java各个整数类型都有固定的范围和字段长度。Java默认的语言类型为int,如果声明了long型常量需要加'L',
float和double都是浮点类型,char的是文本型(不建议在程序中使用char类型),布尔类型只有2个值(false和true)。
int i = 200; //正确
long l = 2000L; //正确
double d = 200.2;//正确
float f = 200.2f;//正确
不同数据的运算需要提前转换,其中有以下规则
- 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
- 否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。
- 否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
- 否则,两个操作数都将被转换为int类型。
一般情况下int类型会自动的转换为double类型,有时候也会将double转化为int类型,但会丢失一些信息,例如
double x= 9.5555;
int nx = (int) x;
//此时nx为9,通过截断小数部分强制转换为int
double x = 9.55645;
int nx = (int) Math.round(x);
// nx为9,Math.round方法 四舍五入
还有Java支持三元操作符?:
x < y ? x : y;
//会返回一个较小的值(从x和y中)
我在一天中午无聊时,重新复习《Java核心卷一》的内容,也为自己重新复习一遍JavaSE的基本知识。本文主要讲解了Java中的基本数据类型和一些常用的运算符。在随后的几天中也会发布一些其他的Java基础知识。