• 方法的参数传递


    方法的参数传递(重难点):

    1.形参:方法声明时小括号内的参数。

    2.实参:调用方法时,实际传入的参数的值。

    记住:Java中的参数传递机制是:值传递机制

    1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量。

    2)形参是引用数据类型的:将实参的引用数据类型变量的值(对应堆空间的实体的首地址的值)传递给形参的引用数据类型的变量。

    实例1):形参是基本数据类型的

     1 package com.cnblogs.java;
     2 
     3 public class ZhiChuanDi {
     4     public static void main(String[] args) {
     5         ZhiChuanDi zcd=new ZhiChuanDi();
     6         int i=8;
     7         int j=4;
     8         zcd.swap(i, j);//此处是值传递,只是把i和j的值传递给了形参m和n
     9         //调用swap()方法交换的只是m和n的值,i和j的值并未改变。
    10         System.out.println("i="+i+"	j="+j);//i和j并未改变
    11         
    12     }
    13     public void swap(int m,int n){//形参是基本数据类型
    14         int temp=m;
    15         m=n;
    16         n=temp;
    17         System.out.println("m="+m+"	n="+n);
    18         //m和n的值交换了
    19     }
    20     
    21 }

    运行结果:

    m=4  n=8

    i  = 8   j=4

    对应的内存图:new出来的ZhiChuanDi()存在堆空间,main方法中的 i 和 j 局部变量,存储在栈空间,Swap()方法中的参数m 和 n 局部变量,存储在栈空间,调用swap()方法时,只不过是把i 的值 8 传递给了 m ,把 j 的值 4 传递给了 n ,然后交换的是 m和 n 的值,打印 i 和j 的值不会改变。

    2)形参是引用数据类型的

     1 package com.cnblogs.java;
     2 
     3 public class ZhiChuanDi1 {
     4     public static void main(String[] args) {
     5         ZhiChuanDi1 tt=new ZhiChuanDi1();
     6         DataSwap ds=new DataSwap();
     7         tt.swap(ds);
     8         System.out.println("ds.i="+ds.i+"	ds.j="+ds.j);
     9     }
    10     public void swap(DataSwap d){
    11         int temp=d.i;
    12         d.i=d.j;
    13         d.j=temp;
    14     }
    15 }
    16 class DataSwap{
    17     //设置属性i和j
    18     int i=10;
    19     int j=5;
    20 }

    运行结果:

    ds.i=5  ds.j=10

    在内存中的存储:在内存中开辟出一个堆空间new DataSwap(),包括属性int i=10;int j=5; 然后对象ds指向堆空间的首地址,tt调用Swap()方法,把ds的首地址的值传递给了引用数据类型的形参DataSwap d,然后d是局部变量,在栈空间的首地址也指向new DataSwap(),然后创建temp 临时变量,交换的就是d.i和d.j

  • 相关阅读:
    同台电脑 多Git账号同时使用
    netty对http协议解析原理解析(转载)
    Netty 线程模型与Reactor 模式
    增量/存量数据按时间维度分组
    网易技术分享:Nginx缓存引发的跨域惨案
    全面剖析Redis Cluster原理和应用
    聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路
    美团点评基于 Flink 的实时数仓建设实践
    美团技术分享:大众点评App的短视频耗电量优化实战
    美团技术分享:美团深度学习系统的工程实践
  • 原文地址:https://www.cnblogs.com/yunqing/p/4779207.html
Copyright © 2020-2023  润新知