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