1、 Java变量按照数据类型怎么划分?
(指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小)
1. 整型
byte | short | int | long |
---|---|---|---|
1字节=8bit | 2字节 | 4字节 | 8字节 |
byte范围:-128 ~ 127 | - 通常,定义整型变量时,使用int型。 - 整型的常量,默认类型是:int型 |
声明long型变量,必须以”l”或”L”结尾 |
2. 浮点型(表示带小数点的数值)
float | double |
---|---|
4字节 | 8字节 |
- float表示数值的范围比long还大 |
- 定义float类型变量时,变量要以”f”或”F”结尾
|
- 通常,定义浮点型变量时,使用double型。
- 浮点型的常量,默认类型为:double
|
- 字符型:char (1字符=2字节)
① 定义char型变量,通常使用一对’’,内部只能写一个字符
② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
4.布尔型:boolean
① 只能取两个值之一:true 、 false
② 常常在条件判断、循环结构中使用
2、基本数据类型变量之间自动类型提升的运算规则?
自动类型转换(只涉及7种基本数据类型)
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short —> int —> long —> float —> double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
3、基本数据类型变量之间强制类型转换的使用规则?
- 强制类型转换是自动类型提升运算的逆运算。将容量大的数据类型转换为容量小的数据类型。
- 使用强转符:()
- 可能造成精度降低或溢出
byte b;
b = (byte)(b+4); //强制转换了
4、“&”和“&&”的异同
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
5、++与—
1.++i :先自增1,后运算
i++ :先运算,后自增1
2.— i:先自减1,后运算
i— :先运算,后自减1
6、一道编程题
class OperatorTest {
public static void main(String[] args) {
boolean x = true;
boolean y = false;
short z = 40;
if ((z++ == 40) && (y = true)) {//z=41
z++;//z=42
}
if ((x = false) || (++z == 43)) {//z=43
z++;//z=44
}
System.out.println("z = " + z);//z=44
}
}
注意第6行,y=true,判断为真
如果是y==true,判断为假