1.Java概述
1.1 Java语言的历史
年份 | 主要事件 |
---|---|
1990 | sun成立Green项目组,负责开发一款基于C++而由于C++的语言,詹姆斯·高斯林,称为Java之父 |
1991 | 发布Oak(橡树),Java的前身,主要作用于嵌入小型消费设备 |
1994 | Internet兴起,Oak与浏览器融合,产生一种Applet技术可以在浏览器中执行Java程序 |
1995 | 5月23日,Java语言诞生,版本代号以JDK1.0起始 |
1998 | JDK1.2,Sun公司讲Java改成为Java2 ,同时将Java划分为J2SE(标准)/J2EE(企业)/J2ME(移动) |
2004 | JDK1.5发布Sun公司将JDK1.5改称为JavaSE 5.0(俗称JDK5) |
2014 | 发布JDK8,目前应用最广泛的版本 |
2017 | Oracle决定将Java移交给开源组织,最后Eclipse基金会接受,每年3月、9月各更新一次 |
2021 | 发布JDK16 |
1.2 语言执行机制
- 编译型语言(C、C#、Object-C):将源文件编译成机器码文件,一次编译多次执行 特点:执行效率高,不能跨平台。
- 解释型语言(JavaScript,脚本语言):源文件逐行解释,逐行运行 特点:执行效率低,可跨平台。
- 先编译后解释语言(Java、Python): 特点:执行效率较高,可跨平台。
2. 搭建开发环境
- 安装JDK,JDK可以共存,注意安装目录不能有中文,最好用默认的目录。
- 配置环境变量。
右键此电脑,选择属性,点击高级系统设置,点击环境变量。
在系统环境变量中进行配置:
变量 | 值 |
---|---|
AVA_HOME | JDK安装路径 |
CLASS_PATH | . |
在path中追加 | JDK安装路径\bin |
JavaHome:告知其他程序Java安装在哪个目录中。 ClassPath:告知解释器从哪找到编译好的.class文件从而运行。
path:在cmd窗口中执行一个指令时去哪个目录中寻找该指令。
使用Windos+R键呼出运行窗口,键入命令java、javac测试是否配置成功
配置失败则显示:
‘java’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 或 'javac’不是内部或外部命令,也不是可运行的程序
或批处理文件。
如图所示:说明配置成功!
3.HelloWorld
- 新建英文目录在该目录中新建Hello.java文件(新建源文件)如图所示:
- 在源文件中进行编码
使用Notpad++点击设置,首选项,选择新建,将编码更改为UTF-8(操作系统默认编码)。如图所示:
代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello,World!!");
}
}
如图所示:
代码解释如下:
class :类,Java程序的基本单位,一个Java程序就是一个类 。
HelloWorld:类名即程序名。
public static void main(String[] args):主函数,当程序执行时会运行主函数{}中的代码。
System.out.print():向cmd窗口输出一段信息。
“HelloWorld!!!”:信息的内容。
3.使用编译器编译源文件,生成字节码文件(.class)
注意:如果语法出现问题编译失败,出现错误信息且不会生成.class文件。
找到存储源码的位置,单击路径输入cmd按回车。
让cmd窗口显示的路径与源码的路径一致。
使用 javac 命令进行编译。
语法如下:
javac 源文件名.后缀名
演示如图所示:
编译成功后在当前目录中生成.class文件,文件名与类名一致。如图所示:
所生成.class文件就是java的程序所以名称与类名是一致的。
4. 使用解释器解释运行
cmd窗口路径依然与源文件路径一致。。
使用 java 命令解释运行。
语法如下:
java 类名
演示如图所示:
一个Java源文件中可以定义多个类,编译时为每个类独立生成对应的.class文件。
错误调试方法,如图所示:
编译时如果语法出现错误会出现错误提示,根据提示修改源码,如图所示:
4.公开类与一般类
- 一般类:定义类时class关键字前没有任何其他关键字,称为一般类。
代码如下:
class Hello{
}
class MyClass {
}
- 公开类:定义类时使用 public class 进行定义
代码如下:
public class Hello{
}
注意:类名与文件名必须一致,一个源文件中只能有一个公开类,公开类可以与一般类共存。
5.注释
- 作用:在程序中一段不参与程序编译过程的描述性文字,用来描述代码的作用,便于理解、便于复习。
- 单行注释:
语法://(注释文字)
代码如下:
// 这是一个公开类,注意类名与文件名必须一致
public class HelloWorld {
}
如图所示:
3. 多行注释:
语法:/* (注释文字) */
代码如下:
// 这是一个公开类,注意类名与文件名必须一致
public class HelloWorld {
/*
作者:Adair
创建时间:2021年9月1日09:30:03
作用:第一个Java程序
版本:v1.0
*/
public static void main(String[] args) {
System.out.print("Hello,World!!"); // 打印语句
}
}
如图所示:
多行注释不能嵌套。
4. 文档注释
语法:/** (注释文字)*/
代码如下:
/**
public class 公开类
HelloWorld:类名
*/
public class HelloWorld {
/**
作者:Adair
创建时间:2021年9月1日09:30:03
作用:第一个Java程序
版本:v1.0
*/
public static void main(String[] args) {
System.out.print("Hello,World!!"); // 打印语句
}
}
如图所示:
可以注释多行文字,可以生成帮助文档。
生成帮助文档:
- 使用cmd窗口找到源文件所在路径
- 键入命令 javadoc -d 生成位置 源文件名.后缀名
演示:将HelloWorld.java中的文档注释提取到D:\api文件夹中,如图所示。
命令符之间的空格必须保留,不能省略。
6.包(package)
作用:将编译好的字节码文件自动放入某个文件夹中,自动生成文件夹
语法如下:
//源文件中代码的第一行位置 package 包名;
//定义多层包结构 package 包名1.包名2.包名3...;
演示的代码如下:
package p1; // 定义包
/**
public class 公开类
HelloWorld:类名
*/
public class HelloWorld {
/**
作者:Adair
创建时间:2021年9月1日09:30:03
作用:第一个Java程序
版本:v1.0
*/
public static void main(String[] args) {
System.out.print("Hello,World!!"); // 打印语句
}
}
如图所示:
使用带包编译命令生成包结构将.class文件自动保存到包中。
命令:javac -d . 源文件名.后缀名。
例:javac -d . HelloWorld.java。如图所示:
运行命令:java 包名.类名,如图所示。
注意:
- 没有使用带包编译命令不会生成包结构 。
- 没有使用带包运行命令会出现:找不到或无法加载主类。
定义规范:域名倒置:
域名:www.adair.com.cn
包名:cn.com.adair.xxx
7.标识符语法规范
标识符即组件的名称,例如类名、包名、方法名、变量名、常量名…;
- 硬性要求:如果未满足则编译错误。
- 由字母、数字、下划线、$、¥组成,注意数字不能开头。
- 大小写敏感,没有长度限制 。
3 .不允许使用关键字
- 编程习惯:
- 代码缩进与格式
代码如下:
// 1. Java代码{(左花括号)必须贴合组件右侧
// 例:
class Hello{
}
//2. 缩进,出现在{}中的代码向后跳格(Tab键),体现出包含关系与层级关系
//例:
class Hello{
public static void main(String[]args){ // 在Hello类中的{}中向后跳格
System.out.println(""); // 在main函数的{}中向后跳格
}
}
如图所示:
8.CMD窗口常用命令
命令符 | 作用 |
---|---|
java | 查看解释器与其支持的命令 |
javac | 查看编译器与其支持的命令 |
java|javac - version | 查看JRE与JDK的版本,务必保证JDK版本小于或等于JRE版本 |
dir | 显示目录中的所有内容 |
cd 目录名 | 进入目录 |
cd… | 返回上一级 |
cls | 清屏 |
总结如图所示: