1.Java入门知识
1.Java三大版本
JavaSE:标准版(桌面程序 控制台开发)
JavaEE:企业级开发(web端 服务器开发)
JavaME:嵌入式开发(手机 小家电)
2.JDK JRE JVM三者的联系与区别
JDK: Java Develpment Kit (java开发工具)
JRE: Java Runtime Environment (java运行时环境)
JVM: java Virtual Machine (java虚拟机)
JDK = JRE+Java工具(Java工具例如javac)
JRE = JVM+Java API类库
JDK>JRE>JVM
JRE 是运⾏环境,JDK 是开发环境。因此写 Java 程序的时候需要 JDK,⽽运⾏ Java 程序的时候就需要JRE。⽽ JDK ⾥⾯已经包含了JRE,因此只要安装了JDK,就可以编辑 Java 程序,也可以正常运⾏ Java 程序。但由于 JDK 包含了许多与运⾏⽆关的内容,占⽤的空间较⼤,因此运⾏普通的 Java程序⽆须安装 JDK,⽽只需要安装 JRE 即可。
SDK——soft development kit,软件开发工具包。sdk是一个大的概念,比如开发安卓应用,你需要安卓开发工具包,叫 android sdk,比如你开发java程序,需要用到java sdk,所以一般使用sdk这个概念,你需要在前面加上限定词。
JDK——可以理解为 java sdk,它是编写java程序,使用到的工具包,为程序员提供一些已经封装好的 java 类库。
3.Java程序运行过程
编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。
运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。
Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。
Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。
JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。
4.标识符
变量标识符的命名规范如下:
首字符必须是字母、下划线(―)、美元符号($)或者人民币符号(¥)。
标识符由数字(0到9)、大写字母(A到Z)、小写字母(a到z)、下划线(―)、美元符号($)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。
不能把关键字、保留字作为标识符。
标识符的长度没有限制。
标识符区分大小写。
5.常用的转义字符
1 | "\b" (退格) |
6.DOS命令操作
打开DOS窗口:windows+R 呼出DOS窗口,输入cmd回车,打开DOS窗口。
常见的命令(基本都不区分大小写)
1 | 1.切换盘符: 盘符 : (例如 D : ) |
7.注释
1.单行注释
1 | System.out.println("哈哈"); |
2.多行注释
1 | System.out.println("哈哈"); |
3.文档注释
包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用。注释后,鼠标放在类和变量上面会自动显示出我们注释的内容。
注意:文档注释能嵌套单行注释,不能嵌套多行注释和文档注释,一般首行和尾行也不写注释信息。
1 | /** |
javadoc 标签
标签** | 描述 | 示例 |
---|---|---|
@author | 标识一个类的作者 | @author description |
@deprecated | 指名一个过期的类或成员 | @deprecated description |
{@docRoot} |
指明当前文档根目录的路径 | Directory Path |
@exception | 标志一个类抛出的异常 | @exception exception-name explanation |
{@inheritDoc} |
从直接父类继承的注释 | Inherits a comment from the immediate surperclass. |
{@link} |
插入一个到另一个主题的链接 | {@link name text} |
{@linkplain} |
插入一个到另一个主题的链接,但是该链接显示纯文本字体 | Inserts an in-line link to another topic. |
@param | 说明一个方法的参数 | @param parameter-name explanation |
@return | 说明返回值类型 | @return explanation |
@see | 指定一个到另一个主题的链接 | @see anchor |
@serial | 说明一个序列化属性 | @serial description |
@serialData | 说明通过writeObject( ) 和 writeExternal( )方法写的数据 | @serialData description |
@serialField | 说明一个ObjectStreamField组件 | @serialField name type description |
@since | 标记当引入一个特定的变化时 | @since release |
@throws | 和 @exception标签一样. | The @throws tag has the same meaning as the @exception tag. |
{@value} |
显示常量的值,该常量必须是static属性。 | Displays the value of a constant, which must be a static field. |
@version | 指定类的版本 | @version info |
- @tag 格式的标签(不被{ }包围的标签)为块标签,只能在主要描述(类注释中对该类的详细说明为主要描述)后面的标签部分(如果块标签放在主要描述的前面,则生成 API 帮助文档时会检测不到主要描述)。
- {@tag} 格式的标签(由{ }包围的标签)为内联标签,可以放在主要描述中的任何位置或块标签的注释中。
- Javadoc 标签必须从一行的开头开始,否则将被视为普通文本。
- 一般具有相同名称的标签放在一起。
- Javadoc 标签区分大小写,代码中对于大小写错误的标签不会发生编译错误,但是在生成 API 帮助文档时会检测不到该注释内容。