基本类型赋值
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
指向创建的对象的地址
总结
=
左边声明某类型的引用,存储在栈中
=
右边将值存储在内存中,基本类型值存储在栈中,常量值存储在常量池中,对象存储在堆中
=
连接引用指向存储值的地址
参数传递
理解为引用的传递
但是在效果上基本数据类型和类的参数传递有区别
这是为什么呢?