thinking in java 阅读笔记 第二章 一切都是对象

来源:互联网 发布:ticctv网络监控测试仪 编辑:程序博客网 时间:2024/05/17 21:54

第二章一切都是对象

2.1 用句柄操纵对象

句柄 也可以称作”引用” 甚至”指针” 例如:String s;s 就是一个句柄. 在java里,除了九种基本类型,其他的都是引用类型.

2.2 所有对象都必须创建

         例如: String s= new String("asdf");

         关于内存的分配:有六个地方可以保存数据. 这里不详细,可以翻阅<<深入理解java虚拟机>>

         (1)寄存器。

(2) 堆栈。

(3) 堆。

        (4) 静态存储。

(5) 常数存储。

(6) 非RAM存储。(流式对象和固定对象)

         Java的九种基本类型:

        

主类型 

大小 

最小值 

最大值 

封装器类型

boolean

1-bit

Boolean

char

16-bit

Unicode 0

Unicode 216- 1

Character

byte 

8-bit

-128

+127

Byte

short

16-bit

-215

+215 – 1

Short1

int

32-bit

-231

+231 – 1

Integer

long

64-bit

-263

+263 – 1

Long

float

32-bit

IEEE754

IEEE754

Float

double

64-bit 

IEEE754

IEEE754

Double

void

Void1

Java的数组:

Java的一项主要设计目标就是安全性. 创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的关键字:null(空)。

2.3对象的清除

         {

String s = new String("a string");

} /* 作用域的终点 */

那么句柄s会在作用域的终点处消失。然而,s指向的String对象依然占据着内存空间。在上面这段代码里,我们没有办法访问对象,因为指向它的唯一一个句柄已超出了作用域的边界。Java垃圾收集器会自动处理防止程序员忘记释放内存造成的”内存溢出”.

2.4 新建数据类型:类

         定义一个类时,可以在类里设置数据成员(字段)和成员函数(方法).

         如果不对数据成员进行初始化,它们会获得一个默认值.

                  主类型   默认值

Boolean false

Char        '\u0000'(null)

Byte          byte)0

Short         (short)0

int            0

long         0L

float         0.0f

double     0.0d

         局部变量不会得到默认值,如果忘记复制会得到一条编译器错误.

阅读全文
0 0
原创粉丝点击