首先说下内存的概念
JVM在内存里开辟内存,然后把开辟的内存分为三部分,
栈内存(后进先出,先进后出)就像是装子弹一样,先装的那颗子弹,只能最后射出来。
堆内存,它是一个仓库,堆东西的。
存储区(自己定义的名字),分为三部分,第一部分叫常量缓冲区(常量池)
第二部分叫做方法区,它存储的是方法所对应的类模板。
第三部分叫静态元素区,static
存储区的特点:所有的元素只有一份,不能改变。
java文件运行思路
一开始保存在磁盘里,然后被javac编译成class文件,再映射到内存的方法区中,java命令执行的就是方法区的类模板。
其中,它有一个默认执行过程:有一个类加载器,叫classLoader。它将硬盘的字节码文件的信息搬运到内存中。
所有的执行都在栈内存里
比如:
byte x=1;
x是在栈内存里开辟一个名字叫x的内存,它只能存byte类型的数据。
1存在变量空间里
=是赋值,它把常量区找到1复制一份到x内存空间里