服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

《thinking in java》学习笔记(二)――万事万物皆对象

thinking in java》学习笔记(二)

————万事万物皆对象

 

作者:孤独萤火虫

 

对象与reference之间的关系,好比电视和遥控器之间的关系,只要手上握有遥控器,便可以操纵电视。如果你想在房间里走来走去,同时保有对电视的控制,只需要随身带着遥控器,不必背着沉重的电视。

有六个地方可存放数据:

1.      寄存器(registers):位于处理器内部,速度最快的存储场所,程序员无法碰触,也不会在程序里感觉到它的存在。编译器会根据自身需求适当分配使用。

2.      (stack):位于ram中,速度仅次于寄存器,必须能够掌握所存储数据的实际大小和存活时间。可以将reference存于stack内,但不能将一般对象置于其上。

3.      (heap):也位于ram中,比stack慢很多,用来置放所有java对象。

4.      静态存储空间(static storage):也位于ram中,存放着程序执行期间一直存在的数据。可以使用关键字static将对象内的特定成员设为静态,但java对象本身绝无可能置于其中。

5.      常量存储空间(constant storage):可以放到rom中,存放常量。

6.      non-ram存储空间:即使程序不执行,数据也能够继续存在。如:串流化对象(streamed objects)和持久性对象(persistent objects)java提供了所谓的轻量级持久性(lightweight persistence)

java中每一种基本型别所占的空间大小是固定不变的:

基本型别

大小

最小值

最大值

缺省值

外覆型别

boolean

——

——

——

false

boolean

char

16-bit

unicode 0

unicode 216-1

‘/u0000’(null)

character

byte

8-bit

-128

+127

(byte)0

byte

short

16-bit

-215

+215-1

(short)0

short

int

32-bit

-231

+231-1

0

integer

long

64-bit

-263

+263-1

0l

long

float

32-bit

ieee754

ieee754

0.0f

float

double

64-bit

ieee754

ieee754

0.0d

double

void

——

——

——

 

void

 

boolean型别的容量未有明确定义,其值仅能为常量值truefalse

只有当变量身份是“class内的成员”时,java才保证为该变量提供初值。

两个进行高精度计算的classesbiginteger(提供的整数支持任意精度)和bigdecimal(提供任意精度的定点数)。

保证程序员对数组访问无法逾越范围所付出的代价是:每个数组得额外多出一点点空间,并且得在执行时期对数组索引值进行检查。

c/c++中“将较大生存空间中的变量遮蔽起来”的能力,java并不提供。

java.lang会被自动含括于每个java程序文件中。

   直接操作对象内的数据会导致混乱,同时也和良好的面向对象设计法则背道而驰。

扫描关注微信公众号