知识大全 《深入理解Java虚拟机》笔记

Posted 指令

篇首语:没有风暴,船帆只不过是一块破布。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 《深入理解Java虚拟机》笔记相关的知识,希望对你有一定的参考价值。

《深入理解Java虚拟机》笔记  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  

  在C里面我们想执行一段自己编写的机器指令的方法大概如下

  typedef void(*FUNC)(int);     char* str =  your code ;     FUNC f = (FUNC)str;     (*f)( ); 

  也就是说 我们完全可以做一个工具 从一个文件中读入指令 然后将这些指令运行起来 上面代码中 编好的机器指令 当然指的是能在CPU上运行的 如果这里我还实现了一个翻译机器 从自己定义的格式指令翻译到CPU指令 那么就可以执行根据自定义格式的代码了 那么上面这段代码是不是相当于最简单的一个虚拟机了?下面来看JVM的总体结构

   

  ClassLoader的作用是装载能被JVM识别的指令(当然不只是从磁盘文件或内存去装载) 那么我们先了解一下该格式

  

  魔数以及版本就不说了(满大街的文件格式都是这个东西) 接着的便是常量池 其中无非是两种东西

  Exceptions则非常简单

  

  LineNumberTable保存了字节码和源码之间的关系 结构如下

    

  LocalVariableTable描述了栈帧中局部变量表的变量和源代码中定义的变量之间的关系 结构如下

    

  SourceFile指明了生成该Class文件的Java源码文件名(比如在一个Java文件中申明了很多类的时候会生成很多Class文件) 结构如下

  

  Deprecated和Synthetic属性只存在 有 和 没有 的区别

  这样默认的类会是有Application ClassLoader去加载类 然后如果发现要使用新的类型的时候则会递归地使用Application ClassLoader去加载(在前面的加载过程中提到) 这样 只有在自己的程序中能使用自己编写的ClassLoader去加载类 并且这个被加载的类是不能被别人使用的

双亲委派模式不是一个强制性的约束 而是Java设计者推荐给开发者的类加载实现方式 双亲委派模式出现过的 次 破坏

  加载完完成后 接下来就要看程序是怎么运行的 栈帧是用于支持虚拟机进行方法调用和执行 帧的意思就是一个单位 在调用其他方法的时候会向栈中压入栈帧 结构如下

    

  在Class文件编译完成之后 在运行的时候需要多少个局部变量就已经确定(在前面Class文件中也已经看到过了) 那么这里需要注意这个特性可能会引发GC(具体如何引发就不在这里细说了) 在栈中 总是底层的栈去调用高层的栈(并且一定的相邻的) 那么他们在参数传递(返回结果)的时往往是通过将其压入操作数栈 有些虚拟机为了提高这部分的效率使得相邻栈帧 纠缠 在一起

    

cha138/Article/program/Java/hx/201311/26127

相关参考

知识大全 JAVA虚拟机实例学习笔记二

JAVA虚拟机实例学习笔记二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数组    数组也是

知识大全 深入Java虚拟机之内存优化

深入Java虚拟机之内存优化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 深入Java虚拟机中的Stack和Heap

深入Java虚拟机中的Stack和Heap  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JV

知识大全 全面介绍Xen虚拟机 深入学习Xen新起点

全面介绍Xen虚拟机深入学习Xen新起点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文主要

知识大全 深究Java虚拟机

深究Java虚拟机  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!JVM:JavaVirtualMa

知识大全 Java程序员的迷失—论“虚拟机”

Java程序员的迷失—论“虚拟机”  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  虚拟机技术现在

知识大全 发现Java虚拟机内存泄露问题

发现Java虚拟机内存泄露问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!内存泄露问题对于程序来

知识大全 降低Java虚拟机的风险

降低Java虚拟机的风险  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于在微软的环境中使用J

知识大全 Java虚拟机的垃圾收集算法

Java虚拟机的垃圾收集算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一标记清除算法(Ma

知识大全 Java虚拟机概念及体系结构详述

Java虚拟机概念及体系结构详述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一什么是Java