Java编程思想 ch2 一切都是对象
2018-03-18 12:18
295 查看
2.1 用引用操纵对象
reference 引用 关联 对象。 String s 创建对象的引用,而不是对象。 String s ="adc" ; s 关联了 对象 "adc". 在使用任何引用前,必须为它关联一个对象。
2.2 new
2.2.1 存储到什么地方
1)寄存器。不可控制。最快。 2)堆栈。RAM,堆栈指针向下分配内存,向上释放内存。对象引用存储在堆栈。但对象并没有。次快。 3)堆。 一种通用内存池,RAM,存放所有java对象。堆不同于堆栈的好处:编译器不需要知道存储在堆中的数据存活多久。比堆栈慢。 4)常量存储。常量值通常存放在代码内部。 5)非RAM存储器。数据完全存活于程序之外,不受程序任何控制,在程序没有运行时也可以存在。
2.2.2 特例:基本类型。
new创建一个对象,存储在堆里。对于小的简单变量,效率低。因此不用new来创建,而是创建一个并非是引用的"自动"变量。直接存储值,并存储于堆栈中,更高效。 所有数值类型都有正负号。
基本类型 | 大小 bit | 最小值 | 最大值 | 包装器类型 |
---|---|---|---|---|
boolean | - | - | - | Boolean |
char | 16 | Unicode 0 | Unicode 2^16 -1 | Character |
byte | 8 | -128 | +127 | Byte |
short | 16 | -2^15 | 2^15-1 | Short |
int | 32 | -2^31 | 2^32-1 | Integer |
long | 64 | -2^63 | 2^63-1 | Long |
float | 32 | IEEE754 | IEEE754 | Float |
double | 64 | IEE754 | IEE754 | Double |
void | - | - | - | Void |
BigInteger 任意精度的整数
BigDecimal 任意精度的浮点点数
2.3 永远不需要销毁对象。
scope作用域。### 2.3.2 对象作用域
{ String s = new String("a String"); } 引用s在作用域终点就消失了,符合堆栈的特点,栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放 但s指向的String对象仍然占据内存空间。 堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
2.4 创建新的数据类型:类
class 类名{ 数据成员(字段) 成员函数(方法) }
java只会对 类的基本类型成员变量默认初始化。
* 对方法内的局部变量不适用。*
### 基本成员默认值
基本类型 | 默认值 |
---|---|
booelan | false |
char | ‘\u0000’(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
2.5 方法、参数和返回值
包==类库。有一个特定类会被自动导入到每一个Java文件–java.lang
除了标识符,其他的代码首字母大写。
相关文章推荐
- Java编程思想个人理解 第二章 一切都是对象
- Java编程思想 第4版 练习题 / 第2章 一切都是对象 / 练习3
- Java编程思想之一切都是对象
- java编程思想(第四版)_第2章 一切都是对象
- Java编程思想(二)--一切都是对象
- java编程思想(一切都是对象,操作符,控制执行流程)
- Java编程思想 第4版 练习题 / 第2章 一切都是对象 / 练习1
- Java编程思想笔记——第二章 一切都是对象
- 『Java编程思想-第四版』第二章:一切都是对象
- Java编程思想_一切都是对象
- java编程思想之一切都是对象
- Java编程思想-02一切都是对象
- JAVA编程思想(1) - 一切都是对象
- [置顶] JAVA编程思想(一)一切都是对象
- java编程思想第2章:一切都是对象
- Java编程思想(一) —— 一切都是对象及内存分配
- 2.JAVA编程思想——一切都是对象
- 重读java编程思想--一切都是对象(1)
- 学习《Java编程思想-一切都是对象》注意点
- java编程思想 bruce Eckel chapter2一切都是对象