用angular做的网站,简单网站建设 有教程,化妆品网页设计论文,民企品牌建设一#xff0c;原始代码
我们来看一下执行这段代码的具体流程 那执行这段代码中 JVM就会把已经编译好的.class文件加载到内存中#xff0c;交给CPU运行 1#xff09;常量池载入运行时常量池
我们发现 10 并没有被存入常量池中#xff0c; 这是因为short范围以内的数字不会…一原始代码
我们来看一下执行这段代码的具体流程 那执行这段代码中 JVM就会把已经编译好的.class文件加载到内存中交给CPU运行 1常量池载入运行时常量池
我们发现 10 并没有被存入常量池中 这是因为short范围以内的数字不会放到常量池中的 直接进入存入方法区
short.MAX_VALUE 32767 2)方法字节码载入方法区 3main线程开始运行
根据常量池方法区提供的信息确定操作数栈深度为2局部变量表的长度为4就足够用了 避免浪费 4执行引擎开始执行字节码 getstatic #4. 表示获取System.out 的静态字段 该静态字段的类型为java.io.PrintStream。该指令执行完成后操作数栈顶存放的就是System的out静态字段的引用 iload3 把局部变量表第3个位置的元素加载到操作数栈上 注意 下图堆上没有这个System.out对象 图错了 执行完成后弹出println栈帧并清空main操作数栈
5return操作
最后return 操作 弹出main栈帧 二 经典问题i
首先说一下 不管是 i 还是i 都是首先对局部变量表上的那个值进行自增 其次再返回i 但是区别在于 i 是返回操作数栈上的值 i 是返回局部变量表上的值 iinc 1,1 第二个iinc 1,1 这个就是第二a在 执行iload_1. 准备做第一次 第2次