1、 Java变量按照数据类型怎么划分?

(指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小)
image.png
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
|

  1. 字符型: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、一道编程题

  1. class OperatorTest {
  2. public static void main(String[] args) {
  3. boolean x = true;
  4. boolean y = false;
  5. short z = 40;
  6. if ((z++ == 40) && (y = true)) {//z=41
  7. z++;//z=42
  8. }
  9. if ((x = false) || (++z == 43)) {//z=43
  10. z++;//z=44
  11. }
  12. System.out.println("z = " + z);//z=44
  13. }
  14. }

注意第6行,y=true,判断为真
如果是y==true,判断为假