`
yahaitt
  • 浏览: 759882 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

参数传递的过程

 
阅读更多

在JAVA里面,对于方法的参数传递,不管是原生数据类型还是引用类型,一律是传值:pass by value

只是在传递原生数据时,值是具体的值,而传递引用类型时,值是这个引用对象的地址。

 

java 代码
  1. package com.test;   
  2.   
  3. public class ParamTest {   
  4.   
  5.     public void changeInt(int a)   
  6.     {   
  7.         a = 3;   
  8.     }   
  9.     public void changePoint(Point point)   
  10.     {   
  11.         //此处将改变引用对象内存地址参数对应的对象的地址中的值   
  12.         point.x = 5;   
  13.         point.y = 6;   
  14.     }   
  15.     public void changeString(String str)   
  16.     {   
  17.         //String类型是个不可改变的final类型,此时,参数str将指向新的String pool中值为"abc"的对象,因此,原来的实参str的所指向的内存地址中的值并未被改变   
  18.         str = "abc";   
  19.     }   
  20.        
  21.     public static void main(String[] args)   
  22.     {   
  23.         int a = 1;   
  24.         ParamTest pt = new ParamTest();   
  25.         //传递的是原生数据(其值是原生数据的数据“1”,而不是原生数据的地址)   
  26.         pt.changeInt(a);   
  27.         System.out.println(a);//1   
  28.            
  29.         Point point = new Point(1,2);          
  30.         ParamTest pt2 = new ParamTest();   
  31.         //传递的是引用类型(其值是对象的内存地址)   
  32.         pt2.changePoint(point);   
  33.         System.out.println(point.x);//5   
  34.         System.out.println(point.y);//6   
  35.            
  36.         String str = "xyz";   
  37.         ParamTest pt3 = new ParamTest();   
  38.         //传递的是引用类型(其值是String pool中值为"xyz"的对象的内存地址)   
  39.         pt3.changeString(str);   
  40.         System.out.println(str);//xyz   
  41.            
  42.     }   
  43.        
  44. }   
  45.   
  46. class Point   
  47. {   
  48.     int x;   
  49.     int y;   
  50.     public Point(int x,int y)   
  51.     {   
  52.         this.x = x;   
  53.         this.y = y;   
  54.     }   
  55. }   
分享到:
评论
1 楼 accphc 2009-04-01  
很有代表意义。
1、原生类型
2、传递引用
3、String

相关推荐

    C语言函数参数传递过程教学方法研究.pdf

    《C语言函数参数传递过程教学方法研究》这篇文章深入探讨了C语言中函数参数传递的核心概念,旨在解决教学过程中的难点。C语言中的函数调用是一个关键的编程元素,而参数传递则是函数工作的重要机制。文章从变量和...

    net中WinForm参数传递过程

    ### .NET中WinForm参数传递过程详解 #### 一、前言 在.NET框架中,Windows窗体(WinForms)是一种强大的工具,用于构建丰富的Windows应用程序。它提供了一个结构化、面向对象且可扩展的类集合,使得开发者能够轻松...

    你了解u-boot与linux内核间的参数传递过程?.docx

    这些参数的传递过程是一个重要的环节,确保内核能够正确地初始化和运行。本篇文章将详细讲解U-boot如何将这些参数传递给Linux内核,以及内核如何解析和使用这些参数。 首先,U-boot会将要传递给内核的参数保存在一...

    基于C语言函数参数传递规律的探讨.pdf

    基于C语言函数参数传递规律的探讨 ...本文通过对函数参数传递方式的探讨,总结出了函数参数传递规律,并提供了一种全新的分析工具—图示分析方法,以帮助编程人员更好地理解和分析函数参数传递过程。

    页面之间传递参数

    此外,对于需要携带多个参数的复杂场景,还可以考虑使用 POST 请求或者 JavaScript AJAX 技术等其他方式来优化参数传递过程。总之,灵活运用各种技术手段可以有效提高 Web 应用的性能和易用性。

    BootLoader 与Linux 内核的参数传递.pdf

    参数传递过程涉及 BootLoader 和 Linux 内核两个部分: - **BootLoader**: 创建一个包含必要参数的链表,并将其物理地址存放在寄存器 r2 中。 - **Linux 内核**: 在启动时读取寄存器 r2 中的地址,解析参数链表中的...

    用实例分析Python中method的参数传递过程

    本文将通过实例深入探讨Python中method的参数传递过程,特别是 `instancemethod` 和 `staticmethod`。 首先,让我们理解什么是 `method`。与 `function` 不同,`function` 是一段可以被命名并调用的独立代码,接受...

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

    Java并没有像C++那样的真正的引用类型,它的“引用”实际上是对象的内存地址,因此在参数传递过程中,传递的是这个地址的副本。由于这个副本不能改变,所以我们说Java是值传递。但另一方面,由于这个“值”是一个...

    采用图示分析法剖析C语言函数参数传递规律.pdf

    本文通过内存图示分析法,系统地剖析了C语言函数参数传递的规律,着重讲解了三种不同情况下的参数传递过程以及实参和形参值的变化情况。 首先,函数调用时涉及到的局部变量的概念是理解参数传递的基础。局部变量是...

    C语言的函数参数传递规律探析.pdf

    C语言中的函数参数传递是编程学习过程中一个十分重要的概念,它涉及到数据在函数间是如何传递以及如何在...通过这种方式,可以帮助学习者更加直观地理解复杂的参数传递过程,提高编程能力和解决实际编程问题的能力。

    mybatis 动态sql及参数传递

    参数传递 单个参数传递 多个参数传递 传入单个实体(JavaBean/Map) 传入多个实体 传入集合 使用场景 在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,...

    C语言中函数的参数传递.pdf

    通过具体的实例可以帮助理解参数传递过程中的各种情况: 【例1】基本类型数据作为函数参数的传值方式: ```c #include "stdio.h" void fun1(int a, int b) { int t = a; a = b; b = t; printf("a = %d, b = %d...

    kettle实现多参数传递并且循环加载数据.zip

    本项目"Kettle实现多参数传递并且循环加载数据.zip"显然是一个利用Kettle解决复杂业务逻辑的示例,特别关注了参数传递和数据的循环处理。以下将详细解释相关知识点。 1. **Kettle参数传递**: 在Kettle中,参数...

    VB参数传递方式判别与解题应用

    VB参数传递方式是编程中一个基础但重要的概念,尤其是在Visual Basic中。VB中的参数分为实参(实际参数)和形参(形式参数),实参是在调用过程时提供的,而形参是在过程定义时声明的。当调用过程时,实参与形参通过...

    C#控制台程序之间参数传递

    在C#编程中,控制台程序之间的参数传递是一项常见的任务,尤其在系统集成或脚本自动化等场景下。本文将详细讲解如何从一个控制台应用程序(源程序)启动另一个控制台应用程序(目标程序),并传递参数字符串,以及...

    c++中参数传递方式讨论

    在C++编程语言中,参数传递是函数调用过程中一个至关重要的概念,它决定了函数如何接收外部传入的数据。根据给定的文件信息,我们将深入探讨C++中的三种主要参数传递方式:值传递、指针传递和引用传递,并分析它们的...

    易语言多线程传递文本参数两种方法

    2. **创建线程**:然后,在主线程中创建新的线程,并将参数传递给线程函数。使用 `创建线程` 命令,传入线程函数的入口地址和参数值,例如: ```易语言 创建线程, 线程函数入口, "要传递的文本" ``` 3. **线程...

Global site tag (gtag.js) - Google Analytics