Ps:字符串不属于基本数据类型,它是类!
基本数据类型变量的存储(按照作用范围分为)
- 类级
- 对象实例级
- 方法级
- 块级
运算中的数据类型
// 运算中的数据类型:
int a=Integer.MAX_VALUE, b=Integer.MAX_VALUE;
long rs1=(long)a+(long)b; // 运算中的数据类型:long
long rs2=a+(long)b; // 运算中的数据类型:long
long rs3=(long)(a+b); // 运算中的数据类型:int
long rs4=a+b; // 运算中的数据类型:int
System.out.println(rs1);
System.out.println(rs2);
System.out.println(rs3);
System.out.println(rs4);
short s1=30000;
short s2=10000;
short s3=(short)(s1+s2); // s1 和 s2 先转换成 int 类型在进行运算
默认值
当变量作为作为类成员使用时,java才确保给定其初始值,防止程序运行时错误
数据类型 | 初始值 |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
char | 'u0000' |
float | 0.0f |
double | 0 |
boolean | false |
所有引用类型 | null |
基本数据类型的包装类都属于引用类型
基本类型 | 大小(字节) | 默认值 | 封装类 |
byte | 1 | (byte)0 | Byte |
short | 2 | (short)0 | Short |
int | 4 | 0 | Integer |
long | 8 | 0L | Long |
float | 4 | 0.0f | Float |
double | 8 | 0.0d | Double |
boolean | - | false | Boolean |
char | 2 | \u0000(null) | Character |
Ps:如果一边是包装类,一边是基本类型时;或者使用了<、>、<=等比较符,都会进行值比较;如果发现==两边都是对象,它就直接比较引用,而不是值;null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例。