《Java编程思想》笔记02-一切都是对象
Java 中 5 个存放数据的地方
寄存器(Registers):位于 CPU 内部,是速度最快的存储区,但是数量和容量有限。在 Java 中不能直接操作寄存器。
栈(Stack):栈位于通用随机访问存储器 (General random-access memory,RAM,内存) 中,通过处理器的栈指针访问,栈指针从栈顶向栈底分配内存,从栈底向栈顶释放内存。栈是仅次于寄存器的速度第二快的存储器,在 Java 程序中,一般的 8 种基本类型数据和对象的引用通常存放在栈内存中,不通过 new 关键字的字符串对象也是存放在栈的字符串池中。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
堆(Heap):也是位于通用随机访问存储器 (General random-access memory,RAM,内存) 中的共享内存池。Java 的堆是一个运行时数据区,类的对象从中分配空间,凡是通过 new 关键字创建的对象都存放在堆内存中,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java 的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
常量存储器(Constant storage):Java 中的常量是存放在系统内嵌的只读存储器中(read-only memory, ROM)的。
非随机存储器(Non-RAM storage):对于流对象和持久化对象,通常存放在程序外的存储器,如硬盘。
基本类型
基本类型的变量并非引用,直接存储“值”,并置于堆栈中。
Java 中,没有无符号数,基本类型占用空间的大小也不会像其它语言随机器硬件架构变化。
基本类型 | 大小 | 默认值 | 最小值 | 最大值 | 包装器类型 |
---|---|---|---|---|---|
boolean | - | false | - | - | Boolean |
char | 16 bits | '\u0000'(null) | Unicode 0 | Unicode $2^{16}$-1 | Character |
byte | 8 bits | (byte)0 | -128 | +127 | Byte |
short | 16 bits | (short)0 | -$2^{15}$ | +$2^{15}$-1 | Short |
int | 32 bits | 0 | -$2^{31}$ | +$2^{31}$-1 | Integer |
long | 64 bits | 0L | -$2^{63}$ | +$2^{63}$-1 | Long |
float | 32 bits | 0.0f | IEEE754 | IEEE754 | Float |
double | 16 bits | 0.0d | IEEE754 | IEEE754 | Double |
void | - | - | - | - | Void |
注释和嵌入式文档
只能为 public
和 protected
成员进行文档注释。
不要在嵌入式 html
中使用标题标签 <h1><hr>
等。因为 javadoc
会插入这类标签,避免冲突。
一些标签示例
- @see:引用其他类,该标签允许用户引用其他类的文档
@see classname
。 - {@link package.class#member label}:该标签与
@see
相似,只是它用于行内,并且使用 "lable" 作为超链接文本而不用 "See Also"。 - {@docRoot}:该标签产生到文档根目录的相对路径,用于文档树页面的显式超链接。
- {@inheritDoc}:该标签从当前这个类的最直接的基类中继承相关文档到当前的文档注释中
- @version
- @author
- @since:该标签允许你指定程序代码最早的使用版本
- @param:该标签用于方法文档中
- @return
- @throws
- @deprecated:在
Java SE5
中,被@Deprecated
注解所替代
用javadoc命令生成注释文档
基本命令
javadoc [options] [packagenames] [sourcefiles] [@files]
如果什么options也设置,直接给[packagenames] [sourcefiles]两个参数。下面我指定了com.test包里的SayHello类。
javadoc com.test ~/java/com/test/SayHello.java
递归生成整个项目的注释文档
为了更有序地更完整地生成整个项目的注释文档,有三个重要的 Option
需要设定:
javadoc -d /yourdocpath -subpackages /packagename -sourcepath /yoursourcepath
- -d: 指定API文档的输出目录,默认是当前目录。建议总是指定该参数。
- -subpackages: 以递归的方式处理各子包。关键参数!如果不使用本参数,每次只能处理一个子包(或需手工列出所有子包)。
- -sourcepath: 指定源代码路径,默认是当前目录。 此参数通常是必须的。
下面这条命令可以递归生成我整个~/java
根目录下所有代码的注释文档,然后存放在~/java/doc
目录下。-author
和-version
可以让javadoc
自动收录我@author
和@version
标签的内容。
javadoc -d ~/java/doc -subpackages . -sourcepath ~/java/ -author -version
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com
文章标题:《Java编程思想》笔记02-一切都是对象
文章字数:1.1k
本文作者:Bin
发布时间:2018-03-15, 21:24:48
最后更新:2019-08-06, 00:43:46
原始链接:http://coolview.github.io/2018/03/15/Java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/%E3%80%8AJava%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%E3%80%8B%E7%AC%94%E8%AE%B002-%E4%B8%80%E5%88%87%E9%83%BD%E6%98%AF%E5%AF%B9%E8%B1%A1/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。