Java基础——数据类型、运算符与结构
1数据类型
数据运算的最小单位——bit
数据的最小单位——byte
数据类型 | 大小(单位bit) | 对应包装类 |
---|---|---|
byte | 8(1个字节) | Byte |
short | 16(2个字节) | Short |
int | 32(4 个字节) | Integer |
long | 64(8个字节) | Long |
float | 32(4 个字节) | Float |
double | 64 (8个字节) | Double |
char | 16 (2个字节) | Character |
boolean | - | Boolean |
2数据类型转换
基本数据类型互相转换
首先给基本数据类型按照取值范围从小到大排序:
byte < short < int < long < float < double
- 小的赋值给大的,直接赋值,Java会自动转换;
- 大的赋值给小的,强制转换,会丢失精度;
- Java会把小数默认成double
float f = 1.0; //错误写法
float f = 1.0f; //正确写法,后缀f大小写都可以
基本数据类型与包装类互相转换
基本数据类型没有对象的概念,引用数据类型相当于是一个类,具有对象的概念,非常方便操作。
为了方便操作基本数据类型,让基本数据类型也有对象的概念,便有了对应的包装类。
- 基本数据类型转换为包装类
int i = 10;
Integer j = i;
//就是如此直接,实际上完整写法是下面这样,只不过Java虚拟机自动搞定了,这个过程称为自动装箱
Integer j = Integer.valueOf(i);
- 包装类转换为基本数据类型
int k = j;
//同上,这个过程称为自动拆箱
int k = j.intValue();
3 类型与泛型的区别
- 类型存在多态,泛型没有多态
- 类型用于约束外部对象的使用场景,泛型用于约束内部对象的使用场景
3运算符
- 元素与运算符结合得到表达式,表达式运算结果的类型最小为int,最大为元素类型中最大的那个;
- 赋值运算符除了=全是复合运算符,特点为运算后数据类型不会变;
- &和&&的区别?
&一定执行第二个表达式,&&不一定执行第二个表达式。
对于&&来说,若第一个表达式为false,结果定为false,不会再去判断第二个表达式。
|与||的区别同理,对于||来说,若第一个表达式为true,结果定为true。
4结构
分支结构switch
int i = 10;
switch (i) {
case 10:
输出1;
case 20:
输出2;
default:
输出其它;
}
结果:
1
2
其它
分析:
switch语句会依次根据i值与case作等值判断,当判断成功后,会执行该case后的所有语句,除非用break截断
缺点:
只能做等值判断,范围判断不如if方便
循环结构while与do…while的区别
while(条件){
执行语句
}
// 先判断后执行,执行语句最少一次都不执行
do{
执行语句
}while(条件)
// 先执行后判断,执行语句最少执行一次