一. 首先java中的基础数据类型byte,short,int,long,float,double,boolean,char
1. 通过基本数据类型声明的局部都是存储java虚拟机栈当中
2. 非基本数据类型,存储于java 堆内存当中
二 基本类型 和 引用类型的不同之处
int num = 10; String str = "hello";
1. 如图所示,num是基本类型,值就直接保存在变量中。而str是引用类型,变量中保存的只是实际对象的地址。一般称这种变量为"引用",引用指向实际对象,实际对象中保存着内容。
三:赋值运算符(=)的作用
num = 20;
str = "java";
1. 对于基本类型 num ,赋值运算符会直接改变变量的值,原来的值被覆盖掉。
2. 对于引用类型 str,赋值运算符会改变引用中所保存的地址,原来的地址被覆盖掉。但是原来的对象不会被改变(重要)。
3. 如上图所示,"hello" 字符串对象没有被改变。(没有被任何引用所指向的对象是垃圾,会被垃圾回收器回收)

三. 调用方法时发生了什么?参数传递基本上就是赋值操作。
public static void main(String[] args) { ParamTest pt = new ParamTest(); pt.sout("Hollis");//实际参数为 Hollis } public void sout(String name) { //形式参数为 name System.out.println(name); }
形式参数为 name的值在执行的过程当中,会拷贝一份 实际参数为 Hollis栈内存中的值一个副本
原文:https://www.cnblogs.com/chihirotan/p/13970720.html