摘要: 本地方法 一个Native Method就是一个Java调用非Java调用非Java代码的接口。 native Method:该方法的实现由非Java语言实现,这种方法大多数并没有方法体,是由非Java语言在外面实现的 native可以与其它标识符连用,但是abstract除外 为什么使用Nativ 阅读全文
posted @ 2020-05-26 15:24 梦想成为DALAO 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 方法的调用 符号引用转换为直接引用 方法的早期过程 静态链接 早期绑定 当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译器可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接 总结:知道自己要调用什么东西叫作静态链接 动态链接 晚期绑定 被调用的 阅读全文
posted @ 2020-05-26 15:14 梦想成为DALAO 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 动态链接 每一个栈帧当中都包含以个指向运行时常量池重该栈帧所属方法的引用(invokedynamic指令) 在java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用保存在class文件的常量池里; 比如:描述一个方法调用的另外的其它方法时,就是通过常量池中指向该方法的符号引用来表示 阅读全文
posted @ 2020-05-26 14:10 梦想成为DALAO 阅读(1406) 评论(0) 推荐(1) 编辑
摘要: 栈顶缓存(Top-of-StackCashing)技术 基于栈式架构得虚拟机所使用的零地址指令更加紧凑,但完成一项操作的时候必然使用更多的入栈和出栈指令,这同时也就意味着将需要更多的指令分派次数和内存读写次数 由于操作数是存储在内存重的,因此频繁地执行内存读/写操作必然影响速度。 综上所述: JVM 阅读全文
posted @ 2020-05-26 13:59 梦想成为DALAO 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 操作数栈 (可以采用数组或者链表来实现) 先15、8进栈,执行+; 23进栈 15出栈 8出栈 知识点 后进后出的操作数栈,可以成为表达式栈 操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或者提取数据,即入栈/出栈 如果被调动的方法带有返回值,其返回值会被压入当前栈帧的操作数栈中,并更新 阅读全文
posted @ 2020-05-26 13:52 梦想成为DALAO 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 局部变量表 又称:局部变量数组、本地变量表 定义一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量:基本数据类型、对象引用、以及returnAddress类型 局部变量表建立在线程的栈上,私有数据,不存在数据安全问题 局部变量表所需的容量大小是在编译器确定下来的,并保存在方法的Code属性 阅读全文
posted @ 2020-05-26 11:19 梦想成为DALAO 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 栈 栈与堆 栈是运行时的单位,而堆是存储的单位。 栈:解决程序的运行问题,即程序如何执行,或者说如何处理数据。 堆:解决的是数据存储的问题,即数据怎么放,放在哪儿。 Java虚拟机栈(Java Virtual Machine Stack),早期叫作Java栈。 每个线程在创建时都会创建一个虚拟机栈, 阅读全文
posted @ 2020-05-26 09:14 梦想成为DALAO 阅读(131) 评论(0) 推荐(0) 编辑