美文网首页
Java底层知识学习笔记

Java底层知识学习笔记

作者: dayue_ | 来源:发表于2019-04-01 00:42 被阅读0次
    1. Java平台无关性如何实现?
      首先我们看一张图片:


      Java平台无关性.png

    (1)Java源码首先要被编译成字节码,接着Java虚拟机通过编译好的.class文件进行解析,加载进内存,并执行相应的机器指令,。不同平台的指令集不同,如Linux、Win、IOS,Java虚拟机可以对.class文件解析成对应不同平台(操作系统)的机器指令,并加载进内存执行,这样一来,Java便实现一次编译(运行时无需再进行重新编译),到处运行,即跨平台运行.class文件。


    对java源代码进行编译
    编译后多出了.class文件

    (2)我们可以在IDEA工具中执行命令行窗口,来查看.class字节码,通过命令javap -c来查看字节码


    javap -c 可以反编译
    先进入src文件
    这就是.class文件的字节码,对应一些机器指令,但是这里并不是真正计算机执行的机器指令
    1. 为什么JVM不直接将源码解析成机器码去执行?
      -准备工作:无需每次执行时都进行各种检查。
      -兼容性:也可以将别的语言解析成字节码,如再由JVM解析执行。

    相关文章

      网友评论

          本文标题:Java底层知识学习笔记

          本文链接:https://www.haomeiwen.com/subject/wtiubqtx.html