编译阶段:
编译阶段主要是检查java源文件是否符合java的语法
符合java语法则能够生成正常的字节码文件(xxx.class)
不符合则生成不了
字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
编译阶段的过程:
新建一个.java扩展名的文件,该文件被称为java源文件,源文件当中编写的是java源代码/源程序。
而这个源程序必须符合java语法规则。
java程序需要使用JDK当中自带的javac.exe命令进行java程序的编译。
一个java源文件可以编译生成多个.class文件
字节码文件/class 文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,因为class文件最终执行效果不是我们想要的,那么这个时候需要回头重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后再运行class程序,生成新的效果。
编译结束后,可以将class文件拷贝到其他操作系统当中运行。
运行阶段:
jdk安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe
java.exe命令主要负责运行阶段。
运行阶段的过程:
打开dos命令窗口
输入:java A
java.exe命令会启动java虚拟机(JVM)jvm会启动类加载器classLoader
ClassLoader会去硬盘上搜索A.class文件,找到该文件则该字节码文件装载到JVM当中。
JVM将A.class字节码文件解释成二进制10101001010这样的数据。
然后操作系统执行二进制和底层硬件平台进行交互。
JDK目录介绍:
JDK/bin:该目录下存放了很多命令,例如javac.exe和java.exe
javac.exe 负责编译
java.exe负责运行
打开DOS命令窗口,直接输入javac,然后回车,出现以下:
‘javac’ 不是内部或外部命令,也不是可运行程序火批处理文件。
出现以上问题是因为:windows 操作系统无法找到javac命令文件,需要配置jdk环境变量。
环境变量配置:
运行java程序
需要使用java.exe命令
首先测试java命令是否可用
使用方式:
java类名
硬盘上有HelloWorld.class,那么类名就是HelloWorld
java HelloWorld
java命令后面跟的不是文件路径,是一个类的名字。
首先需要将DOS窗口中的目录切换到HelloWorld.class文件所在目录
然后直接执行:java HelloWorld
java注释
//单行注释
/*
多行注释
*/
/**
- javadoc注释:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。
- javadoc注释
*/
/*public表示公开的
static表示静态的
void表示空
main表示方法名是main
(String[] args)是一个main方法的形式参数列表
以下方法是一个程序的"主方法",是程序的执行入口
是SUN公司规定的,固定编写方式。
*/
public class HelloWorld{
public static void main(String[] args){ //表示定义一个公开的静态的主方法
System.out.println(“HelloWorld”);
}
}
public class和class的区别:
一个java源文件当中可以定义多个class
一个java源文件当中public的class不是必须的
一个class会对应生成一个xxx.class字节码文件
一个java源文件当中定义公开的类的话,public的class只能有一个,并且该类名称必须和java源文件名称一致。
每一个class当中都可以 编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B,想执行x.class当中的main方法:java x
*注意:当在命令窗口中执行java Hello那么要求Hello.class当中必须有主方法,没有主方法会出现运行阶段的错误: 错误:在类B中找不到主方法,请将主方法定义为:public static void main(String[] args)