本系列学习笔记主要是学习了《疯狂Java讲义》和《Java核心技术》之后做的,有些例子使用的也是原书例子,如果产生了侵权,请联系我删除
1 Java运行机制
Java语言是一种特殊的高级语言,它既具有解释型语言的特征,又有编译型语言的特征,由Java语言编写的程序需要经过编译步骤,但编译过程不会生成特定平台的机器码,而是生成一种与平台无关的字节码(.class
文件),然后再执行解释步骤。
当使用Java编译器编译Java程序时,生成与平台无关的字节码,JVM是可运行Java字节码文件的虚拟计算机,不同平台的JVM不同,但都提供了相同的接口,只要为不同的平台实现了相应的虚拟机,编译后的.class文件就可以在该平台上运行,因此JVM是Java程序实现跨平台的关键部分。
2 JVM介绍
JVM(Java Virtual Machine)是一个抽象的计算机,和实际计算机一样,它具有指令集并使用不同的存储区域。主要负责执行指令,还要管理数据、内存和寄存器。JVM主要包括:
JVM模块 |
---|
指令集 |
寄存器 |
类文件的格式 |
栈 |
垃圾回收堆 |
存储区 |
3 Java开发环境
3.1 SDK、JDK、JRE
Java SDK:JRE + JDK
JRE(Java Runtime Environment):Java运行环境,面向Java程序的使用者,包含各种API和Java虚拟机(JVM)
JDK(Java Development Kit):Java开发环境,面向Java程序的开发者,包含编译Java程序的编译器JDK分类:
Java SE:标准版,整个Java技术的核心和基础
Java EE:企业版,提供了企业应用开发相关的完整解决方案
Java ME:移动板,主要用于移动设备、嵌入式设备上的java应用程序
3.2 开发环境安装和配置
3.2.1 准备
3.2.2 安装
- 安装过程中注意:
- 开发:安装JDK即可
- 运行:安装JRE即可
- 安装路径中不要出现空格和中文
- 可以选择不安装公共JRE
3.2.3 配置
3.2.3.1 Windows
- 配置地址:控制面板 –> 系统 –> 高级系统设置 –> 环境变量 –> 系统变量
JAVA_HOME:C:\Java\jdk1.8.0_77
PATH:;C:\Java\jdk1.8.0_77\bin;
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3.2.3.2 Linux
- 打开配置文件:
vim /etc/profile
,配置完成后使用source /etc/profile
让配置生效
export JAVA_HOME=/usr/lqy/jdk1.8.0_131
export JRE_HOME= ${JAVA_HOME}/jre
export CLASSPATH=.: ${JAVA_HOME}/lib: ${JRE_HOME}/lib
export PATH= ${JAVA_HOME}/bin: $PATH
3.2.3.3 测试
- 常用测试命令:
java
、javac
、java –version
- 测试结果:出现大量的和Java相关的信息就证明配置成功,否则有失败或无相关信息提示
3.2.3.4 安装目录解析
- JDK目录名:
|—— bin 存放JDK的各种工具命令
|—— db 安装Java DB的路径
|—— include 一些平台特定的头文件
|—— jre Java运行时环境
|—— lib JDK工具命令的实际执行程序
|—— javafx-src.zip Java FX所有核心类库的源代码
|—— src.zip Java所有核心类库的源代码
|—— 其它说明性文件
3.3 开发
- 编写srcFile.java文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
- 编译srcFile.java文件:javac -d destDir srcFile.java
- 执行srcFile.class文件:java srcFile
Java文件执行过程:Java源文件(.java
文件)–>(javac编译)–>字节码文件(.class
文件)–>(java解释)–>机器码文件–>执行
3.4 Java集成开发环境
- Intellij IDEA:目前最好用的IDE
- Eclipse:用的最广泛的IDE
4 Java程序的基本规则
4.1 Java程序的基本规则
- 类(class)是Java程序的最小程序单位
- 需要被解释器直接解释执行的类必须包含一个public static void main(String[] args)函数
- Java程序源文件的后缀必须是.java
- Java程序源代码里面定义了一个public类,则该源文件的文件名必须和该类的类型相同
- 一个Java源文件里面最多只能定义一个public外部类
4.2 Java注释
注释是用来说明某段代码的作用或用途的代码,有时候也可以用来调试代码。
4.2.1 单行注释
单行注释就是在程序中注释一行代码,在Java语言中,将双斜线(//
)放在需要注释的内容之前就可以了,多用于代码中解释关键语句的功能,或者是关键变量的意义。
4.2.2 多行注释
多行注释是指一次性将程序中多行代码注释掉,在Java语言中,使用(/*
、*/
)将程序中需要注释掉的内容包含起来,适用于注释过多,单行语句无法胜任的情形。
4.2.3 文档注释
文档注释主要是用来生成API文档,一般存在于类前、方法前、成员变量前,文档注释是以(/**
)开始(*/
)结束,中间的部分全部是文档注释,会被提取到API文档中。
4.2.3.1 类注释
类注释位于import
语句之后,类定义开始之前
4.2.3.2 方法注释
方法注释在所描述的方法之前。
- 常用标记:
- @param变量描述:方法的参数说明信息
- @return描述:方法的返回值说明信息
- @throws类描述:抛出异常的类型
4.2.3.3 域注释
域注释常用来描述静态常量。
4.2.3.4 通用注释
- @author:指定java程序的作者
- @version:指定源文件的版本
- @deprecated:不推荐使用该方法
- @see:“参见”,用于指定交叉参考的内容
标记 | 类/接口 | 方法/构造器 | 成员变量 |
---|---|---|---|
@author | √ | ||
@version | √ | ||
@deprecated | √ | √ | √ |
@param | √ | ||
@return | √ | ||
@see | √ | √ | √ |
@exception | √ | ||
@throws | √ |
4.2.3.5 javadoc命令
- javadoc命令格式:
javadoc [选项] [Java源文件|包]
- 常用选项:
- -d <directory>:指定API文档存放的位置
- -author、-version:用于提取@author和@version标记的信息
- -charset <charset>、-encoding <encoding>:指定代码的编码方
- -public、-protected、-private:选择显示的等级
- 常用选项: