zoukankan      html  css  js  c++  java
  • jvm、jre、jdk区别

    1、jvm:java虚拟机,负责把.class 二进制文件翻译成不同系统上的机器操作指令。因此JVM实现了java的跨平台运行,它把它可识别的.class 文件在不同平台上翻译成不同的机器操作指令,可以在windows、linux上等不同平台上运行。jvm负责把class文件加载进内存, 它包含类加载器子系统,运行时数据区:方法区(静态区)、堆(new的对象)、栈(局部变量和方法的中间结果)、程序计数器、本地方法,垃圾回收系统、执行引擎。

    2、jre:java运行环境,它包含了jvm和java项目运行所需要的java 类库,  java.util  java.sql  java.long   java.net 等。如果不编译只运行,那么有jre就可以了,java 命令负责拉起 JVM。

    3、jdk:包含jre和编译等开发java项目所需要的一些工具,这些工具都在 jdk安装目录下的 bin目录下,包括 javac.exe  java.exe  jar.exe  jvisiovm.exe、jconsole 等负责 编译、运行 和项目调试等。

          在eclipse中执行 run as java application的时候,其实是调用 jdk的 java exe,javac 命令工具,根据 .classpath 的配置去找项目的本身的class文件和依赖的jar包的文件(classpath 里会去maven仓库里找依赖的jar包,不是找 targer下的lib包),然后执行的。
         classpath配置的是java类库的位置以及执行字节码文件时查找文件的路径。 Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序( 会以.class文件存在)。

  • 相关阅读:
    算法复习——扫描线(hdu1542)
    hbase简单操作
    python操作Mongo数据库
    查看图片大小
    python修改图片格式
    python图片压缩
    python 图片抓取
    failed to lazily initialize a collection of role: could not initialize proxy
    failed to lazily initialize a collection of role: could not initialize proxy
    vim自动打开跳到上次的光标位置
  • 原文地址:https://www.cnblogs.com/luckyna/p/11563310.html
Copyright © 2011-2022 走看看