一、byte x = 1;这个过程中计算机底层做了什么?
1、x是变量空间,它存放在哪里?
2、1是常量,它存放在哪里?
3、= 是赋值,它做了什么?
1、创建:首先,我们在硬盘创建了一个Test.java文件(硬盘)
2、编译:经过编译器javac.exe编译成Test.class字节码文件(硬盘)
3、执行:在内存中执行,由类加载器(classLoader)将硬盘中Test.class文件的信息加载到内存中,运行的时候不是运行Test.class文件,而是运行Test.class文件的信息,所以是java Test
在开始运行的时候,JVM会把空间分成三块(内存):
① 栈空间:连续的空间,先入后出,存放变量,所有的执行过程都是在栈空间中
② 堆空间:不连续空间,存放对象,
③ 方法区:已被虚拟机加载的类信息、常量、字符串常量、类静态变量、即时编译器编译后的代码等数据,所有元素只有一份,不能被修改,被所有对象共享,线程共享
4、执行过程:首先把main方法加载到栈空间,再在栈空间中开辟一块空间存放x的内容----------->从常量池中复制1,把1的副本赋值给变量x
在这里插入图片描述: