1.java程序运行基本知识
1>jdk:提供了开发java应用程序的开发包,它提供了编译,运行java程序所需要的各种工具和资源,包括java编译器,java运行时环境以及常用的java类库
2>jre:jre不仅包括运行java程序的核心虚拟机jvm,还需要其他的类加载器,字节码检验器以及大量的基础类库
3>jvm:负责解释执行字节码文件,所有平台上的jvm向编译器提供相同的编程接口,而编译器只需要面向jvm,生成虚拟机能理解的代码,然后由虚拟机进行解释执行
不同平台的jvm是不同的,当使用java编译器编译java程序时,生成的是与平台无关的字节码文件,这些字节码不面向任何平台,只面向jvm.所以,jvm是java跨平台的关键部分。
4>java程序运行机制:由java语言编写的程序需要经过编译步骤,生成与平台无关的字节码文件.class,然后这些字节码文件由java解释器解释执行(dos命令中,javac-->java,,所以java语言是编译型语言也是解释型语言)
2.java的两大基石
java语言规范:规定了语法,变量,类型,方法,即定义了什么是java语言
JVM规范:规定了Class文件类型、运行时数据、帧栈、虚拟机的启动、虚拟机的命令集,即定义了class文件和虚拟机命令集
3.JVM的启动过程
1.java命令启动jvm
2.进行jvm配置的装载--->根据当前路径和系统的版本去寻找jvm.cfg文件,装载配置
3.根据装载配置寻找jvm.dll文件---jvm的主要实现文件
4.根据该文件去初始化jvm,并获得相关的接口,如JNIEnv接口,该接口实现findclass操作
5.最后通过接口,找到程序里的main方法,即可进入程序
4.JVM的基本结构