`
duanfei
  • 浏览: 733667 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于值传递与引用传递

    博客分类:
  • JAVA
 
阅读更多
Java中变量有以下两种:
1.基本类型变量:包括char,byte,short,int,long,float,double,boolean.
2.引用类型变量:包括类,接口,数组(基本类型数组和对象数组).

public class ParamTest {

    //初始值为0
    protected int num=0;
    
    //String初始值
    String str="1234";
    
    //为方法参数重新赋值
    public void change(int i)
    {
        i=5;
        }
    public void change(String str)
    {
        str="4556";
    }
    
    //为方法参数重新赋值
    public void change(ParamTest t)
    {
        ParamTest tmp=new ParamTest();
        tmp.num=9;
        tmp.str="对象改变";
        t=tmp;
        }
    //改变方法参数的值
    public void add(int i)
    {
        i+=10;
        }
    //改变方法参数属性的值
    public void add(ParamTest t)
    {
        t.num+=20;
        t.str="welcome";
        }
    public static void main(String[] args) {
    
        ParamTest t=new ParamTest();
        System.out.println("参数-基体类型");
        System.out.println("原有的值:"+t.num);
        
        //为基本类型参数重新赋值
        t.change(t.num);
        System.out.println("赋值之后:"+t.num);
        
        t.change(t.str);
        System.out.println("String改变之后:"+t.str);
        
        //为引用类型参数重新赋值
        t.change(t);
        System.out.println("运算之后:"+t.num);
        System.out.println("运算之后:"+t.str);
        
        //基本类参数改变
        t.add(t.num);
        System.out.println("改变之后:"+t.num);
        
        //引用参数改变
        t.add(t);
        System.out.println("引用改变之后:"+t.num);
        System.out.println("引用改变之后" + t.str);
        
    }
}


这一段代码详细说明了值传递与引用传递的关系.值传递只是Copy了过去.所做的动作与真正的值与关.而引用传递是地址上的变化.所以有相应的影响

参数-基体类型
原有的值:0
赋值之后:0
String改变之后:1234
运算之后:0
运算之后:1234
改变之后:0
引用改变之后:20
引用改变之后welcome
分享到:
评论

相关推荐

    Java:按值传递还是按引用传递详细解说

    在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点并非完全对立,而是根据不同的角度来描述Java中的参数传递...

    java值传递与引用传递

    因此,尽管看似是引用传递,但对`String`类型的处理结果与值传递类似。 总结来说,Java中的参数传递主要有以下特点: 1. 基本数据类型按值传递,函数内部无法改变实际参数的值。 2. 引用类型看似按引用传递,实际上...

    值传递和引用传递

    #### 四、值传递与引用传递的区别 - **数据类型**:值传递通常用于基本数据类型(如int、double等),而引用传递则用于对象类型(如类实例)。 - **内存分配**:值传递时,系统会为形参分配新的内存空间;而引用传递...

    值传递,指针传递,引用传递的区别,内含可运行代码和详细解释

    另一方面,值传递由于形参和实参内存地址不一样,有些功能并不能实现(swap()),因此,除了极为简单的函数会使用值传递外,大多数会采用引用传递。而对于指针传递,则在涉及数组的情况下使用较多,因为指针本身会给...

    java 值传递和引用传递的比较

    在Java编程语言中,了解值传递和引用传递的概念至关重要,因为它们直接影响到函数参数的处理方式。下面将详细探讨这两个概念及其区别。 首先,我们来理解什么是值传递。在Java中,基本数据类型(如int、double、...

    值传递与引用传递-内存解析

    与值传递不同,引用传递不创建参数值的副本,而是让函数直接访问原始变量。这样,函数对参数的任何操作都会反映到原始变量上。在C++中,引用是一个别名,它指向一个已存在的对象。在Python中,对象是通过引用传递的...

    Java面向对象值传递和引用传递

    Java 面向对象值传递和引用传递 Java 面向对象编程中,参数传递是非常重要的一个概念。参数传递有两种方式:值传递和引用传递。了解这两种方式的区别是非常重要的,因为它们对程序的执行结果产生了很大的影响。 值...

    面向对象语言中的值传递与引用传递

    面向对象编程语言中,参数传递主要有两种方式:值传递和引用传递。这两种方式在Java这样的语言中有着明显的区别,理解它们对于编写高效、无误的代码至关重要。 **值传递**: 值传递是Java中处理基本数据类型(如int...

    LabVIEW中引用的概念及在VI间传递值

    在VI间传递值,通常有三种方式:按值传递、按引用传递和按共享变量传递。按值传递是最常见的,但会创建数据副本,可能导致性能下降。相比之下,按引用传递能避免这种问题,因为只有引用本身被传递,而不是实际数据。...

    C#笔记值传递和引用传递

    在C#编程语言中,了解值传递和引用传递的概念至关重要,因为这直接影响到函数或方法如何处理参数。本文主要探讨这两个概念以及与之相关的知识点。 首先,值传递是指当一个方法或函数调用时,实际参数(即调用时提供...

    Delphi值传递和引用传递实例

    Delphi,作为一款基于Pascal语法的面向对象的编程环境,提供了两种主要的参数传递机制:值传递(ByValue)和引用传递(ByReference)。这两者在处理函数或方法的参数时有着显著的区别,对程序性能和数据安全有直接...

    第04章 面向对象(上) 08 值传递与引用传递

    本章节主要探讨的是在面向对象编程中一个重要的概念:值传递与引用传递。理解这两个概念对于编写高效、安全的Java程序至关重要。 值传递是指当函数或方法调用时,参数的副本被传入到函数内部。这意味着在函数内部对...

    java值传递和引用传递详解

    Java中的参数传递方式主要有两种:值传递和引用传递。理解这两种机制是编程中至关重要的,因为它们直接影响到函数内部如何改变或操作传入的数据。 **值传递**在Java中是基本数据类型(如int, double, char等)的...

    经典:值传递和引用传递.rar

    在编程语言中,值传递和引用传递是两个重要的概念,它们涉及到函数参数的处理方式,影响着代码的行为和性能。本教程将深入探讨这两种传递方式的差异和应用场景。 首先,让我们来理解“值传递”。在值传递中,当一个...

    Java语言中参数值传递和引用传递比较.pdf

    Java 语言中参数值传递和引用传递比较 Java 语言中参数值传递和引用传递是两种不同的参数传递方式,它们在 Java 编程中扮演着重要的角色。参数值传递是指将实际参数的值复制给形式参数,形式参数的变化不影响实际...

    C语言地址传递与值传递

    C语言中的函数调用机制包括值传递(value passing)和地址传递(address passing),通常被称为按值传递和按引用传递。C语言默认使用的是值传递机制,但是可以通过传递指针来实现类似地址传递的效果。下面将详细介绍这两...

    java参数传递时到底是值传递还是引用传递分享.pdf

    Java中参数传递的方式有两种理解:值传递和引用传递,但这两种说法实际上是对同一种机制的不同角度的描述。下面将详细解释这两种理解方式。 首先,我们来看值传递的理解。在Java中,当一个对象作为参数传递给方法时...

    引用类型按值传递举例.png|引用类型按值传递举例.png

    Js引用类型按值传递的题目:两个变量间赋值时,以及作为变量给函数传参时,只是将原变量中的值复制一个副本给对方变量或形参变量 i. 对于原始类型的值,修改新变量,不影响原变量 ii. 对于引用类型的值的值,因为...

Global site tag (gtag.js) - Google Analytics