Java学习
简单易懂的进入学习
Joseph_zuo
codeII
展开
-
使用多线程计算阶乘累加 1!+2!+3!+...+19!+20!
package adc.ms;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.concurrent.*;/** * 1!+2!+3!+...+19!+20!* */public class TestDemo { public static void main(String[] args) throws Exception { ..原创 2020-11-23 15:29:15 · 729 阅读 · 1 评论 -
结合字节码指令理解虚拟机栈和栈帧
官网 :https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.6 栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。每个栈帧中包括:局部变量表,操作数栈,动态链接,方法返回地址局部变量表:方法中定义的局部变量以及方法的参数存放在这张表中 局部变量表中的变量不可直接使用,如需要使用的话,必须通过相关指令将其加载至操作数栈中作为操作数使用。 (局部变量以0,1,2这样的顺序存..原创 2020-10-08 23:17:53 · 175 阅读 · 0 评论 -
编译并加载到jvm
1,源码.java编译为class文件javac .java ---->.class(类文件) javap 获得可以清晰看到的虚拟机指令编译过程:.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析器 -> 注解抽象语法树 -> 字节码生成器 -> Person.class文件 2.类文件到虚拟机2.1 装载(load)(查找导入class文件)...原创 2020-10-08 22:11:22 · 113 阅读 · 0 评论