补充知识:String类型是应用类型,但是每次复制都会初始化一个字符串对象在堆内存里。
JVM内部构成:
JVM 在运行时会为每一个线程简历一个独立的栈,每一个线程在运行时会为每一个方法建立一个帧。
每一个帧的内部构造方式
每一个线程在操作一个方法时都会在自己栈中压入一个当前方法帧,当方法遇到return和异常时,对应的帧就会出栈。对应着pop和push。
补充:
在jvm运行时局域:五大区域 本地方法栈、虚拟机方法栈、程序计数器为线程私有。方法区和堆可以线程共有,所以会存在线程安全问题,而线程私有区域不会存在线程安全问题。
查看字节码局部变量的方式
https://www.cnblogs.com/tangliMeiMei/p/13033572.html
堆、栈、方法区的交互