zoukankan      html  css  js  c++  java
  • Java是如何运行的

          1、Java的源代码是.java文件,使用compiler(即javac命令)把源文件编程.class文件,这个文件是java的byte code文件。然后使用java虚拟机(JVM)来运行这个中间代码,就可以得到想要的结果。运行JVM使用的命令是java <your_class>。

               在JVM中有JIT(just-in-time) compiler, 是JIT把byte code转换成native machine code。 The JIT compiler translates the Java bytecode into native processor instructions at run-time and caches the native code in memory during execution.[3]

               Java虽然是platform independent,但是JVM却不是。对于不同的操作系统和不同的CPU架构,有不同的JVM与之对应。JVM就是这样屏蔽底层硬件差异,使得Java program可以在任何平台上无差别的运行。[3]

    image

          2、Java依赖于JVM来运行它的程序。同时Java也依赖于Java Platform。Java Platform是由很多类(classes)构成的,这些类又被组织成为packages,每个package完成一项比较庞大的功能,比如networking, graphics, input/output, user-interface creation, 以及security。[1]

          3、由于Java是在JVM上运行的,这并不是一个真实的硬件环境(寄存器啦、内存啦、指令操作啦等等),而仅仅是一个在内存中存在的虚拟的环境。所以,JVM这个软件如果编的不好,就会使得代码运行出错。不同机器上的JVM如果有差异,代码运行时也有可能会出现不同。[1]

          4、JRE中包含JVM。JDK又包含JRE。JRE和操作系统进行交互。操作系统会提供各种system calls,通过这些system calls,就可以对硬件进行操作(让硬件来执行指令).[2]

    image

          5、Java的语法结构借鉴的是C和C++的。Java的面向对象的特性借鉴的是Smalltalk和Object-C的。[3]

          6、Java的每个Object都是在Heap中分配的(即动态分配的),all variables of object types are references. Java的内存管理是通过JVM的garbage collection统一管理的,因此比较简单。[3]

          [1]  HOW JAVA WORKS: http://ecommerce.hostip.info/pages/643/Java.html

          [2]  How the Java virtual machine (JVM) works: http://www.codeproject.com/KB/java/How_JVM_Works.aspx

          [2]  Java (sotfware platform): http://en.wikipedia.org/wiki/Java_(software_platform)

  • 相关阅读:
    异常练习一 throw
    MAP排序
    Java正则表达式应用详解
    java多线程 sleep()和wait()的区别
    面向对象的15、18位中国大陆身份证号码解析、工具
    java学习笔记--this 关键字的理解
    Java六大问题你都懂了吗?
    Java类的声明和访问介绍
    java的五种数据类型解析
    Java集合框架的总结
  • 原文地址:https://www.cnblogs.com/wangshuo/p/2067776.html
Copyright © 2011-2022 走看看