Java源代码基础数据类型
1、Java与数先关的基础数据类型主要分整数与浮点数,整数:byte,short,int,long,浮点数:float,double
2、数据范围
类型 | 范围 |
---|---|
byte | -128~127(2^7-1) |
short | -32768~32767(2^15-1) |
int | -2147483648~2147483647(2^31-1)21亿(10位) |
long | -9223372036854775808~9223372036854775807(2^63-1)19位 |
float | +/-2^−149,+/-2^128 |
double | +/-2^−1074,+/-2^1024 |
3、六个类型均继承自Number,Number类为抽象类
public abstract class Number implements java.io.Serializable {
public abstract int intValue();
public abstract int longValue();
public abstract int floatValue();
public abstract int doubleValue();
public byte byteValue() {
return (byte)intValue();
}
public short shortValue() {
return (short)intValue();
}
}
4、整数的byte、short、int、long对于的封装类,都有相关的缓存操作,具体实现是通过内部类
private static class LongCache {
private LongCache(){}
static final Long cache[] = new Long[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Long(i - 128);
}
}
Byte对应ByteCache,Integer对应IntegerCache,Short对应ShortCache,Long对应LongCache,它们的缓存范围都是从-128~127。其中IntegerCache提供了可通过属性设置“java.lang.Integer.IntegerCache.high”设置缓存的最大值。
举个有趣的栗子
Integer c = 3;
Integer d = 3;
int e = 321;
Integer g = 321;
Integer h = 321;