问:Java中形参的传递机制是什么?答:值传递。
public class TransferTest3{
public static void main(String args[]) {
TransferTest3 test = new TransferTest3();
test.first();
}
public void first() {
int i = 5;
Value v = new Value();
v.i = 25;
second();
System.out.println(v.i);
}
public void second(Value v, int i){
i = 0;
v.i = 20;
Value val = new Value();
v = valu;
System.out.println(v.i + "" + i);
}
}
class Value(){
int i = 15;
}
内存分配上,哪些结构应该在栈?哪些结构应该在堆?
栈空间(stack),连续的存储空间,遵循后进先出的原则,用于存放局部变量
堆空间(heap),不连续的空间,用于存放new出的对象,或者说是类的实例。
方法区(method),方法区在堆空间内,用于存放①类的代码信息;②静态变量和方法;③常量池(字符串敞亮等,具有共享机制)
值传递机制的结论:
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值
15,0,20