2: Everything is an Object(万物皆对象)

用reference操控对象
数据存在哪里
1. 寄存器(registers)。
2. 栈(stack)。
3. 堆(heap)。
4. 静态存储(static storage)。
5. 固定存储(constant storage)。
6. 非内存的存储(Non-RAM storage)。
特例:primitive类型

Primitive

type

Size

Minimum

Maximum

Wrapper

type

boolean

Boolean

char

16-bit

Unicode 0

Unicode 216-1

Character

byte

8-bit

-128

+127

Byte

short

16-bit

-215

+215—1

Short

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

Void

高精度的数值

BigInteger支持任意精度的整数。
BigDecimal能表示任意精度的浮点数。
Java中的数组

你永远不需要清理对象
作用域

对象的作用域

创建新的数据类型:类
数据成员与方法
primitive成员的缺省值

Primitive type

Default

boolean

false

char

‘\u0000’ (null)

byte

(byte)0

short

(short)0

int

0

long

0L

float

0.0f

double

0.0d


方法、参数和返回值

方法的名字再配合其参数列表,可以唯一地标识一个方法。
参数列表

构建Java程序
名字的可见性
使用其它组件
static关键词
对于非static的数据来说,每个对象都会有一份,static的数据则变成乐每个类只有一个。
同其它方法一样,static方法夜可以创建或使用它本身这个类型的对象,所以static方法常常被用来管理本类型的对象,它就像是这些对象的“牧羊人”。

第一个Java程序

编译和运行

注释和嵌入式的文档
注释文档
语法
Javadoc有两种主要的用法:嵌入式的HTML和用“文档标记(doc tags)”。
“独立的文档标记(Standalone doc tags)”是一些由‘@’打头的命令,它们会被放在注释行的开头。(但是打头的个‘*’则被忽略了。)
“内嵌式的文档标记(inline doc tags)”则可以出现在任何地方,它也是由‘@’开始的,但是要用花括号括起来。
嵌入的HTML
所有类型的注释文档——类,变量,以及方法——都支持嵌入的HTML。
标记举例
@see:引用其它类
{@link package.class#member label}
{@docRoot}
{@inheritDoc}
@version
@author
你可以放多个作者标记,但是必须连续放。在HTML文件里,所有作者信息都放在一起。
@since
@param
@param标记可以有好几个,每个标记表示一个参数。
@return
@throws
@deorecated
Deprecate标记建议用户不再使用这个特性,因为未来这个特性可能会从程序里面取出。客户程序使用了@deprecated标记的方法会导致编译器报一个警告消息。
文档举例

编程风格

Code Conventions for the Java Programming Language所推荐的风格是,用第一个字母大写来表示这是类的名字。如果类名由多个单词组成,那么它们应该连在一起(也就是说,名字里面不要有下划线),并且其中的每个单词的第一个字母要大写,这种风格有时被称为“camel-casting”。其它东西:方法,数据成员(成员变量),对象的reference,其推荐的风格是,除了首字母小写,其它部分与类名完全相同。

总结

练习

「读书笔记」Thinking in Java 3rd Edition - 3: Controlling Program Flow