精华内容
下载资源
问答
  • 一、函数中使用: 形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。 实参出现在主调函数中,进入被...实参可以是常量、变量、表达式、函数等,无论实参是何种类型量,在进行函数调用时...

    一、函数中使用:

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

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

    二、调用

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

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

    三、不是指针类型在内存中位置不同:

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

    举例:

    1. 比如你定义一个函数void add(int a, int b),这里的a和b就是形参。

    2. 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参。

    在这里插入图片描述

    扩展资料

    形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。

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

    两者关系:

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


    形参在方法头定义中用到。比如计算两数和的方法
    int a=4,b=8;
    public double getSum(double a,double b)//这里的a,b就是形参
    {
    return a+b;
    }
    实参是调用方法时实际传入的参数,比如调用上述方法
    new Xxx().getSum(a,b);//这里的a,b就是实参
    还拿这个例子来说,形参是不会被分配存贮空间的,同样是a,b,下边的a b都是在内存中有存贮空间的。而方法定义中的a ,b却没有

    展开全文
  • Java 形参与实参

    2018-03-16 14:53:13
    这两天和一个朋友和我讨论了一个面试题,是形参与实参的问题。一个很有意思的小问题,一开始有些乱后来想想就明白了,所以我就对java参数传递做一个总结,以加深自己的基础知识。形参和实参的区别形参就是形式参数,...

    这两天和一个朋友和我讨论了一个面试题,是形参与实参的问题。一个很有意思的小问题,一开始有些乱后来想想就明白了,所以我就对java参数传递做一个总结,以加深自己的基础知识。

    形参和实参的区别

    形参

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

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

    实参

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

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

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

    值传递和引用传递

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

    Java数据类型

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

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

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


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

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

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

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

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

    值传递

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

    引用传递

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

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




    展开全文
  • JAVA基础之形参与实参的区别

    万次阅读 2017-03-15 22:23:42
    实参定义:全称"实际参数",用于调用时传递给方法参数,即传递给被调用方法值。说明:预先创建并赋予确定值。 1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配内存单元。因此,形参...

    形参

    定义:全称"形式参数",用于定义方法的时候使用的参数,目的用来接收调用该方法时传递的参数。

    说明:只有在被调用时才会分配内存单元,在调用结束,即刻释放所分配的内存单元。因此,只在方法内才有效。

    实参

    定义:全称"实际参数",用于调用时传递给方法的参数,即传递给被调用方法的值。

    说明:预先创建并赋予确定值。

    1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
    2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
    3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
    4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
    代码展示:
    
    
    展开全文
  • 2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型量,在进行函数调用时,它们都必须有确定值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。 3、实参形参在数量上,...

    1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
    2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
    3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
    4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

    ------------------------------------------------------------------------------------------

    1. 比如你定义一个函数void add(int a, int b),这里的a和b就是形参。 
    2. 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参。

     

    ---------------------------------------------------------------------------------

     转载: https://www.cnblogs.com/chenyanlong/p/7792937.html

    展开全文
  • 1.引用数据类型作为参数,形参的改变会影响实参的值(String类包装类除外) 引用数据类型作为参数 --------- 参数值保存在堆内存空间中,而栈内存中的对象则保存参数值在堆内存空间中的地址值 原理分析: 1....
  • 2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型量,在进行函数调用时,它们都必须有确定值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。3、实参形参在数量上,...
  • 形参实参对应两种类型:值类型引用类型值类型:包括8种基本类型(byte、short、int、long、double、float、char、boolean)+String引用类型:数组、类、接口等类型。注意String类型,这个比较特殊,它是存储在...
  • 关于Java形参与实参的理解 今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别)。参考网站http://www.cnblogs.com/binyue/p/3862276.html。...
  • java——形参与实参

    2018-08-13 21:37:00
    对最基本的形参与实参有了一定理解,虽然还是不够深入。 1、基本概念 形参:全称为"形式参数"是在定义函数名和函数体时候使用参数,目的是用来接收调用该函数时传如参数. 实参:全称为"实际参数"是在调用...
  • 关于Java方法 方法定义: 实现一个功能步骤有序组合 方法包含在类和对象中 方法在程序中创建,在其他地方被引用 方法结构: 1.有返回值,即返回值不为void类型,返回值数据类型需定义返回值类型一致。...
  • 今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递引用传递的区别)。参考网站http://www.cnblogs.com/binyue/p/3862276.html。下面我将通过次博文记录自己的理解,还望能够...
  • 今天在回顾学习java基础部分内容面向对象编程时候整理了一些自己容易混淆知识点(形参实参,成员变量,局部变量,构造方法) public class temp{ int v;//此处 v和a成员变量可以被修饰符修饰如(public ,...
  • 3、值传递引用传递的区别 **值传递**: 真实的数据值---》改变副本**不影响原变量** 方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的事原始值的一个copy **引用传递**: 实参的引用地址被传递给...
  • 抽象类接口的区别: 定义接口的关键字是interface ,抽象类的关键字是abstract class 。 从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。 可大致有以下几点: 1.抽象...
  • 形参实参引用传递

    2019-08-13 09:34:56
    Java中的形参和实参的区别以及传值调用和传引用调用 参考资料 1,Java实参和形参与传值和传引用 https://blog.csdn.net/wanliguodu/article/details/55653876 2,Java中的形参和实参的区别以及传值调用和传引用调用 ...
  • 实参形参的定义: 形参出现函数定义中,在整个函数体内都可以使用,离开函数则不能...实参形参的区别: 1.形参变量只有在被调用时才分配内存单元,在调用结束后,立即释放所分配的内存单元。因此,形参只有在...
  • java中方法调用,实参通过引用传递给形参,形参用实参的引用(地址)初始化一个临时存储单元,此时形参与实参指向同一个对象,因此修改形参的值会影响到实参。 转载于:https://www.cnblogs.com/rds-0...
  • java与C++的区别

    2006-09-23 13:32:00
    只是一种不可计算的指针)Index check 数组有下标检查Auto memory management 内存自动管理函数必须在类中(不能像c++函数可以游离在类之外)传值=形参+实参(从90年开始就不提形参实参的概念啦)public class ...
  • 关于Java形参与实参的理解今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别)。参考网站http://www.cnblogs.com/binyue/p/3862276.html。下面我将通过次博文...
  • 值传递是方法调用的时候,把实参的值的拷贝传递给形参,实参和形参存储在不同的存储单元里面,对形参的改变不会影响到实参的值,Java里基本数据类型的传递是值传递。 引用传递是方法调用的时候,传递的是对象在堆...
  • 引用传递:在方法调用中,传递的是对象(也可以看做是对象的地址),这时形参与实参的对象指向同一块存储单元,因此形参的修改会影响到实参的值。 在Java语言中,原始数据类型在传递参数时,都是按值传递,而包装类型...
  • 抽象类:用abstract修饰类称为抽象类。  它可以有构造器,但是不能构造对象,抽象类中构造器,在构造具体子类对象时调用,抽象方法...无论谁做形参实参一定是具体类对象!(具体父类具体子类;抽象类具体
  • 在方法的调用过程中,实参把它的实际值传递给形参,此传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。因为是直接复制,所以这种方式在传递大量数据...
  • 引用传递是把形参实参的指针指向了堆中的同一对象,对象的引用和数组的引用。 注意: 实参,Java的基本数据类型,如int,double等在函数的参数传递时,传递的是副本。String也属于这一范畴。 形参,而如果是...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

java形参与实参的区别

java 订阅