本周在编码的时候,同事遇见了一个问题,始终没弄明白,最后我帮其找到了问题的原因
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...
这两种转码方式是很好用的,所以很建议大家使用。 3. 修改Tomcat配置文件:在Tomcat的安装目录下conf文件夹中的server.xml文件,将配置访问端口的地方加上URIEncoding=“utf8"即可。但是,这种方式不建议使用。 在...
### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...
java 调用 powershell 并传参 返回
网页传值是Web开发中的基本操作,用于在不同的页面间传递数据,使用户的状态得以保持。本主题将深入探讨两种常见的方法:Cookie和Session。理解并掌握这两种技术对于构建动态和交互性强的网站至关重要。 首先,我们...
- Java端可以使用JSON库(如Jackson或Gson)将Java对象转换为JSON字符串,然后通过上述方式传递给JavaScript。 - JavaScript可以使用JSON.parse()解析接收到的JSON字符串,将其转换回JavaScript对象。 4. **Web...
Struts2作为一款流行的Java Web框架,为开发者提供了多种传递数据的方式,使应用程序能更灵活地处理用户输入和展示结果。在本篇文章中,我们将详细探讨Struts2的三种主要的传值方式,并通过一个简单的Demo来加深理解...
java实现调用httpclient接口的类和方法,包括了get和post传参方式,简单易懂
本文将深入探讨Android Intent的多种传值方式。 1. **基本类型传值** - 使用`putExtra()`方法:Intent提供了`putExtra(String name, boolean value)`、`putExtra(String name, char value)`等方法,可以用来传递...
当我们讨论“引用类型传值”时,意味着在方法调用时,传递的是对象引用的一个副本,而不是对象本身。以下是对给定代码清单的详细解释: 1. `Circle.java` 文件定义了一个名为 `Circle` 的类,它包含一个 `double` ...
关于java中使用表单get方法传值出现乱码问题的解答。详细简单,便于学习使用。
这些值通常以数组形式存在,所以你可以遍历数组进行后续操作,如存入数据库。 5. 存储到数据库 为了将复选框的值存储到数据库,首先需要确定数据库的结构。通常,你可以创建一个关联表,其中包含用户ID和兴趣ID的...
传址调用 传址调用 传址调用 传址调用传址调用 传址调用 传址调用 传址调用
但是,在实际开发中,我们可能需要将数据传递给Java方法中,而不是JSP页面。这时,我们需要使用Servlet技术来处理Ajax请求。下面是相关代码的实现: ```java public class TestQuery extends HttpServlet { ...
在Android应用开发中,`Service`和`Activity`是两个重要的组件。`Service`用于在后台执行长时间运行的任务,而`...在实际开发中,确保遵循最佳实践,如使用异步方式避免阻塞UI线程,以及正确管理资源以防止内存泄漏。
根据标题和描述,我们将深入探讨Java中传值与引用的区别,以及它们在实际编程中的应用。 首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并...
Java方法参数传值是Java编程中的基础知识点,涉及变量、数据类型和方法调用的机制。在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型...
Java 语言中,参数传递的方式只有一种,那就是按值传递。这意味着无论参数是基本类型还是引用类型,函数或方法在接收到参数时,都只会得到这些值的一个副本,而不是原始值本身。对于基本类型的参数,这个副本就是...
这意味着传递的是对象引用(内存地址)的一个副本,而不是对象本身。因此,如果在方法内部修改对象的属性,原始对象会受到影响,因为两个引用指向同一块内存。但如果重新分配引用,原始引用将不受影响。 字节码是...
本篇将深入探讨如何在Java中通过URL传值以及解析这些值。 首先,URL(Uniform Resource Locator)是互联网上的资源定位符,它包含了协议、主机名、路径和查询字符串等部分。在BS开发中,用户在浏览器中输入的URL...