您的位置:首页 > 编程语言 > Java开发

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

2017-06-21 14:45 253 查看
第二章一切都是对象

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

         局部变量不会得到默认值,如果忘记复制会得到一条编译器错误.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: