基本类型赋值
int a = 3;
int a声明 int 型的引用a, 存储在栈中
3 查找堆栈中是否存在为3的字面值,若不存在,在堆栈中开辟一个地址存放3字面量
= 将引用a指向存储3字面量的地址
String类型赋值
String s = "hello";
String s 声明 String 类型的引用 s,存储在栈中
"hello" 存储在String 常量池中
= 将引用s指向存储hello的地址
类赋值
StringBuffer buffer = new StringBuffer("hello");
new StringBuffer("hello") 在堆中创建一个对象
StringBuffer buffer 声明StringBuffer类型的引用buffer
= 将buffer指向创建的对象的地址
总结
= 左边声明某类型的引用,存储在栈中
= 右边将值存储在内存中,基本类型值存储在栈中,常量值存储在常量池中,对象存储在堆中
= 连接引用指向存储值的地址
参数传递
理解为引用的传递
但是在效果上基本数据类型和类的参数传递有区别
这是为什么呢?