没有安装JDK的可以参考这一篇先安装好JDK。
https://blog.csdn.net/qq_39443224/article/details/113444290
目录
1.什么是JDK?
JDK的目录结构
JDK全拼Java Development Kit,Java开发工具包,包含Java开发所需的二进制工具,依赖,JRE和源码等。
1.bin文件夹:Java开发所需的二进制工具,javac.exe java.exe javadoc.exe等
2.include文件夹: 里边包含头文件,支持Java本地接口和Java虚拟机调试程序接口的本地代码编程。
和jvm有关的东西,先了解便可。
3.jre文件夹:java的运行环境,包含jvm.
4.lib文件夹:Java类库
Java开发工具使用的归档文件,其中包含tools.jar,它包含支持JDK的工具和实用程序的非核心类。
5.src.zip:Java的源代码。
2.什么是JRE?
JRE全拼Java Runtime Environment,Java的运行环境。包含类库和JVM。
3.什么是JVM?
JVM全拼Java Virtual Machine,你可以把JVM理解为Java程序的贴身管家,负责Java的运行,运行期间的管理和结束运行。
运行一个Java程序就会创建一个JVM的实例,当Java程序结束的时候,对应的JVM实例也随之消亡。
JVM的内存模型
执行引擎:JVM工作的核心。
堆内存:只有一个堆,是线程共享的,用于存放对象实例。
方法区:只有一个方法区,是线程共享的,用于存放class和所有的静态变量。
栈区:每个线程都包含一个栈,包含基本数据类型的对象和自定义对象的引用。
4.Java程序的执行过程和Java的跨平台性
Java程序的执行过程
1.Java源代码先被编译成字节码文件(class文件)
2.JVM加载class文件,
3.从main方法处开始执行Java程序。
Java的跨平台性
平台:Os + 硬件环境
计算机只能执行最简单的数字命令。在训练狗的时候,我们会用‘跟上’、‘摇’等命令让狗做我们想让它做的事情。
对计算机来说,数字就起着这些命令的作用。每个命令都由某一特定的数或代码(有时称为机器代码)表示。
但只使用数字来编写程序真的很难,所以人们发明了编程语言和编译器。编程语言可以同时被人和编译器所理解。编译器是一个特殊的程序,
它可将用编程语言编写的程序转换成一系列的机器代码。
程序员通常用编程语言来编写程序,然后运行编译器,将程序员编写的程序代码文件转换为含机器代码的单个文件——最终(已编译的)程序。
生成的程序可由计算机立即执行。坏消息是,最终程序的代码严重依赖于处理器和操作系统。这意味着为 Windows 系统编译的程序将无法在安卓系统智能手机上运行。
Java 编译器不会将所有类都编译成一个机器代码程序。相反,它会独立编译每个类,而且不是编译成机器代码,而是编译成特殊的中间代码(字节码)。当程序启动时,该字节码被编译成机器代码。
有一个特殊的程序叫做 Java 虚拟机 (JVM)。当你需要运行一个字节码程序时,该虚拟机必须先启动。在程序执行之前,JVM 会将字节码编译成机器代码。
这样你只需要有字节码和jvm就可以在支持jvm的所有平台上运行java程序了