大家好,今天看了一个java面试讲解课程,里面说i++,在jvm执行时,会被分成四步:
1.主存中i的数值放到线程工作内存
2.加一
3.加一的值放回线程工作内存中
4.线程工作内存中的值放回主存中
使用idea编写了一个例子,获取jvm的汇编指令,使用指令说明,翻译过来在内存中数值流转。发现2,3是一个命令iadd。具体如下:
例子:
package com.wmr.jvmtest;
public class IPlusTest {
static int i = 0;
public static void main(String[] args) <