`
Wanghuidong
  • 浏览: 43824 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
文章分类
社区版块
存档分类
最新评论
  • openFox: 确实,以前只知道编码是个名词,在项目中编码统一就可以了,原来是 ...
    java编码解惑
  • tianzizhi: 前段时间我也看了许多这方面的东西,基本理解了,拿楼主的总结再复 ...
    java编码解惑

java对象参数传递个人总结(2)

阅读更多

接上次的说 再来说说第二种情况,通过参数传递的。

public static main(String args[]){
      Bean b=new Bean();

      b.setName("abc");

      change(b);

      System.out.println(b.getName());

}

 

 

public static change(Bean b){

     b.setName("cba");
}

结果:同样是 cba 原理同上次说的一样。

 

再来看另外一种情况:

public static main(String args[]){
      Bean b=new Bean();

      b.setName("abc");

      change(b);

      System.out.println(b.getName());

}

 

 

public static change(Bean b){

      b=new Bean();

     b.setName("cba");
}

结果 ;abc

 

解释:在change()方法里面 刚开始 是bean 将自己的引用复制了一份传入 change()方法,比如bean 的引用还是@123456 但是执行new Bean()之后 new操作符才 堆内存区域开辟了一个新单元地址@56789 然后把 @56789放入

  形参 bean了。

一语中的: 参数传递的是引用的一个拷贝。在上次的参数传递的时候,传递的也是一个引用的拷贝,即拷贝了一个@12456放在栈内存的一个单元里。这次是拷贝完之后 并修改了栈内存单元里的值 使其指向一个新的堆内存地址。因为new 了。 没有new的话 就不会再堆内存中开辟新空间。所以上次的2个栈内存地址都指向一个堆内存。这次是2个栈内存地址指向2个堆内存。 这样的话 形参bean 再修改name的话,就是修改@56789里面的东西了。所以 实际的bean指向的@12345里面的东西没变。

 

愚见为此,敬请高手指点批评。

 

分享到:
评论

相关推荐

    java传递参数的方法

    java传递参数的方法 很的东西 大家下载学习一下

    java 参数传递

    传值还是传引用 详细讲解JAVA参数传递机制 一目了然

    java学习参数传递 杨辉三角,大学java作业题

    java学习参数传递 杨辉三角,大学java作业题

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

    前言在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参本,函数对形参的操作并不

    Struts2中的参数传递

    我们知道,Struts2完成参数传递处理工作的基础是OGNL和ValueStack。而在这个 过程中,我也把Struts2所要做的工作大致归纳为两个方面: 1. 对OGNL操作进行封装,完成OGNL表达式所表示的值到Java对象的值传递机制 2. ...

    java spring mvc项目,通过URL地址传递对象参数给action.zip

    java spring mvc项目,通过URL地址传递对象参数给action

    multipartform-data 参数传递

    <form method="post" ENCTYPE="multipart/form-data"> file类型职务的普通参数传递到后台问题解决

    Java语言的方法参数浅析

    通过对典型程序的研究与分析可以看出JAVA语言的参数传递总是传值调用的,但是对于基本类型的参数和对象类型的参数来说,参数传递的情况不完全相同.Java语言不能直接使用传引用调用,但是可以通过数组的方式模拟传引用...

    Java方法参数传递机制原理解析

    主要介绍了Java方法参数传递机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    NDK开发传递对象作为参数

    NDK开发有时需要Java和C/C++把对象作为参数互相传递, 详情参考: C/C++传递对象到Java:https://blog.csdn.net/niuba123456/article/details/80994037 Java传递对象到C/C+:...

    动力节点_Java基础视频教程25_ 对象参数传递内存分析

    动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...

    webService客户端调用服务端传对象参数

    这个工程详细的介绍了webService服务客户端如何调用简单和复杂的webService,其中就包括传递的参数是对象类型,返回数据是数组类型,还有最简单的基本类型。压缩包里还配置说明,清晰的说明webService的整个过程,对...

    走进Java中方法的参数传递.pdf

    参数传递是Jave程序设计中方法调用的重要步骤,清楚地了解参数传递的过程是编写出高质量程序所必需的。本文将介绍在java中基本数据类型作为方法的参数和对象作为方法的参数是如何传递的。

    Java基础:对象及引用祥解

    Java对象及引用是容易混淆却又必须掌握的基础知识,本章阐述Java对象和引用的概念,以及与其密切相关的参数传递。

    为什么Java只有值传递

    我们先看一下值传递和引用传递的概念...值传递的函数中无法改变原始对象,引用传递中函数 可以改变原始对象 我们通过例子理解一下Java的值传递: public static void main(String[] args) { int a = 10; int b = 20;

    jquery ajax 向后台传递数组参数示例

    需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型... 但是可以使用JSON字符串来实现,在后台把JSON字符串解析成JAVA对象。 也许,你要说如果是复合对象怎么办,比如如下: 代码如下: public

    java类和对象.ppt

    定义类、属性和方法 创建并使用对象、对象和引用 Java方法的参数传递机制 方法的重载 实现良好的封装 构造方法的作用和构造方法重载

    java中方法参数的一些总结

    而对象引用作为参数不同了,对象参数所引用的对象状态是可以被改变的,因为方法  得到的是对象引用的拷贝,对象引用及其他的拷贝同时引用同一个对象。  Java程序设计语言对对象采用的不是引用调用,实际上,...

    JAVA面向对象详细资料

    Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 ...

Global site tag (gtag.js) - Google Analytics