[读书笔记]Java编程思想
Posted Spring-_-Bear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[读书笔记]Java编程思想相关的知识,希望对你有一定的参考价值。
目录
第1章 对象导论
第2章 一切都是对象
- 堆栈位于RAM,通过堆栈指针可以直接从处理器那里获得直接支持。堆栈指针向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速分配有效的分配存储方法,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中------特别是对象引用,但是Java对象并不存储于其中。
- 堆是一种通用的内存池(也位于RAM区),用于存放所有的Java对象。堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。当需要一个对象时,只需用new写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,为这种灵活性必须要付出相应的代价:用堆进行存储分配和清理时比用堆栈需要更多的时间。
- 特例:基本数据类型创建的自动变量直接存储“值”,并置于堆栈中,因此更加高效。
基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
---|---|---|---|---|
boolean | - | - | - | Boolean |
char | 16bits | Unicode 0 | Unicode 216-1 | Character |
byte | 8bits | -128 | +127 | Byte |
short | 16bits | -215 | +215-1 | Short |
int | 32bits | -231 | +231-1 | Integer |
long | 64bits | -263 | +263-1 | Long |
float | 32bits | IEEE754 | IEEE754 | Float |
double | 64bits | IEEE754 | IEEE754 | Double |
void | - | - | - | Void |
- 所有数值类型都有正负号,所以不要去寻找无符号的数值类型。
- boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false。
- 基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。例如:
char c = 'x';
Character ch = new Character(c);
/* 也可以这样用 */
Character ch = new Character('x');
/* Java的自动包装功能将自动把基本类型装换成包装器类型 */
Character ch = 'x';
/* 也可以反向转换 */
char c = ch;
- Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。虽然它们大体上属于“包装器类”的范畴,但二者都没有对应的基本类型。
- BigInteger支持任意精度的整数。也就是说,在运算中,可以准确地表示任何大小的整数值,而不会丢失任何信息。
- BigDecimal支持任意精度的定点数,例如,可以用它进行精确的货币计算。
- 在C和C++里将一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的。也就是说,下面的代码段在Java里是非法的。
{
int x = 12;
{
int x = 96; // Illegal
}
}
- 字段可以是任何类型的对象,可以通过其引用与其进行通行;也可以是基本类型中的一种(Java确保该字段获得初始值为Java意义上的0)。如果字段是对某个对象的引用,那么必须初始化该引用,以便使其与一个实际的对象相关联。
- 为了给一个类库生成不会与其他名字混淆的名字,Java设计者们希望程序员反过来使用自己的Internet域名。
- Java消除了所谓的“向前引用问题”:即可以提前使用暂未定义的类的对象。
- javadoc只能为public和protected成员进行文档注释。也可以用-private进行标记,以便把private成员的注释也包括在内。
- 一些可用于代码文档的javadoc标签:
标签名 | 作用 |
---|---|
@see | 允许用户引用其它类的文档 |
{@link package.class#member label} | 与@see作用相似,只是它作用于行内,并且以“label”作为超链接文本而不是“See Also” |
{@docRoot} | 产生到文档根目录的相对路径,用于文档树页面的显式超链接 |
{@inheritDoc} | 从当前这个类的最直接的基类中继承相关文档到当前文档注释中 |
@version | 你认为的重要的版本信息;如果javadoc命令行使用了"-version"标记,那么就从生成的html文档中特别提取版本信息 |
@author | 作者信息;如果javadoc命令行使用了"-author"标记,那么就从生成的HTML文档中特别提取作者信息 |
@since | 允许你指定程序代码最早使用的版本,可以在HTML Java文档中看到它被用来指定所有的JDK版本的情况 |
@param | 应用于方法文档中,对参数的说明 |
@return | 描述返回值的含义 |
@throws | 描述可能出现异常的相关信息 |
第3章 操作符
第4章 控制执行流程
第5章 初始化与清理
第6章 访问权限控制
第7章 复用类
第8章 多态
第9章 接口
第10章 内部类
第11章 持有对象
第12章 通过异常处理错误
第13章 字符串
第14章 类型信息
第15章 泛型
第16章 数组
第17章 容器深入研究
第18章 Java I/O系统
第19章 枚举类型
第20章 注解
第21章 并发
第22章 图形化用户界面
以上是关于[读书笔记]Java编程思想的主要内容,如果未能解决你的问题,请参考以下文章