`
Julysea
  • 浏览: 131197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中向方法传参数只有传值一种!

阅读更多

    本文是个总结,欢迎讨论!

    在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。

    首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中的类的实例区域,最后把这个区域的指针赋给类的这个变量。注意,变量中存的是指向对象的指针。

    若是按传址传参数,是要改变这个对象变量所指的内存对象区域,也就是要在方法内把新对象赋给方法外的对象变量。但是,这在Java中办不到。因为Java是把对象变量中的对象指针传入方法,并没有把变量本身的地址传入方法;在方法中,会生成新变量接受这个对象的指针。所以,在Java方法中,可以改变当前对象中的内容,却不能改变方法外边变量的值,即所指向的对象。对于传值、传址的分析就是为了在应用中少犯错误。其他是次要的。

《此位置本有图片,因不能上传,故删除》

 0: public class DemoTest { 1:   public String x; 2:   public void setX(String x){ 3:     this.x=x; 4:   } 5:   public void test(DemoTest ok){ 6:      ok=new DemoTest(); this.x="333"; 7:   } 8:   public String getX(){ 9:     return this.x;10:   }11:   public static void main(String[] args) {12:     DemoTest ob = new DemoTest();13:     DemoTest obp = new DemoTest();14:     ob.setX("111");15:     System.out.println("ob.X"+ob.getX());16:     obp.test(ob);17:     System.out.println("ob.X"+ob.getX());18:     ob.test(ob);19:     System.out.println("ob.X"+ob.getX());20:   }21: }

对于上面的程序,要分清楚对象变量和对象实体。

注意在上面的方法调用是一个可能引出错误的调用,不能说明传值和传址的区别。



 

 
 
分享到:
评论

相关推荐

    java的传值与传值后的改变

    在Java编程语言中,"传值与传值后的改变"是一个关键的概念,涉及到函数调用时参数的传递方式。在Java中,有两种基本的数据类型:原始类型(如int, double, char等)和引用类型(如类实例、数组)。它们在函数调用时...

    浅谈Java中方法的参数传值.pdf

    Java方法参数传值是Java编程中的基础知识点,涉及变量、数据类型和方法调用的机制。在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型...

    JSP中java代码与js之间的传值

    综上所述,Java和JavaScript之间的值传递涉及多种方法,具体选择哪种取决于应用场景、数据量、安全性需求以及是否需要异步通信等因素。在实际开发中,理解并熟练运用这些技术对于创建高效、动态的JSP应用至关重要。

    java中传值与传引用

    在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...

    java中传值还是传引用的的认识

    "java中传值还是传引用的认识" Java 中的参数传递是值传递还是引用传递?这是一个经常引发讨论的问题。在 Java 中,参数传递是按值传递的,也就是说,传递给方法的参数是一个副本,而不是原始值本身。 当一个对象...

    Java是传值还是传址引用

    在Java中,引用是一种特殊的数据类型,用于存储对象在内存中的地址。当我们创建一个新的对象时,Java会在内存中分配一定的空间来存储该对象的数据,并返回一个指向该对象的引用。通过这个引用,我们可以访问和操作该...

    浅谈Java中方法的参数传值.zip

    这是Java提供的一种多态性表现,允许根据传入的不同参数调用相应的方法。 总结来说,Java中的方法参数传递涉及到值传递(对于基本类型)和对象引用的值传递(对于对象类型)。理解这些概念有助于编写更高效、可维护...

    Java到底是传引用还是传值Java开发Java经验技巧共

    Java编程语言在处理参数传递时遵循一种特殊的方式,它既不是纯粹的按值传递,也不是纯粹的按引用传递。理解这一点对于深入学习Java至关重要。在Java中,基本数据类型(如int、float、char等)是按值传递的,而对象则...

    Java中参数传值的代码清单.pdf

    在Java编程语言中,参数传递是一个关键的概念,它涉及到函数或方法调用时,值如何从调用者传递到被调用者的过程。Java只支持两种类型的参数传递:基本数据类型(如int、double等)的传值和引用类型(如类对象)的...

    java传值中的乱码

    本文将深入探讨Java传值中的乱码问题,并提供一种简单有效的解决方案。 #### 一、乱码产生的原因 在讨论如何解决乱码之前,我们需要先了解乱码产生的根本原因。通常来说,乱码主要是由于字符编码不一致造成的。当...

    Java参数传递PPT

    Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...

    后台与页面之间的传值以及页面与页面之间的传值

    在Spring MVC中,控制器方法可以直接通过方法参数接收这些参数,例如: ```java @RequestMapping(value = "/save", method = RequestMethod.POST) public String save(@RequestParam("name") String userName, @...

    引用类型传值方法

    此外,C#中的`ref`和`out`关键字提供了另一种传递引用类型的方式。使用`ref`关键字,可以确保参数是按引用传递的,这意味着函数可以改变实参的值。`out`关键字类似,但要求函数必须为参数分配值。这两种方式可以用于...

    页面传值与后台传值

    在IT行业中,页面传值与后台传值是Web开发中的基础技能,特别是在使用Java进行后端处理时。这里我们将深入探讨这两个概念,并结合标签“jsp”和“json”,阐述它们在实际开发中的应用。 首先,页面传值指的是前端...

    跨页面传值跨页面传值

    以下将详细介绍五种跨页面传值的基本方法。 1. **URL参数传递**:这是最简单的方法,通过在链接的URL后面添加问号(?)和参数对来实现。例如,`http://example.com/page2.html?name=John&age=30`。在页面2中,可以...

    几种JSP页面传值方式.txt

    在Java Web开发中,JSP(Java Server Pages)是一种常用的技术,用于创建动态网页。JSP页面之间的数据传递是实现前后端交互的关键环节之一。本文将详细介绍几种常见的JSP页面传值方式,并结合实际应用场景进行解释。...

    23.Java对象作为参数传递是传值还是传引用1

    在Java编程语言中,关于Java对象作为参数传递时的行为,存在一种常见的误解。许多人认为对象是按引用传递,而实际上,Java总是按值传递,包括对象。这里的“值”指的是对象的引用,而不是对象本身。这与C++或C#等...

    Java传值还是引用

    首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并传递到方法内部。然而,对于基本类型,传递的是实际值的副本,而对于引用类型,传递的是...

    Java中GET表单传值分页搜索功能

    在Java Web开发中,GET表单传值是常见的数据传输方式,主要用于页面间的数据传递,尤其是在实现分页搜索功能时尤为常见。这个标题所指的"Java中GET表单传值分页搜索功能"涉及了以下几个核心知识点: 1. **GET请求**...

Global site tag (gtag.js) - Google Analytics