diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..b933840 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +onjava8.lingcoder.com diff --git a/docs/book/03-Objects-Everywhere.md b/docs/book/03-Objects-Everywhere.md index ff4adae..e260517 100644 --- a/docs/book/03-Objects-Everywhere.md +++ b/docs/book/03-Objects-Everywhere.md @@ -67,11 +67,11 @@ Java 预设了每种基本类型的初始内存占用大小。 这些大小标 | 基本类型 | 大小 | 最小值 | 最大值 | 包装类型 | | :------: | :------: | :------: | :------: | :------: | | boolean | — | — | — | Boolean | -| char | 16 bits | Unicode 0 | Unicode $2^{16}-1$ | Character | -| byte | 8 bits | $-128$ | $+127$ | Byte | -| short | 16 bits | $-2^{15}$ | $+2^{15}-1$ | Short | -| int | 32 bits | $-2^{31}$ | $-2^{31}-1$ | Integer | -| long | 64 bits | $-2^{63}$ | $-2^{63}-1$ | Long | +| char | 16 bits | Unicode 0 | Unicode 216 -1 | Character | +| byte | 8 bits | -128 | +127 | Byte | +| short | 16 bits | - 215 | + 215 -1 | Short | +| int | 32 bits | - 231 | - 231 -1 | Integer | +| long | 64 bits | - 263 | - 263 -1 | Long | | float | 32 bits | IEEE754 | IEEE754 | Float | | double | 64 bits |IEEE754 | IEEE754 | Double | | void | — | — | — | Void | @@ -590,7 +590,7 @@ class AllTheColorsOfTheRainbow { // ... ``` - + 这种风格也被称之为“驼峰式”。对于几乎所有其他方法,字段(成员变量)和对象引用名称 - 除了标识符的首字母是小写之外其他规范与类的命名一致。代码示例: ```JAVA @@ -613,24 +613,25 @@ class AllTheColorsOfTheRainbow { 本章向您展示了简单的 Java 程序编写以及该语言相关的基本概念。到目前为止,我们的示例都只是些简单的顺序执行。在接下来的两章里,我们将会接触到 Java 的一些基本操作符,以及如何去控制程序执行的流程。 - [^1]: 这里可能有争议。有人说这是一个指针,但这假定了一个潜在的实现。此外,Java 引用的语法更类似于 C++ 引用而非指针。在 *Thinking in Java* 的第 1 版中,我发明了一个新术语叫“句柄”(*handle*),因为 C++ 引用和Java 引用有一些重要的区别。作为一个从 C++ 的过来人,我不想混淆 Java 可能的最大受众 —— C++ 程序员。在*Thinking in Java* 的第 2 版中,我认为“引用”(*reference*)是更常用的术语,从 C++ 转过来的人除了引用的术语之外,还有很多东西需要处理,所以他们不妨双脚都跳进去。但是,也有些人甚至不同意“引用”。在某书中我读到一个观点:Java 支持引用传递的说法是完全错误的,因为 Java 对象标识符(根据该作者)实际上是“对象引用”(*object references*),并且一切都是值传递。所以你不是通过引用传递,而是“通过值传递对象引用。人们可以质疑我的这种解释的准确性,但我认为我的方法简化了对概念的理解而又没对语言造成伤害(嗯,语言专家可能会说我骗你,但我会说我只是对此进行了适当的抽象。) +[^1]: 这里可能有争议。有人说这是一个指针,但这假定了一个潜在的实现。此外,Java 引用的语法更类似于 C++ 引用而非指针。在 *Thinking in Java* 的第 1 版中,我发明了一个新术语叫“句柄”(*handle*),因为 C++ 引用和Java 引用有一些重要的区别。作为一个从 C++ 的过来人,我不想混淆 Java 可能的最大受众 —— C++ 程序员。在*Thinking in Java* 的第 2 版中,我认为“引用”(*reference*)是更常用的术语,从 C++ 转过来的人除了引用的术语之外,还有很多东西需要处理,所以他们不妨双脚都跳进去。但是,也有些人甚至不同意“引用”。在某书中我读到一个观点:Java 支持引用传递的说法是完全错误的,因为 Java 对象标识符(根据该作者)实际上是“对象引用”(*object references*),并且一切都是值传递。所以你不是通过引用传递,而是“通过值传递对象引用。人们可以质疑我的这种解释的准确性,但我认为我的方法简化了对概念的理解而又没对语言造成伤害(嗯,语言专家可能会说我骗你,但我会说我只是对此进行了适当的抽象。) - [^2]: 大多数微处理器芯片都有额外的高速缓冲存储器,但这是按照传统存储器而不是寄存器。 +[^2]: 大多数微处理器芯片都有额外的高速缓冲存储器,但这是按照传统存储器而不是寄存器。 - [^3]: 一个例子是字符串常量池。所有文字字符串和字符串值常量表达式都会自动放入特殊的静态存储中。 +[^3]: 一个例子是字符串常量池。所有文字字符串和字符串值常量表达式都会自动放入特殊的静态存储中。 - [^4]: 静态方法,我们很快就能接触到,它可以在没有对象的情况下直接被类调用。 +[^4]: 静态方法,我们很快就能接触到,它可以在没有对象的情况下直接被类调用。 - [^5]: 通常除了前面提到的“特殊”数据类型 boolean,char,byte,short,int,long,float 和 double。通常来说,传递对象就意味者传递对象的引用。 +[^5]: 通常除了前面提到的“特殊”数据类型 boolean,char,byte,short,int,long,float 和 double。通常来说,传递对象就意味者传递对象的引用。 - [^6]: 静态方法在使用之前不需要创建对象,因此它们不能直接调用非静态的成员或方法(因为非静态成员和方法必须要先实例化为对象才可以被使用)。 +[^6]: 静态方法在使用之前不需要创建对象,因此它们不能直接调用非静态的成员或方法(因为非静态成员和方法必须要先实例化为对象才可以被使用)。 - [^7]: 在某些情况下,它还为编译器提供了更好的优化可能。 +[^7]: 在某些情况下,它还为编译器提供了更好的优化可能。 - [^8]: 请注意,此文档未包含在 JDK 中;你必须单独下载才能获得它。 +[^8]: 请注意,此文档未包含在 JDK 中;你必须单独下载才能获得它。 - [^9]: 对于本书中编译和运行命令行的每个程序,你可能还需要设置 CLASSPATH 。 +[^9]: 对于本书中编译和运行命令行的每个程序,你可能还需要设置 CLASSPATH 。 - [^10]: 为了保持本书的代码排版紧凑,我并没完全遵守规范,但我尽量会做到符合 Java 标准。 +[^10]: 为了保持本书的代码排版紧凑,我并没完全遵守规范,但我尽量会做到符合 Java 标准。 +
\ No newline at end of file