Think in Java

一切皆对象

引用

每种编程语言都有操纵内存中元素的方式。例如C/C++之于指针Java之于引用
对象看作电视机(内存中的数据),那么引用就是遥控器(好像句柄就是这种概念:通过引用来操作对象)

  • 独立存在:引用可以独立存在例如String s,定义一个字符串引用。但是发消息给这个未分配对象的引用,会出现运行时异常。

对象存储区域

  • 堆:大部分对象存储在RAM上的堆中
  • 栈:基本类型会存储在RAM上的栈上
  • 静态存储区域ROM: 常量值存储的地方
  • 非RAM: 持久化对象流对象的概念,不局限于内存中存储

特例:基本类型--可移植性

创建非引用的自动变量,存储于栈上。高效

基本类型所占空间的大小不随硬件架构改变而改变,所以体现了java程序可移植性的特点

类的成员是基本类型的,都有默认的初始值

发消息给对象

方法的调用,在面向对象编程中可以看作发消息给对象

向对象a发送消息f()
a: 对象
f(): 消息

int x = a.f() 

参数

参数实际上就是引用

你可能感兴趣的:(Think in Java)