语雀原文链接
文章目录
- 1、JDK安装
- 2、Hello World
- 2-1、Hello World示例
- 2-2、类名和文件名
- 2-3、注释
- 2-4、javadoc
- 3、环境变量
- 3-1、Path作用
- 3-2、classpath
- 3-3、JAVA_HOME
- 4、Java组成
- 5、跨平台原理
- 5-1、Java跨平台原理
- 5-2、C语言的跨平台原理
1、JDK安装
- 下载地址:https://www.oracle.com/java/technologies/downloads/
- 选择Java8 下载即可,需要注册一个Oracle账号
- 下载后安装就行,安装之后的jdk/bin目录如下
- 将安装后bin路径设置到系统环境变量中,此处路径为F:\Java\jdk1.8.0_311\bin(使在任何目录都能访问javac、java)
- 验证环境变量是否配置正确
- java -version:查看java版本
C:\Users\wangchun>java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
2、Hello World
2-1、Hello World示例
- Java中大小写严格区分
- Hello.java
/**
* 文档注释(可以通过Javadoc命令生成文档)
* public 公共的
* class 类
* Hello 类名,这个必须和文件名一致
* {} 类的作用域
*/
public class Hello {
// 单行注释
// static 静态的
// void 无返回值
// main 主函数,程序的入口方法
public static void main(String[] args){
/*
* 多行注释
* 在控制台输出Hello World!
*/
System.out.println("Hello World!");
}
}
- javac Hello.java:执行后自动生成Hello.class字节码文件
- java Hello:JVM运行字节码文件
C:\Users\wangchun\Desktop>javac Hello.java
C:\Users\wangchun\Desktop>java Hello
Hello World!
2-2、类名和文件名
- 一个源文件中可以有多个类,但是只能有一个类被public修饰
- 以下代码执行会报错
public class Hello {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
public class Hello1 {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
- 以上代码执行会报错,去除Hello1的public即可
F:\>javac Hello.java
Hello.java:24: 错误: 类Hello1是公共的, 应在名为 Hello1.java 的文件中声明
public class Hello1 {
^
1 个错误
- javac之后会生成两个class文件Hello.class Hello1.class
2-3、注释
- 注释不会参与编译,编译后产生的字节码文件中不会有注释的内容
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** */ 可以通过javadoc命令来提取
- 文档注释代码例子
/**
文档注释
*/
public class Hello {
/**
main方法
@param args 数组
*/
public static void main(String[] args){
// 单行注释
System.out.println("Hello World!");
}
}
2-4、javadoc
- javadoc生成文档
F:\>javadoc -d newName Hello.java
正在加载源文件Hello.java...
正在构造 Javadoc 信息...
标准 Doclet 版本 1.8.0_311
正在构建所有程序包和类的树...
正在生成newName\Hello.html...
正在生成newName\package-frame.html...
正在生成newName\package-summary.html...
正在生成newName\package-tree.html...
正在生成newName\constant-values.html...
正在构建所有程序包和类的索引...
正在生成newName\overview-tree.html...
正在生成newName\index-all.html...
正在生成newName\deprecated-list.html...
正在构建所有类的索引...
正在生成newName\allclasses-frame.html...
正在生成newName\allclasses-noframe.html...
正在生成newName\index.html...
正在生成newName\help-doc.html...
3、环境变量
3-1、Path作用
- window cmd命令行:path(查看当前配置的path属性)
C:\Users\wangchun>path
PATH=C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Windows\System32\OpenSSH\;
F:\Java\jdk1.8.0_311\bin;
C:\Users\wangchun\AppData\Local\Microsoft\WindowsApps;
- 在D盘目录下输入命令notepad,尝试打开记事本,尝试在D盘目录下查找有没有记事本程序,有则打开记事本,没有则去path中保存的路径下找,有则打开记事本;没有则失败
- 正常只有在xxx.exe所在路径在运行该命令才能运行该程序;但将该路径添加到Path中,就能在任何路径下运行该程序,Path里面存储的是环境变量,保证在任何目录下都能运行该程序
C:\Users\wangchun>notepad
C:\Users\wangchun>aa
'aa' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
- 设置临时path(只在CMD命令行开启阶段有效,关闭后失效)
- set path=xx
- set path=xx;%path%
C:\Users\wangchun>set path=aa
C:\Users\wangchun>path
PATH=aa
C:\Users\wangchun>set path=bb;%path%
C:\Users\wangchun>path
PATH=bb;aa
3-2、classpath
- 系统中有一个环境变量classpath,默认是当前目录
- 作用:设置这个classpath路径后,在执行字节码文件的时候,就会去这个路径下寻找对应的字节码文件
- set classpath只是临时修改,此设置会随着当前cmd的窗口关闭而消失!
- 但如果在当前cmd中用start开启新的窗口,设置的路径在新的cmd窗口中依然有效
- set classpath
- 查看当前的classpath值
- set classpath=d:\
- 设置classpath属性,在classpath目录下(d:\路径下)查找有没有对应的class文件,如果没有就报错提示没有
- set classpath=d:;
- 设置classpath属性,在classpath目录下(d:\路径下)查找有没有对应的class文件,如果找不到就在Hello.java文件所在目录下查找
- 路径后面不加分号 :执行的时候只会查找classpath路径下的文件夹,找不到就报错。
- 路径后面加分号:先查找classpath路径下有没有,如果没有就查找当前文件夹下有没有,依然没有就报错。
C:\Users\wangchun\Desktop>set classpath
classpath=d:\
C:\Users\wangchun\Desktop>set classpath=d:\
C:\Users\wangchun\Desktop>set classpath
classpath=d:\
C:\Users\wangchun\Desktop>java Hello
错误: 找不到或无法加载主类 Hello
C:\Users\wangchun\Desktop>set classpath=d:\;
C:\Users\wangchun\Desktop>set classpath
classpath=d:\;
C:\Users\wangchun\Desktop>java Hello
Hello World!
3-3、JAVA_HOME
- 环境变量JAVA_HOME F:\Java\jdk1.8.0_311\bin
- 之前的PATH路径可以这样配置:%JAVA_HOME%\bin
4、Java组成
- JRE(Java Runtime Environment):Java运行环境
- 包括JVM和Java程序所需的核心类库等
- 想要运行一个开发好的Java程序,计算机只需要安装JRE即可
- JDK(Java Development Kits):Java开发工具集
- JDK是提供给Java开发人员使用的,其中包括Java的开发工具,也包括JRE
- 安装了JDK,就不用单独安装JRE
- 其中的开发工具包括:编译工具javac.exe、打包工具jar.exe
5、跨平台原理
5-1、Java跨平台原理
- JVM(Java Virtual Machine):因为JVM,使得Java程序在三种操作系统上都可以执行,这就是Java程序的跨平台性,使得Java具有良好的可移植性
- JVM是不跨平台的,Windows有Windows对应的JVM,Linux有Linux对应的JVM
- 流程:源文件(.java) -> (编译器javac.exe) -> 字节码文件(.class) -> (JVM执行java.exe) -> 操作系统(一次编译,随处运行)