`
serenity
  • 浏览: 62480 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

<转>Java参数传递方式

 
阅读更多

1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没有改变。 
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但
是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。 
代码如下:

java 代码
  1. public class Tester {    
  2.     public static void main(String[] args) {    
  3.         int primitive = 2;    
  4.         changePrimitive(primitive);    
  5.         //primitive的值依然是2    
  6.         MyClass myClass = new MyClass();    
  7.         changeObject(myClass);    
  8.         //myClass仍然指向的是执行changeObject之前的那个对象    
  9.         //但是myClass.i等于3了    
  10.     }    
  11.   
  12.     public static void changePrimitive(int primitive) {    
  13.         primitive = 3;    
  14.     }    
  15.   
  16.     public static void changeObject(MyClass myClass) {    
  17.         myClass.i = 3;    
  18.         myClass = new MyClass();    
  19.     }    
  20. }    
  21.   
  22. class MyClass {    
  23.     int i;    
  24. }   

 


另一个解释
1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
2、在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。

 

转自http://yousking.iteye.com/blog/65164

 

分享到:
评论

相关推荐

    List<Long>转一维数组 Long[](csdn)————程序.pdf

    在标题和描述中提到的"List&lt;Long&gt;转一维数组 Long[]",就是将一个包含Long类型的列表转换为对应的Long数组。这里我们将详细探讨如何进行这种转换,并了解相关的编程概念。 首先,让我们看下给定的代码片段: ```...

    Java JDK实例宝典

    3 Java的参数传递 &lt;br&gt;2. 4 自定义形状类 &lt;br&gt;2. 5 类的加载顺序 &lt;br&gt;2. 6 方法和变量在继承时的覆盖与隐藏 &lt;br&gt;2. 7 排序类 &lt;br&gt;2. 8 Singleton单例模式 &lt;br&gt;2. 9 Factory工厂模式 &lt;br&gt;2. 10 Adapter适配器模式 ...

    深入体验Java Web开发内幕

    6.7 获取请求消息的实体内容&lt;br&gt; 6.8 利用请求域属性传递信息&lt;br&gt; 6.9 请求参数的中文读取问题&lt;br&gt; 6.10 思考与实践&lt;br&gt;第7章 会话与状态管理&lt;br&gt; 7.1 Web应用中的会话与会话状态&lt;br&gt; 7.2 Cookie&lt;br&gt; 7.3 在...

    List转换成String数组

    - 这种方法与第一种方法类似,只是省略了`toArray()`方法中的参数传递,直接将数组传递给该方法即可。 **方法三:使用空数组作为参数** ```java List&lt;String&gt; list = new ArrayList&lt;String&gt;(); list.add("a1"); ...

    JNI与C++数据类型传递示例(包括ArrayList对象、ArrayList嵌套返回)

    一个C++(Ubuntu16.04+QT5.9.1)通过JNI,调用JAVA类及方法的示例。通过JNI传递和返回多种类型的参数,boolean ,int,String,ArrayList&lt;string&gt;,ArrayList嵌套ArrayList&lt;ArrayList&lt;String&gt;&gt;等。

    AIC的Java课程1-6章

    第5 版 清华大学出版社&lt;br&gt; “SCJP学习指南” 人民邮电出版社&lt;br&gt; “Java 编程思想” 第3版 机械工业出版社&lt;br&gt; 教学内容和要求&lt;br&gt;知识点 重要程度 使用频度 难度&lt;br&gt;Java 入门 高 中 易&lt;br&gt;变量和运算符 高 ...

    AIDL List传递 String传递(android studio)

    List&lt;String&gt; list = new ArrayList&lt;&gt;(); list.add("元素1"); list.add("元素2"); service.sendList(list); String receivedString = service.receiveString(); // 使用receivedString } ``` 在实际应用中,...

    JSTL详细标签库介绍

    发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序&lt;BR&gt;&lt;BR&gt;12.5一个异常处理的简单实例:除数为0&lt;BR&gt;&lt;BR&gt;需求:使用一个小应用程序,完成两数相除的计算&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;...

    mysql5.1中文手册

    复制传递和状态文件&lt;br&gt;6.4. 如何设置复制&lt;br&gt;6.5. 不同MySQL版本之间的复制兼容性&lt;br&gt;6.6. 升级复制设置&lt;br&gt;6.6.1. 将复制升级到5.0版&lt;br&gt;6.7. 复制特性和已知问题&lt;br&gt;6.8. 复制启动选项&lt;br&gt;6.9. 复制FAQ&lt;br&gt;6.10....

    java参数传递

    根据题目要求,我们将详细解析如何使用Java Applet来接收HTML文件中的参数,并计算矩形的面积与周长,最后将结果展示在...但理解Java Applet的基本原理仍然有助于我们更好地理解和学习软件工程中的参数传递等概念。

    spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

    当我们需要在Web服务中传递复杂对象,如List、Map或List&lt;Map&gt;时,可以使用Java的序列化机制。在CXF中,可以通过JAXB(Java Architecture for XML Binding)将Java对象转换为XML格式,以便在网络间传输。例如,如果你...

    mybatis动态sql及参数的传递

    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;(); params.put("username", "John"); params.put("age", 30); List&lt;User&gt; users = sqlSession.selectList("selectUser", params); ``` 2. JavaBean参数示例: ```java ...

    maven生成可执行exe文件

    - 确保你的Java程序已经适配了命令行参数,因为.exe文件可能会传递参数。 - `launch4j`配置中,你可以根据需要调整其他参数,如图标、错误日志等。 - 如果你的程序依赖于外部库,确保它们在运行时可访问,或者...

    android xml中include标签的使用

    虽然`&lt;include /&gt;`标签本身不支持直接传递参数,但可以通过自定义ViewGroup或者使用数据绑定框架(如Data Binding)来实现。例如,使用Data Binding,可以在被包含的布局中定义变量,并在主布局中赋值。 ```xml &lt;!-...

    Maven:在pre-integration-test阶段依次启动多个进程_Java_下载.zip

    同时,可以使用`&lt;arguments&gt;`来传递启动参数。 3. 如果需要启动多个进程,可以在`&lt;executions&gt;`标签内添加更多的`&lt;execution&gt;`配置,每个配置对应一个要启动的进程。 4. 保存pom.xml后,执行`mvn pre-integration-...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`&lt;s:iterator&gt;`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...

    javaservlet连接mysql数据库.pdf

    在实际的 Java Servlet 代码中,你可以通过如下方式从数据源获取连接: ```java import javax.naming.InitialContext; import javax.sql.DataSource; public class ConnectServlet extends HttpServlet { ...

    java 中HttpClient传输xml字符串实例详解

    这一步是通过构造一个`InputStreamEntity`实例,将之前创建的字节数组流作为参数传递: ```java import org.apache.http.HttpEntity; import org.apache.http.entity.InputStreamEntity; // ... InputStreamEntity...

Global site tag (gtag.js) - Google Analytics