Thinking In Java_第2章_一切都是对象

一切都是对象,但操纵的实际上是对象的一个引用。要改变对象的行为,操纵他的引用来调控对象,而不是对象本身。


可以只创建引用而不是对象:string s;现对他发消息就会报错,必须初始化。String s = "abc";


用new关键字来实现引用和对象的相关联。

string s = new String("abc");

存储

1.寄存器:在处理器内部,不能直接控制不能感知。数量极其有限。

2.堆栈:在RAM中(随机访问存储器),堆栈指针向下移动,分配新内存;向上移动,释放内存。java需知道存储在堆栈里所有项确切的生命周期,已便移动堆栈指针。高速有效,仅次于存储器。对象不存储其中。

3.堆:通用的内存池,也在RAM中,存放所有java对象。不需要知道存在其中的数据存活多久。灵活。new的时候就在堆里进行存储分配。比堆栈慢。

4.常量存储:不会改变的常量,存放在程序代码内部。嵌入式系统,常量和其他部分分开,存放在ROM(只读存储器中)

5.非RAM存储:程序之外。流对象和持久化对象。流对象把对象转化成字节流;持久化把对象存放在磁盘上。把对象转化成可以存放在其他媒介上的事物。需要时再恢复成基于RAM的对象。数据库也是持久化。

基本类型:不用new来创建,因为比较小,浪费。创建一个不是引用的自动变量,直接存储值,置于堆栈中,高效。

要知道每种基本类型的大小,八种基本类型大小固定。都有正负号。都有包装器类,可以在堆中创建非基本对象。character ch = new character(c);

自动包装类可自动讲基本类型转换为包装器类型

character ch = 'x';

反向反转

char c = ch;

你可能感兴趣的:(Thinking In Java_第2章_一切都是对象)