- 浏览: 1342222 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (551)
- 计划 (4)
- java (115)
- oracle (60)
- ajax (3)
- javascript (64)
- 计算机操作技巧集 (11)
- 近期关注话题 (10)
- 随想 (13)
- html (6)
- struts (15)
- hibernate (16)
- spring (2)
- game (0)
- Eglish (10)
- DisplayTag (6)
- jsp (18)
- css (3)
- eclipse (3)
- 其他知识 (8)
- 备用1 (12)
- 备用2 (1)
- 笑话-放松心情 (9)
- 设计 (1)
- 设计模式 (1)
- 数据结构 (0)
- office办公软件 (5)
- webwork (0)
- tomcat (2)
- MySql (1)
- 我的链接资源 (5)
- xml (2)
- servlet (0)
- PHP (13)
- DOM (0)
- 网页画图vml,canvas (1)
- 协议 (2)
- 健康 (3)
- 书籍下载 (1)
- jbpm (1)
- EXT (1)
- 自考 (2)
- 报表 (4)
- 生活 (64)
- 操作系统基础知识 (2)
- 测试 (2)
- guice (1)
- google学习 (2)
- Erlang (1)
- LOG4J (2)
- wicket (1)
- 考研 (1)
- 法律 (1)
- 地震 (1)
- 易学-等等相关 (1)
- 音乐 (1)
- 建站 (4)
- 分享说 (3)
- 购物省钱 (0)
- linux (1)
最新评论
-
zenmshuo:
如果使用SpreadJS这一类的表格工具,应该能更好的实现这些 ...
js中excel的用法 -
hjhj2991708:
第一个已经使用不了
jar包查询网站 非常好用! -
jiangmeiwei:
...
中文乱码 我的总结 不断更新 -
gary_bu:
...
response.sendRedirect 中文乱码问题解决 -
hnez:
多谢指点,怎么调试也不通,原来我在<body>&l ...
ExtJs IE ownerDocument.createRange() 错误解决方案
java参数的值传递
http://www.an-ping.com/forum/blog/detail.asp?blog_id=2&content_id=127
在java中,只有“值传递“一种参数传递方式。
1. 按值传递和按引用传递
定义按值传递和按引用传递
这两个术语是重要的。按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。
2. 对象(object)与引用(reference)
我们知道:
A a = new A();
产生一个A类型的对象,a是这个对象的的一个引用,即a指向heap中真正的对象,而a和其他基本数据类型 一起存放在stack中.也就是object通过reference操控,在底层的话,a更象一个指针.
3.一个帮助理解的例子:
这个程序最后输出的结果将是:
11
Hello
99f
对于int类型的参数11, 虽然改变了形参的值,但是实参却不改变,这同C语言中是一样的。
对于String 类型的变量 str,因为在java中String作为对象来处理,参考上面的分析,str是"hello"的一个引用(指针),按照值传递的说法value是str 的一个副件,因此也是一个引用。但是他经过value = new String ("different");被修改后value指向了一个新的对象。所以str所指的内容没有被改变。
pt 是主函数中创建的PassTest的对象,通过传递它,就可以完成地址的传递,子函数中,ref与主函数的pt指向的其实是一个内存单元,那么修改 ref中的ptValue的值,也就是修改pt中的ptValue的值,即使没有最后的数据返回,这个数据也是会改变的。
我们要记住,a只不过是对象的reference,而reference的复件与原来的reference指向的是同一个对象 我们对复件的操作,与对a的操作一样,最终还是对指向对象的操作,因此,java的参数,只有值传递.
http://www.an-ping.com/forum/blog/detail.asp?blog_id=2&content_id=127
在java中,只有“值传递“一种参数传递方式。
1. 按值传递和按引用传递
定义按值传递和按引用传递
这两个术语是重要的。按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。
2. 对象(object)与引用(reference)
我们知道:
A a = new A();
产生一个A类型的对象,a是这个对象的的一个引用,即a指向heap中真正的对象,而a和其他基本数据类型 一起存放在stack中.也就是object通过reference操控,在底层的话,a更象一个指针.
3.一个帮助理解的例子:
public class PassTest { float ptValue; public void changeInt(int value) { value = 55; } public void changeStr(String value) { value = new String("different"); } public void changeObjValue(PassTest ref) { ref.ptValue = 99f; } public static void main(String args[]) { String str; int val; PassTest pt = new PassTest(); val = 11; pt.changeInt(val); System.out.println("Int value is: " + val); str = new String("Hello"); pt.changeStr(str); System.out.println("Str value is: " + str); pt.ptValue = 101f; pt.changeObjValue(pt); System.out.println("Current ptValue is: " + pt.ptValue); } }
这个程序最后输出的结果将是:
11
Hello
99f
对于int类型的参数11, 虽然改变了形参的值,但是实参却不改变,这同C语言中是一样的。
对于String 类型的变量 str,因为在java中String作为对象来处理,参考上面的分析,str是"hello"的一个引用(指针),按照值传递的说法value是str 的一个副件,因此也是一个引用。但是他经过value = new String ("different");被修改后value指向了一个新的对象。所以str所指的内容没有被改变。
pt 是主函数中创建的PassTest的对象,通过传递它,就可以完成地址的传递,子函数中,ref与主函数的pt指向的其实是一个内存单元,那么修改 ref中的ptValue的值,也就是修改pt中的ptValue的值,即使没有最后的数据返回,这个数据也是会改变的。
我们要记住,a只不过是对象的reference,而reference的复件与原来的reference指向的是同一个对象 我们对复件的操作,与对a的操作一样,最终还是对指向对象的操作,因此,java的参数,只有值传递.
发表评论
-
TilesRequestProcessor - Tiles definition factory found for request processor ''
2011-11-03 15:39 2422TilesRequestProcessor - T ... -
jar包查询网站 非常好用!
2009-12-28 11:47 13340java jar包查询 根据类查询所在的java包 http ... -
tomcat 启动错误 java.lang.UnsupportedClassVersionError: Bad version number in .class
2009-11-27 08:53 2226请访问http://ddgrow.com/bad-versio ... -
arrayToString
2009-04-07 09:01 1392原文:http://leepoint.net/notes-ja ... -
native2ascii
2009-04-02 12:00 1142D:\>native2ascii 中国 \u4e2d\u ... -
java swing 架构
2009-03-04 15:03 2279下面是偶尔找到的一篇 相当好的文章 ,针对 java swin ... -
红帽企业5序列号
2009-02-27 09:11 2501这是从[url]http://www.21codes.com/ ... -
中文乱码 我的总结 不断更新
2009-02-23 09:51 2245java中文乱码问题 1、jsp中文乱码 <0& ... -
websphere 数据库连接
2009-02-19 17:47 2072问个问题: 应用服务器: websphere 连接池:pr ... -
打开java控制台的方法
2009-02-10 17:10 3003D:\Program Files\Java\jre6\bin\ ... -
log4j weblogic 问题
2009-01-21 15:08 1887问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
log4j weblogic 问题
2009-01-21 15:07 0问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
java.lang.NoClassDefFoundError in quartz
2008-12-24 15:35 2854quartz-1.5.2.jar tomcat5.5 当使 ... -
java 得到运行时系统中的内存信息
2008-12-19 20:54 1473这个在tomcat下面使用过,在引记录下来,以后方便查找 Ru ... -
log4j
2008-12-13 11:32 862讲解了用xml配置,还有例子,以及对 levelmin lev ... -
servlet 2.3 规范
2008-12-02 20:55 0servlet 2.3 规范 http://www.orio ... -
session 问题
2008-11-26 16:41 937问个问题,如下: 我要在一个A系统中,通过一个弹出窗口,超链接 ... -
java 反编译工具
2008-10-08 11:03 1960从哪找到的给忘了,用起来不错,放在这里,以后找起来方便 ,有需 ... -
thinking in java 读书笔记
2008-10-06 22:09 1304记录下来,以便以后查看 thinking in java 4t ... -
RSA 算法 java版本<转>
2008-09-23 18:28 2391原文地址:http://www.cs.princeton.ed ...
相关推荐
这里详细的说明了,java参数传递的过程,引用传递,值传递
这个在Java里面是经常被提起的问题,也有一些争论,似乎最后还有一个所谓的结论:“在Java里面参数传递都是按值传递”。事实上,这很容易让人迷惑,下面先分别看看什么是按值传递,什么是按引用传递,只要能正确理解...
关于Java参数传递的PPT,详细介绍参数传递的类型。彻底理解Java只有唯一传递方式——值传递。
12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值...
Java语言中参数值传递和引用传递比较
我们先看一下值传递和引用传递的概念和区别 值传递:是指在调用函数时将实际参数复制一份传递到函数中,...我们通过例子理解一下Java的值传递: public static void main(String[] args) { int a = 10; int b = 20;
java参数传递时到底是值传递还是引用传递分享.pdf
不管是按值传递还是按引用传递,都是把栈中的数据备份了一份给参数变量,只不过值类型备份的是具体的数值,而引用类型备份的是内存地址
java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo
java参数传递时到底是值传递还是引用传递[归类].pdf
当一个变量为一个参数传入方法内部的时候,会有两种不同的传递方式:值传递和引用传递。 值传递的特点:不管方法内部对传进去的参数作任何改变,也不会影响方法外部的变量的值 引用传递的特点:方法内部对传...
问题定位结果: 遇到&时,该参数的值会自动截断,导致参数值传递有误。 二、问题的解决 java代码中做如下测试: String charEncode = java.net.URLEncoder.encode(“&”); System.out.println(“字符& 转译后的值为...
lotus domino java代理_获取传递值json
主要介绍了JAVA参数传递方式,结合实例形式分析了java按值传递与引用传递区别及相关操作注意事项,需要的朋友可以参考下
主要介绍了Java参数传递及值传递实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
简单webview嵌套html文件,原生和js互相调用方法,互相传递参数并打印都页面上
数组总结(概念、定义、默认值、可变长参数、值传递与引用传递等)。1.冒泡排序: 两两相比(两个相邻的数进行比较) 条件成立 互换位置 外层循环控制比较的轮数 **轮数永远是 长度 -1 (n - 1)** 内层循环...
方法的值传递 目录 课程导入 理解方法调用时参数的顺序匹配 理解方法调用时值传递 方法调用时,需要提供实参,它们必须与方法签名中所对应的形参次序相同,这称作参数顺序匹配。 参数顺序匹配 public static void ...
在传统的观念里,都认为JavaScript函数传递的是引用传递(也称之为指针传递),也有人认为是值传递和引用传递都具备。那么JS的参数传递到底是怎么回事呢?事实上以下的演示也完全可以用于Java 首先来一个比较简单的,...
1. 对OGNL操作进行封装,完成OGNL表达式所表示的值到Java对象的值传递机制 2. 在参数传递的过程中,做恰当的类型转化,保证页面上的字符串能够转化成各 式各样的Java对象 接下来,通过四个不同的角度,来具体讲述...