概要
在本章,主要介绍了JAVA面向对象的基本知识,主要包括以下知识点:
- 对象的操控、存储方式
- 基本类型的特点和使用
- 对象的作用域和对象的销毁概念
- 类的组成方式:方法和字段。
- 方法的特征
- static关键字的使用
- 注释和嵌入式文档的使用
下面是本章节记录的要点:
- 一切皆为对象,但在JAVA中,操控的是对象的引用,但对于基本类型数据,则不是这样的。
- JAVA内存分配方式:
a.寄存器:在处理器内部,一般我们不能直接控制
b.堆栈:位于RAM中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针如果向下移动,则会分配新的内存,若向上移动,就会释放内存。java的对象引用存储在这里。
c.堆:一种通用的RAM,也位于RAM中,对象存储在其中。他的特点是能够自动进行对象存储分配,并且在这里分配的对象内存不需要手动清理。
d.常量存储:常量值通常会放在代码内部,一班存放在ROM中。(这里我想起了JVM说的,常量在永久区保存的代码字节中)
e.非RAM存储 - 基本对象类型在堆栈中创建,基本类型的结构特征如下图所示:
基本类型 | 大小 | 最小值 | 最大值 | 包装类型 | 默认值 |
---|---|---|---|---|---|
boolean | —— | —— | —— | Boolean | false |
char | 16-bit | Unicode0 | Unicode 2^16-1 | Character | ‘\uoooo’(null) |
byte | 8bits | -12^8 | 128 | Byte | (byte)0 |
short | 16bits | -2^15 | +2^15-1 | Short | (short)0 |
int | 32bits | -2^31 | +2^31-1 | Integer | 0 |
long | 64bits | -2^63 | +2^63-1 | Long | 0L |
float | 32bits | IEEE754 | IEEE754 | Float | 0.0f |
double | 64bits | IEEE754 | IEEE754 | Boolean | 0.0d |
void | —— | —— | —— | —— | Void |
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。前者用于计算任意精度的整数,后者用来计算任意精度的定点数。
4. Java中,当创建一个数组对象的时候,实际上就是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定的值,该值拥有关键字null。
5. 在java中,如果是一个全局变量,那么会自动的初始化值(引用类型初始化为Null,基本类型初始化成基本类型固定值)。但如果是局部变量,就要手动初始化才能使用。如下代码:
class A{
int a;//全局变量就不需要手动初始化,未初始化也能调用
void method(){
int c;
System.out.println(a);//这行代码是不会编译报错的
System.out.println(c);//这里的话会编译错误,提示c没有初始化
}
}
6.一个方法的基本组成部分包括:名称、参数、返回值和方法体。一个方法的签名是方法名和参数列表,它是区分方法是否一样的标志。
7. 方法传递参数的时候,它实际上传递的是对象的引用,基本类型的话,是直接传递这个数值。所有方法调用会改变对象的值,而基本类型则不是。
8. static表示为某特定域(变量和方法)分配一个单一存储空间,而不考虑究竟要创建多少个对象。
9. javadoc是一个提取注释的工具,它是jdk安装的一部分。所有的javadoc命令只能在/**注释中出现。使用javadoc主要有两种方式:嵌入式HTML或者使用“文档标签“。其中文档标签分为两种,一种是独立文档标签,它一@字符开头,并且要置于每行注释前。另一种是行内文档标签,他可以出现在javadoc任何地方,但是必须在”{}”中。javadoc只能为public和proteceted成员进行文档注释,private和保内访问成员的注释会被忽略掉,所以输出的结果中看不到他们,如果需要加上他们,则需要用-private进行标记。下面是一些标签的说明:
@see classname 这个标签引用其他类的标签,后面是类名。
{@link package.class#member lable}和see标签差不多,只不过这是一个行内标签,他的这个lable是一个超链接。
{@inheritDoc}是从这个类的直接基类中继承文档到当前文档注释中。
@version version-information 版本说明
@author 作者
@author author-information
@since 允许你指定代码最早的使用版本
@param parameter-name description 参数以及描述
@retun description
@throws full-qualified-class-name description异常申明的类和描述