首先讲一段题外话,话说我做测试的同事杨小姐,她有一个朋友在某个公司做同样的工作。听她这个朋友说,其公司有一个可以用“奇葩”形容的安卓猿。据说这位猿吃住都在公司。领导安排的任务,基本上都是加班加点超时完成。深的领导中意,而领导也经常拿他“激励”公司的IOS猿。害的ios猿们总是抱怨非常。初听到这件事,感到有点不可思议,不由得想这是何苦来哉!然而每次再回想不由得替他感到忧心,不知他会不会与同事之间产生隔阂,他在公司是怎样一个处境。领导是不是很高兴能有这样一个勤勤恳恳的员工。安卓猿和ios猿们会不会地里着前行。
java猿们应该都知道java有九个基本数据类型。《java编程思想》给出了以下基本类型列表。
基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
boolean | _ | _ | _ | Boolean |
char | 16-bit | Unicode 0 | Unicode 2^16-1 | Character |
byte | 8 bits | -128 | +127 | Byte |
short | 16 bits | -2^15 | +2^15-1 | Short |
int | 32 bits | -2^31 | +2^31-1 | Integer |
long | 64bits | -2^63 | +2^63-1 | Long |
float | 32 bits | IEEE754 | IEEE754 | Float |
double | 64 bits | IEEE754 | IEEE754 | Double |
void | - | - | - | Void |
而按照《java编程思想》的解释这些基本类型不用通过new来创建变量,而是创建一个并非是引用的“自动”变量。这些变量直接存储“值”,并置于堆栈中,因此更加高效。
boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true和false。
基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。例如:
char c = 'x';
Character ch = new Character(c);
也可以:
Character ch = new Character('c');
java SE5的自动包装功能将自动的把基本类型转换为包装其类型:
Character ch = 'x';
并可以反向转换:
char c = ch;
这就是我们常说的java自动拆箱和装箱。
在进行判断是可以使用if语句如:
boolean flag = false;
if(flag){
return false;
}else{
return true;
}
java提供了两个可以进行高精度计算的类:BigInteger和BigDecimal。能作用于int 和 float 的操作,同样可以作用于BigInteger和BigDecimal。但必须以方法调用的方式取代运算符方式来实现。
BigInteger 支持任意精度的整数,在运算中,可以准确的表示任何大小的整数值而不会丢失任何信息。
BigDecimal 支持任意精度的定点数,可以用它进行精确地货币计算。
若某个变量是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值。
基本类型 | 默认值 |
boolean | false |
char | null |
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0f |
double | 0.0d |
需要注意一点以上初始化并不适用于局部变量,作为局部变量它可能得到一个任意值,而不会被自动初始化为零。