精华内容
下载资源
问答
  • java中形参和实参区别 一、形参        形参出现在函数定义,在整个函数体内都可以使用, 离开该函数则不能使用。 二、实参        ...

    java中形参和实参的区别

    一、形参
           形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

    二、实参
           实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

    三、调用
           形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使加粗样式用该形参变量。

           实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

    四、位置
           当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。

    举例:
           比如你定义一个函数void add(int a, int b),这里的a和b就是形参。 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参。
    在这里插入图片描述
    五、作用
           形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。

           没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。

    六、两者关系
           在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

    展开全文
  • java中形参和实参区别(值传递 引用传递) 形参和实参区别 形参 就是形式参数,用于定义方法的时候使用的参数,用来接收调用者传递的参数。形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用...

                     java中形参和实参的区别(值传递  引用传递)

     形参和实参的区别

    形参

    就是形式参数,用于定义方法的时候使用的参数,用来接收调用者传递的参数。形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。

    因此,形参只在方法内部有效,所以针对引用对象的改动也无法影响到方法外。

    实参

    就是实际参数,用于调用方法是传递给方法的参数。实参在传递给方法前是要被先赋值才能传递的。

    在值传递的过程中,只能把实参传递给形参,而不能把形参的值反作用给实参。在函数调用过程中·,形参的值发生改变,而实参的值不会发生改变。

    在引用传递调用的机制中,实际上是将实参引用的地址传递给了形参,所以任何发生在形参上的改变也会发生在实参变量上。

    值传递和引用传递

     

    在谈值传递和引用传递之前先了解下java数据类型有哪些

    Java数据类型

    java的数据类型有两大类,基本类型和对象类型。相应的,变量也有两种类型:基本类型和引用类型。

    基本类型包括byte,short,int,long,char,float,double,boolean 这八大基本数据类型,

    基本类型的变量保存原始值,即它代表的值就是数值本身,原始值一般对应在内存上的栈区。

     

    引用类型包括 类类型接口类型数组  保存的是引用值,引用值指向内存空间的地址。代表了某个对象的引用,而不是对象本身。对象本身存放在这个引用值所表示的地址的位置。被引用的对象对应内存上的堆内存去。

    变量的基本类型和引用类型的区别

    基本数据类型在声明是系统就给它分配空间,无论是否赋值,声明的时候虚拟机就会分配 4字节的内存区域。引用数据类型不同,它声明时只给变量分配了引用空间,而不分配数据空间。 

    String 类型时声明的时候没有分配数据空间,只有 4byte 的引用大小,在栈区,而在堆内存区域没有任何分配。

    基本类型的变量是值传递引用类型的变量

    值传递

    方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的原始值得一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值得修改,不影响实际参数的值

    引用传递

    一般也称为地址传递。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的原始值的内存地址。

    在方法执行中,形参和实参内容相同,只想同一块内存地址,方法执行中对引用的操作将影响到实际对象。

    在这里插入图片描述

    展开全文
  • java中形参和实参

    2019-08-15 10:01:09
    形参在方法调用时才会对其进行分配空间,例如方法 public void compare(Integera, Integer b){......},那么 这里的ab就称为形式参数,我们在进行方法调用是传递的不管是常量,数值,表达式,字符串 compare(12, 35...

          形参在方法调用时才会对其进行分配空间,例如方法 public void compare(Integer a, Integer b){......},那么 这里的a和b就称为形式参数,我们在进行方法调用是传递的不管是常量,数值,表达式,字符串 compare(12, 35),12,35就是实参。

    展开全文
  • 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的...

     形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 
    形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
    
        1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能
    再使用该形参变量。 
    
        2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,
    输入等办法使实参获得确定值。 
    
        3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。 
    
        4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,
    而实参中的值不会变化。
      
      参看如下一段代码和它的运行效果:
      
    [java] view plain copy
    1. import java.util.ArrayList;  
    2.   
    3. public class Test{  
    4.      
    5.    public Test(){  
    6.       int tempParam=1;  
    7.       Integer tempObj=1;  
    8.       increseParam(tempParam);  
    9.       increseObj(tempObj);  
    10.       System.out.println("result_1=:"+tempParam);  
    11.       System.out.println("result_2=:"+tempObj);  
    12.       tempParam=increseParam(tempParam);  
    13.       tempObj=increseObj(tempObj);  
    14.       System.out.println("result_3=:"+tempParam);  
    15.       System.out.println("result_4=:"+tempObj);  
    16.         
    17.       String tempString="TEST";  
    18.       anaString(tempString);  
    19.       System.out.println("result_5=:"+tempString);  
    20.       tempString=anaString(tempString);  
    21.       System.out.println("result_6=:"+tempString);  
    22.   
    23.       ArrayList<String> list=new ArrayList<String>();  
    24.       list.add("AAAAA");  
    25.       list.add("BBBBB");  
    26.       list.add("CCCCC");  
    27.       System.out.println("size1=:"+list.size());  
    28.       clearList(list);  
    29.       System.out.println("size3=:"+list.size());  
    30.   
    31.   
    32.       ArrayList<String> list2=new ArrayList<String>();  
    33.       list2.add("AAAAA");  
    34.       list2.add("BBBBB");  
    35.       list2.add("CCCCC");  
    36.       System.out.println("sizeA=:"+list2.size());  
    37.       newList(list2);  
    38.       System.out.println("sizeC=:"+list2.size());  
    39.    }  
    40.   
    41.    public int increseParam(int i){  
    42.       i++;  
    43.       return i;  
    44.    }  
    45.     
    46.    public int increseObj(Integer i){  
    47.       i++;  
    48.       return i;  
    49.    }  
    50.   
    51.    public String anaString(String str){  
    52.        str=str+"_APPEND";  
    53.        return str;  
    54.    }  
    55.   
    56.    public void clearList(ArrayList<String> list){  
    57.        list.clear();  
    58.        System.out.println("size2=:"+list.size());  
    59.    }  
    60.   
    61.    public void newList(ArrayList<String> list){  
    62.        list=new ArrayList<String>();  
    63.        list.add("DDDDD");  
    64.        System.out.println("sizeB=:"+list.size());  
    65.    }  
    66.   
    67.    public static void main(String[] args){  
    68.       new Test();  
    69.    }  
    70. }  

    运行效果:


            从这个例子中可以看出,可以在方法内部通过方法参数列表中传递过来的对象的引用(形参)来控制对象(通过对象对应的类中的方法),但是不能重建这个引用原来所对应的对象(实参),在方法中对引用所做的重建只是在方法内部起作用。

    展开全文
  • java中形参实参改变

    千次阅读 2015-08-06 11:34:16
    Java中形参如果为基本类型的话,传递的是值,所以不会改变的(因为在内存它指向的数据的地址没改变,所以不会发生改变)改变的只是形参实参不会改变   //基本类型     public classtest3 {  ...
  • 形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的...
  • java中形参实参

    2015-03-30 09:29:46
    形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的...
  • Java 变量 形参和实参

    2020-12-28 10:52:56
    3. 简单来说就是进行函数调用的时候需要实参从主函数中传给被调用函数形参,这样函数才可以执行,实参和形参起到一个桥梁的作用。 /*-- 例子 --*/ public class Test { public static void main(String...
  • JAVA形参和实参区别

    千次阅读 2018-09-02 16:05:32
    (1)形参 顾名思义:就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的。形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。因此,形参只...
  • Java】一文详解Java方法形参和实参

    千次阅读 2020-09-11 17:28:22
    对于形参和实参,我们已经不再陌生,看下面这段代码 public static void main(String[] args) { StringBuffer buffer1 = new StringBuffer("A"); StringBuffer buffer2 = new StringBuffer("B"); test(buffer1...
  • 阅读此篇博客预计消耗你2分钟...其中参数 i strName 就是你的形参 实参:就是传入的参数列表 | 例如: String str = "狗蛋"; int num = 10; test(str,num); // 狗蛋一顿吃了10包面 其中 str num 就是你的实参 .
  • 关于Java中形参实参的理解 今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别)。参考网站http://www.cnblogs.com/binyue/p/3862276.html。...
  • java中形参和实参

    千次阅读 2018-04-16 18:33:57
    形参 形式参数 ...形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 区别形参变量只有在被调用时才分...
  • 今天在回顾学习java基础部分内容面向对象编程的时候整理了一些自己容易混淆的知识点(形参实参,成员变量,局部变量,构造方法) public class temp{ int v;//此处 va成员变量可以被修饰符修饰如(public ,...
  • java中有两个参数,一个是形参,一个是实参形参:在函数定义,整个函数体内部都可以使用,离开了该函数就不能继续使用。 实参:出现在主函数,进入被调函数后,实参变量也就不能继续使用。 1 public ...
  • 1,名词解析 (1)形参形参出现函数定义,在整个函数体内都可以使用,离开函数则不能使用...2,形参和实参区别 (1)形参变量只有在被调用时才分配内存单元,在调用结束后,立即释放所分配的内存单元。因此...
  • java中形参实参的一点总结

    万次阅读 2013-04-08 20:39:25
    形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的...
  • 形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存...
  • Java形参和实参区别

    2017-10-26 14:39:55
    形参:是在定义函数名函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。 例如: int func(int a) {……}这里定义了函数func(),括号里的a即为该函数的形参实参:可以是常量、变量、表达式、函数...
  • 形参实参对应两种类型:值类型与引用类型值类型:包括8种基本类型(byte、short、int、long、double、float、char、boolean)+String引用类型:数组、类、接口等类型。注意String类型,这个比较特殊,它是存储在...
  • Java中形参和实参

    千次阅读 2018-05-30 10:17:02
    实参(实际参数): 是在调用时传递给函数的参数。...是在定义函数名函数体时使用的参数,用来接收调用该函数时传入的参数(即实参传值给形参)。所以实参的类型个数应和形参一一对应。例如:void add(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,705
精华内容 13,482
关键字:

java中形参和实参的区别

java 订阅