• JAVA的JVM虚拟机工作原理.V.1.0.0


    注意:一下内容纯属个人理解,如有错误,欢迎批评指正。

      (90度弯腰)谢谢。

    java在JVM上的运行过程:

    1,编辑好的java代码(IDE无报错,测试运行无错误);

    2,java源代码通过javac编译成class文件(字节码文件,全是二进制数据,是供神看的东西);

    3,class文件加载到JVM上,继续二次编译(或者说上次的根本就不算编译,就是一格式转换),进行平台格式化(这也是java广告的来源);

    4,格式化后的文件,就可以在相应的平台上进行运行了(机器直接读取格式化后的二进制文件,也就是字节码、机器码,一个意思)。

    简单的说就是以上那点东西。

    我的疑问有以下几点:

    1,java的IDE的纠错机制是怎么进行的?难道要把所有能出现的错误全部继承为一个数据库,然后在运行中进行查询?那得多慢啊。所以这个方案否定(如果真是这样,我只能呵呵了)。

    2,java到class文件过程,是什么在进行的,class到底是什么文件,简单的二进制?据说是C程序(某大神这样解释的),真的吗?

    3,class到JVM:JVM在不同的平台上有不同的版本,对应不同的解码机制(?)。但是,这个JVM是怎么出现的,用java写的还是其他语言?亦或是汇编?

    4,异常、错误机制:机器运行不了了,程序出现错误了,异常抛出,怎么抛的?就像扔东西一样扔出去?

    5,JVM格式化(我自己喜欢这样叫)class文件后,生成的是什么文件?存储到哪里了?

    6,都说java的运行速度慢,又有说java可以格式化成C语言,甚至汇编语言(参照上面的大神),那么,为什么不直接将java格式化为C或汇编后再发布?这样猿猿们也轻松了,机器也轻松了,真个世界都和平了。

    7,这个问题宽泛了:JVM个平台的区别,我说的是root,不是简单的版本。

    8,待补充。。。

    解决问题:

    问题提出来就是要解决的,只是今晚没心情,还有任务要做,先这样了。

    来个戳:2015-07-21

    插曲:

    其实这个题目并不是我想写的,是周公让我写的。

    可恶的周公,在梦里也不放过我,休息下容易吗。

  • 相关阅读:
    VTK初学一,动画加AVI录制终于做出来了
    QCamera获取摄像头图像(转载)
    VTK初学一,比较常见的错误2
    myeclipse2014鼠标单击后光标位置背景底色为白色太难看,行号显示
    记一次跟二房东公司(非中介个人房源无中介费)租房的经历
    求16进制数据或运算后的值(即多个16进制相加的和)
    error LNK2001: 无法解析的外部符号 "public: char * __thiscall
    如何利用指向数组的指针得到数组元素个数?
    C++判断字符串是否为空的一个小问题
    C++开发中BYTE类型数组转为对应的字符串
  • 原文地址:https://www.cnblogs.com/SummerinShire/p/4665665.html
Copyright © 2020-2023  润新知