• 了解JDK,JRE和JVM


    什么是JVM

    大家都知道,计算机只能识别0,1序列
    我们学习的C语言、java都是高级语言,接近英文语法,但是计算机并不认识它们,
    所以就需要一个翻译员来在高级程序和0,1序列间做翻译。
    
    问题在于,每个平台认识的0,1序列式不一样的,
    比如,一个指令在Windows上是0101,到了Linux下也许是1010,
    因此必须使用不同的编译程序为不同平台编译出可执行的机器码。
    
    所以,在Windows上编译过的程序无法直接拿到Linux上执行。
    
    java语言也需要编译,但是它编译后,不会直接生成0,1序列,而是翻译为中介格式的位码,也就是.class文件
    
    而此时,JVM(java虚拟机)就会将已经是位码的文档,翻译成 相依于平台 的机器码。
    
    
    对java而言,只认识一种操作系统,这个系统即JVM,位码文档就是JVM的可执行文件
    (就好比.exe是Windows的可执行文件)
    

    JVM和JRE的区别

    JRE即java的执行环境,其中包含JVM(没有操作系统,.class文件压根无法执行)和javaSE API。
    
    javaSE API中含高了各式各样常用的链接库。
    比如说System.out.println("Hello");
    这行代码中,System是一个类,out是它的一个对象,println()是out对象的方法。
    这些都是前人已经编译好,并放进了API中,我们才能直接使用的。
    
    API中还包含了很多链接库,如集合,I/O,AWT等,不负责任地说,学习java,就是学习各种链接库的使用
    
    实际上JRE还包括了部署技术,也就是如何将程序安装到客户端的技术。如图1(在下方)
    也可以直接进这个网址 http://docs.oracle.com/javase/8/docs/index.html 查看原图
    点击(部署)Deployment即可查看其中的技术
    (反正我看不懂其中的英文。。。有能力的看看吧)
    
    所以我们可以看出,JRE并不是单纯的JDK,还包含了API和Deployment哦。
    

    最后就是大Boss---->JDK,即java开发工具,其中包含了JRE,还包含了javac(编译工具),javadoc(生成帮助文档工具)等

    其实我对于javadoc并不是很了解,也解释不清楚,只知道他会根据程序中的一些特殊注释格式生成注释文档。如:

    /**
    *@autor 张三
    */

    生成的注释文档中就会显示本程序的autor是 ”张三“。

    对于其中各标签的说明可见javadoc百度百科:

    http://baike.baidu.com/link?url=8ZMSgujSxY2rMQA7gBQDRiHCGsPYxoHNWbxwPUOz9iATTyskQ9T3BOPpbaCXhf8gjbWgtlSIo17YbR_JavMzzK

    有了这些工具,我们才能愉快地开发。

    所以,如果你不需要写JAVA程序,只需要把可执行文件运行起来的话,只需要安装JRE就好了,即执行.class文件需要API和JVM。

  • 相关阅读:
    BIO、NIO、AIO有什么区别?
    java中IO流有哪些?
    List、Map、Set 三个接口,存取元素时,各有什么特点?
    Vector、ArrayList、LinkedList 的存储性能和特性?
    Java.util.Map的常用实现类有哪些?
    Java自学指南六、查一手资料
    虚拟机中Lvs配置
    m2014-software->Word2010发布博客文章至Cnblogs
    m2014-c->c模拟java的hashmap容器类
    m2014_c->c语言容器类工具列
  • 原文地址:https://www.cnblogs.com/sjbas/p/5550661.html
Copyright © 2020-2023  润新知