本周在编码的时候,同事遇见了一个问题,始终没弄明白,最后我帮其找到了问题的原因
java传参的时候是传值的方式而不是传址。
public void testMethod(TestObject testObj,int i){
testObj.setTestValue("2");
i++;
System.out.println("testObj.testValue="+testObj.getTestValue()+"int i"+i);//testValue值为2,i为2;
testObj = new TestObj();
testObj.setTestValue("3");//大部分都认为此处会影响传递来的testObj对象的值,实际这是一个新的对象,
}
public static void main(String[] args){
TestObject testObj = new TestObject();
testObj.setTestValue("1");
int i=0;
System.out.println("testObj.testValue="+testObj.getTestValue()+"int i"+i);
testMethod(testObj,i);
System.out.println("testObj.testValue="+testObj.getTestValue()+"int i"+i);//testValue值为2,不是1,也不是3,而int i是1.
}
这个问题,在候捷的java实践中第一个实践有较清晰的论述,只不过新入门的时候读书没有理解其含义,所以就会造成开发上的偏差.
分享到:
相关推荐
Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE...
### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...
这两种方式可以用于强制函数修改原始变量的值,而不是仅仅改变副本。 ```csharp void Swap(ref Person a, ref Person b) { Person temp = a; a = b; b = temp; } Person person1 = new Person() { Name = ...
java 调用 powershell 并传参 返回
网页传值是Web开发中的基本操作,用于在不同的页面间传递数据,使用户的状态得以保持。本主题将深入探讨两种常见的方法:Cookie和Session。理解并掌握这两种技术对于构建动态和交互性强的网站至关重要。 首先,我们...
- Java端可以使用JSON库(如Jackson或Gson)将Java对象转换为JSON字符串,然后通过上述方式传递给JavaScript。 - JavaScript可以使用JSON.parse()解析接收到的JSON字符串,将其转换回JavaScript对象。 4. **Web...
Struts2作为一款流行的Java Web框架,为开发者提供了多种传递数据的方式,使应用程序能更灵活地处理用户输入和展示结果。在本篇文章中,我们将详细探讨Struts2的三种主要的传值方式,并通过一个简单的Demo来加深理解...
"lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理之间传递参数。 首先,让我们了解一下Lotus Domino Java代理的基本概念。在Lotus Domino Designer中,Java代理是用Java语言...
在这个“自定义注解实现伪动态传参的小demo”中,我们将探讨如何创建一个自定义注解,以允许在注解中传递类似于动态参数的数据。 首先,自定义注解的定义通常以`@interface`关键字开始,我们可以定义一些元素(也...
本文将详细讲解这两种通信方式,并以Spring MVC框架为例进行深入阐述。 一、后台(服务器)与页面(客户端)之间的传值 1. 请求参数传递:在HTTP请求中,可以将数据作为查询参数附在URL后面,或者通过POST请求的...
本文将深入探讨Android Intent的多种传值方式。 1. **基本类型传值** - 使用`putExtra()`方法:Intent提供了`putExtra(String name, boolean value)`、`putExtra(String name, char value)`等方法,可以用来传递...
当我们讨论“引用类型传值”时,意味着在方法调用时,传递的是对象引用的一个副本,而不是对象本身。以下是对给定代码清单的详细解释: 1. `Circle.java` 文件定义了一个名为 `Circle` 的类,它包含一个 `double` ...
这些值通常以数组形式存在,所以你可以遍历数组进行后续操作,如存入数据库。 5. 存储到数据库 为了将复选框的值存储到数据库,首先需要确定数据库的结构。通常,你可以创建一个关联表,其中包含用户ID和兴趣ID的...
传址调用 传址调用 传址调用 传址调用传址调用 传址调用 传址调用 传址调用
在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...
### 解决Java enctype "multipart/form-data" 文件上传传值问题 在Java Web开发中,处理文件上传是一项常见的任务。特别是当涉及到使用`multipart/form-data`作为表单的编码类型时,这种需求更为突出。本文将深入...
### js直接调用exe传参 #### 背景与目的 在Web开发过程中,有时候我们需要从HTML页面通过JavaScript(简称JS)来调用本地的应用程序,并传递参数给这些应用程序。这种需求通常出现在需要与本地资源进行交互或者执行...
例如,Java的`int`对应C/C++的`int32_t`,`long`对应`int64_t`,`float`和`double`保持不变,而字符串通常通过`char*`或`std::string`在C++中表示,Java中则使用`String`类。 2. **JNI接口定义** 要实现Java与C++...
Java方法参数传值是Java编程中的基础知识点,涉及变量、数据类型和方法调用的机制。在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型...