JDK JRE JVM

java三大版本

  • JavaSE(java PIatform,Standard Edition) 标准版 ——多用于桌面应用、控制台开发(J2SE)

  • JavaME (java PIatform,Micro Edition)嵌入式开发——手机程序开发(J2ME)

  • JavaEE(java PIatform,Enterprise Edition) 企业版 ——Web、服务器开发(J2EE)

JDK >JRE> JVM

  • JDK (Java Development Kit) --Java开发工具包

  • ---针对Java开发员的产品

    ---JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。

    ---JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

  • JRE(Java Runtime Envirnment)--Java运行环境

    是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

    JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。

    与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。

  • JVM(Java virtual machine)--Java虚拟机

    是运行Java字节码的虚拟机,通过编译.Java文件为.class文件得到字节码文件 。它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。

      也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机(相当于中间层)间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

      只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。

      JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

  • Java程序的执行

    Java源文件是如何执行的:

    1.使用编辑器或IDE(集成开发环境)编写Java源文件.即Simple.java 2.程序必须编译为字节码文件,javac(Java编译器)编译源文件为Simple.class文件. 3.类文件可在任何平台/操作系统上由JVM(Java虚拟机)执行 4.JVM将字节码文件翻译为机器可以执行的机器码(0,1二进制)

    • 类装载器Class Loader

      类装载器是用于加载类文件的一个子系统,其主要功能有三个:loading(加载),linking(链接),initialization(初始化)。

      1.Loading 加载类,JVM有三种类加载方式:Bootstrap,extension,application 当加载类文件时,JVM会找到某个任意类XYZ.class的依赖项。 第一个引导类载入器试图查找类,它会扫描lib文件夹下的rt.jar文件 如果没有找到类,则extension类加载器会在jre\lib\ext文件夹下查找该类 同样没有找到类,application类加载器会在系统CLASSPATH环境变量中查询所有的Jar文件和类. 如果类被任何加载器发现,则被类加载器载入,否则抛出异常:ClassNotFoundException。

      • 类加载器是如何工作的

        类加载器扫描它们预定义的jar文件和类的位置。它们扫描路径中的所有类文件并寻找所需的类。如果发现类则加载,链接并初始化类文件。

      2.Linking 类加载完成后,执行Linking(链接),一个字节码验证器将验证生成的字节码是否正确,如果验证失败,得到一个验证错误。此时,还将内存分配给类中的静态变量和静态方法。 3.Initialization 这是类加载的 最后一个阶段,所有的静态变量都被赋以原始初值,并执行静态代码块。

系统环境变量配置

1、我的电脑——属性——高级系统设置——环境变量——系统变量

2、新建——变量名:JAVA_HOME——变量值:JDK所在目录结构的根目录

3、在系统变量中Path——编辑——新建——变量名:Path——变量值:%JAVA_HOME%\bin;

4、系统环境classpath——变量名:classpath——变量值:%JAVA_HOME%\jre\lib\rt.jar;.;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值