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

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
char16Unicode 0Unicode 2^16 -1Character
byte8-128+127Byte
short16-2^152^15-1Short
int32-2^312^32-1Integer
long64-2^632^63-1Long
float32IEEE754IEEE754Float
double64IEE754IEE754Double
void---Void
高精度数字 运行速度慢,

BigInteger 任意精度的整数

BigDecimal 任意精度的浮点点数

2.3 永远不需要销毁对象。

scope作用域。

### 2.3.2 对象作用域

{
String s = new String("a String");
}
引用s在作用域终点就消失了,符合堆栈的特点,栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放
但s指向的String对象仍然占据内存空间。
堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。


2.4 创建新的数据类型:类

class 类名{
数据成员(字段)
成员函数(方法)
}


java只会对 类的基本类型成员变量默认初始化。

* 对方法内的局部变量不适用。*

### 基本成员默认值


基本类型默认值
booelanfalse
char‘\u0000’(null)
byte(byte)0
short(short)0
int0
long0L
float0.0f
double0.0d
字符串中的每个字符都是16位或者2个字节。

2.5 方法、参数和返回值

包==类库。

有一个特定类会被自动导入到每一个Java文件–java.lang

除了标识符,其他的代码首字母大写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java编程思想