值传递机制的练习

问: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

posted @ 2021-02-26 23:51  我tm爱死java了  阅读(38)  评论(0编辑  收藏  举报