java基础知识整理 (一) - - - - - - 存储和基本数据类型

1 存储

    寄存器:位于处理器内部,寄存器数量有限,需要根据需求分配,不能直接控制,程序中也看不出来使用迹象.速度最快.

    堆栈:位于RAM(随机访问存储器)中,通过堆栈指针进行控制.指针下移,分配新的内存;指针上移,释放相应的内存.快速有效,仅次于寄存器.

    堆:一种通用的内存池(也位于RAM),用于存放所有的java对象.堆不同于堆栈的地方:编译器不需要知道存储的数据在堆里存活多久.因此,堆里分配存储空间很灵活.缺点就是在堆里分配存储和清理可能需要更多时间.

    常量存储:直接放在程序代码的内部,不会被改变.

    非RAM存储:流对象和持久化对象.流对象就是通过流的形式将数据存储到服务器上.持久化对象,保存到本地的磁盘空间上.

2 基本类型

   

基本类型 大小(bits) 最小值 最大值 包装器类型
boolean - - - Boolean
char 16 Unicode 0 Unicode 2^16-1 Character
byte 8 -128 127 Byte
short 16 -2^15 2^15-1 Short
int 32 -2^31 2^31-1 Integer
long 64 -2^63 2^63-1 Long
float 32 -2^31 2^31-1 Float
double 64 -2^63 2^63-1 Double
void - - - Void

 

 

 

 

 

 

 

 

 

 

布尔类型所占空间没有具体指定,只取字面值true 或者flase

所有类型都有正负号,没有无符号的数值类型.

java SE5之后,会自动将基本类型转换成包装器类型,包装基本类型的原因:

1 基本类型不具有对象的性质,为了让其具备对象的性质,就出现了包装器类型,需要包装成对象,丰富其操作;

2 当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

3 为了判null,比如布尔类型只有两个值 true 或 false,创建之后必然有默认值,无法判断是否为null,而包装类型可以.

高精度数字:运算速度慢,牺牲速度获取精度

  BigInteger支持任意精度的整数.在运算时可以准备表示任意大小的整数而不丢失精度.

  BigDecimal支持任意精度的定点数.可以用来进行货币运算.

 

你可能感兴趣的:(java基础)