1.Java虚拟机的内存划分
1. 寄存器
- 指向当前线程所执行的字节码指令的地址,给CPU使用(与开发无关)
2. 方法栈(内存)
- 方法运行时使用的内存,比如main方法运行,要进入方法栈内存中执行。
3. 本地方法栈
- 与方法栈很相似,是JVM在使用操作系统功能的时候使用(与开发无关)
4. 方法区
- 用于存储已被虚拟机加载的类信息、常量、静态变量、及时编译器编译后的代码等数据(可运行的class文件)
5. 堆内存
- 存储(new)对象或者数组,都存储在堆内存中。
2.基本数据类型与引用数据的区别
1. 方法的参数为基本类型时,传递的是数据值
2. 方法的参数为引用类型时,传递的是地址值.
3.方法的传入参数变量类型对原来结果的不同影响:
- 如果是基本数据类型,方法调用完毕从栈内存消失,对原来结果没影响;
- 如果是引用数据类型如数组传递的是地址值,改变了堆内存中的数据,
堆内存没有消失对原来的结果有影响