thinking in java 阅读笔记 第二章 一切都是对象
2017-06-21 14:45
260 查看
第二章一切都是对象
2.1 用句柄操纵对象
句柄 也可以称作”引用” 甚至”指针” 例如:String s;s 就是一个句柄. 在java里,除了九种基本类型,其他的都是引用类型.
2.2 所有对象都必须创建
例如: String s= new String("asdf");
关于内存的分配:有六个地方可以保存数据. 这里不详细,可以翻阅<<深入理解java虚拟机>>
(1)寄存器。
(2) 堆栈。
(3) 堆。
(4) 静态存储。
(5) 常数存储。
(6) 非RAM存储。(流式对象和固定对象)
Java的九种基本类型:
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
局部变量不会得到默认值,如果忘记复制会得到一条编译器错误.
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的一项主要设计目标就是安全性. 创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的关键字: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
局部变量不会得到默认值,如果忘记复制会得到一条编译器错误.
相关文章推荐
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象
- thinking in java 阅读笔记 第二章 一切都是对象