-
用引用操纵对象
- Java里一切都被视为对象,通过操纵对象的一个"引用"来操纵对象。
- 创建一个引用,不一定需要有一个对象与之关联,但此时使用该引用会出错。
- 遥控器可以独立存在,但是没有电视机,使用遥控器没有意义。
-
必须由你创建所有对象
- 存储数据或代码的地方
-
寄存器:位于CPU内部,速度最快。JAVA语言无法直接控制寄存器。
-
堆栈:位于DRAM中,通过栈顶指针来辨别内存是否被使用。创建程序时,JAVA系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。
-
堆:位于DRAM中,与栈相比,编译器不需要知道存储在堆中的数据的存活时间。但是清理空间可能要花费更多的时间。
-
常量存储:直接存放在程序代码内部。
-
非RAM存储:可以将对象转化成存放在其他媒质上的事物(硬盘),在需要时,恢复成内存中的对象。
- 特例:基本类型
- 基本类型存储在栈中,变量直接存储值,而不是对象的引用。
- Java中基本类型所占的空间大小不随机器硬件架构的变化而变化。
- Java中所有数值类型都有正负号。
| boolean |
未定 |
未定 |
未定 |
Boolean |
| void |
未定 |
未定 |
未定 |
Void |
| byte |
8 bits |
-128 |
127 |
Byte |
| char |
16-bit |
Unicode 0 |
Unicode 216 -1 |
Character |
| short |
16 bits |
2-15
|
215-1 |
Short |
| int |
32 bits |
2-31
|
231-1 |
Integer |
| long |
64 bits |
2-63
|
263-1 |
Long |
| float |
32 bits |
IEEE754 |
IEEE754 |
Float |
| double |
64 bits |
IEEE754 |
IEEE754 |
Double |
- 基本类型具有包装器类,可以在堆中创建非基本类型对象,用来表示对应的基本类型。
- JAVA有自动包装功能。
Character ch = 'x'; char c = ch;
-
BigInteger和BigDecimal支持任意精度的整数和定点数。
- Java中的数组
- Java确保数组会被初始化,而且不能再其范围之外访问。如果访问超出数组,会在运行时抛出异常。
-
永远不需要手动销毁对象
- Java不允许隐藏较大作用域的变量,即在方法体花括号内部如果在出现一个花括号,那么这两个花括号中不允许定义相同的变量。
注意:类的成员变量和方法体中的局部变量可以重复。
- Java对象的生命周期不同于基本类型,它可以存活于作用域之外。 但是指向该对象的引用,在作用域之外将失效。
- Java的垃圾回收机制会将没有被引用的对象所占的内存空间回收,因此不用担心内存泄漏的问题。
-
创建新的数据类型:类
-
Class 类名{类主体}该语法创建一个新的类。
-
类名 对象名 = new 类名()该语法创建一个该对象的类。
- 类的字段(数据成员)和方法(成员函数)
- 字段可以是任意基本类型或者引用类型。如果是基本数据类型,即使没有显示初始化,Java也会进行默认初始化。如果是引用类型,则必须显示初始化该引用。
注意: 仅当变量作为类的数据成员时,才会默认初始化;局部变量如果没有进行显示初始化,则编译时会报错。
-
方法、参数和返回值
- 方法名和参数列表唯一地标识某个方法。
- Java中的方法只能作为类的一部分来创建。只有通过对象或者类名才能调用。
- return可以用在方法体的任意位置,用于退出方法;若返回类型不是void,还需要指定返回值。
-
构建一个Java程序
- 采用域名反转,作为文件路径名,保证类命名无重复。
- 使用import可以导入包(类库),java.lang下的类会被自动导入。
- static关键字声明的变量或方法,会分配单一存储空间,并且不需要对象即可访问。可以通过任意对象或者类名.的方式进行访问,但是访问的是同一存储空间。
-
你的第一个Java程序
- Java中独立运行的类的名字必须和文件名相同,而且必须包含一个mian()方法。
- JDK中的javac可以用来编译程序,java可以用来运行程序。
-
注释和嵌入式文档
- 以
/*开始,以*/结束。其中的所有内容都会被编译器忽略。
- 以
//注释该行。
- javadoc可以提取代码中特殊注释标签,并将毗邻注释的类名或者方法名抽取出来,并输出一个HTML文件。我们只需创建和维护单一的源文件,就能自动生成有用的文档。
- 语法格式为
/** 注释内容 */
- javadoc只能喂public和protected类成员进行文档注释。默认在输出结果中看不到私有和default的成员,但是可以通过
-private参数,显示私有成员。
-
@see 文档名可以在文档中生成一个超链接"See Also"条目。
-
@link 文档名 label用于行内,生成一个超链接"label"文本条目。
-
@docRoot 产生到文档根目录的相对路径。
-
@inheritDoc从当前这个类的最直接的基类中继承相关文档到当前的文档注释中。
-
@version 自定义文本 可以输入重要的版本信息,javadoc -version能够提取出该信息。
-
@author 自定义文本 可以输入作者相关信息,javadoc =author能够提取该信息。
-
@since允许指定代码最早使用的版本。
-
@param 参数名 描述参数名为方法中参数列表的标识符,描述为针对该参数的描述。
-
@return 描述用来描述返回值的含义
-
@throws 无歧义异常类名 描述描述该特殊类型异常在方法调用中出现的原因。
-
@Deprecated指出过时的旧特性,建议用户不要使用。
-
编码风格
- “驼峰风格” :类名首字母大写,其后每个单词的首字母大写。
- 变量名,引用名,方法名的首字母小写,其后每个单词的首字母大写
相关文章: