当类的某个成员是基本数据类型时,即使没有进行初始化,java也会确保它获得一个默认值,如下表所示:
序号 | 数据类型 | 大小/位 | 封装类 | 默认值 | 可表示数据范围 |
---|---|---|---|---|---|
1 | boolean | 8 | Boolean | false | true或false |
2 | char(字符) | 16 | Character | 空 | 0~65535 |
3 | byte(位) | 8 | Byte | (byte)0 | -128~127 |
4 | short(短整数) | 16 | Short | (short)0 | -32768~32767 |
5 | int(整数) | 32 | Integer | 0 | -2147483648~2147483647 |
6 | long(长整数) | 64 | Long | 0L | -9223372036854775808~9223372036854775807 |
7 | float(单精度) | 32 | Float | 0.0f | 1.4E-45~3.4028235E38 |
8 | double(双精度) | 64 | Double | 0.0d | 4.9E-324~1.7976931348623157E308 |
验证代码如下:
public class BasicDataType {
static boolean memberBoolean;
static char memberChar;
static byte memberByte;
static short memberShort;
static int memberInt;
static long memberLong;
static float memberFloat;
static double memberDouble;
public static void main(String[] args) {
System.out.println("memberBoolean:" + memberBoolean);
System.out.println("memberChar:" + memberChar);
System.out.println("memberByte:" + memberByte);
System.out.println("memberShort:" + memberShort);
System.out.println("memberInt:" + memberInt);
System.out.println("memberLong:" + memberLong);
System.out.println("memberFloat:" + memberFloat);
System.out.println("memberDouble:" + memberDouble);
}
}
在BasicDataType类中定义了8种基本数据类型的变量,并未对其初始化
输出结果如下:
memberBoolean:false
memberChar:
memberByte:0
memberShort:0
memberInt:0
memberLong:0
memberFloat:0.0
memberDouble:0.0
当变量作为类的成员使用时,java才会给出默认值,以确保那些是基础数据类型的变量得到初始化,防止程序出错,但是默认值对我们程序来说可能是不正确的,所以最好还是明确的对变量进行初始化
上述确保初始化的方法并不适用于“局部变量”,java会在编译时返回一个错误,如下图所示:
变量“local”可能尚未初始化
网友评论