Java参数传递——值传递还是址传递?
首先是变量的存储方式
各种变量的存储方式:
基本数据类型:
int age = 20;
变量名age和值20都存储在jvm栈中
引用数据类型:
字符串见 https://blog.csdn.net/oooo2316/article/details/103298996
懒得看的话:字符串常量存储在堆的常量池中,字符串对象存储在堆的非常量池中
对象:
对象本身存储在堆中,包含了对象的成员变量和成员函数。
对象的地址x0123作为引用,赋值给对象变量obj。
因此,可以将x0123看作obj的值,这样一来,obj的变量名和值都是存储在jvm栈中了,只不过它的值是对象的地址。
程序运行时调用main方法,于是将mian方法的各种东西压入栈桢。
现在,假设main中新建了基本类型变量a和对象类型变量b,对象b中包含一个基本类型变量 i
。
int a = 5;
B b = new B();
b.setI(10);
还有一个可以将传入的 a</