下载此文档

java值传递和引用.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
java 语言深入( java 中是传值还是引用) 关键字: java 基础深入熟悉 C 的程序员都用过指针,对指针可谓爱之深恨之切。指针是指向一块内存地址的内存数据(有些拗口),也就是说指针本身是一个占用 4 字节内存的 int ( 32 位系统内), 而这个 int 值恰恰又是另一块内存的地址。比如"hello" 这个字串, 存放在***@0x0000F00 0 这个地址到***@0x0000F005 这段内存区域内( 包括 0x00 的结束字节)。而在***@0x0000FFF0 到***@0x0000FFF03 这四个字节内存放着一个 int ,这个 int 的值是***@0x0000F000 。这样就形成了一个指向"hello" 字串的指针。在 Java 中, 很多人说没有指针, 事实上,在 Java 更深层次里, 到处都是大师封装好的精美绝伦的指针。为了更容易的讲解 Jav a 中关于类和类型的调用, Java 中出现了值与引用的说法。浅显的来说, 我们可以认为 Java 中的引用与 C 中的指针等效( 其实差别非常非常大,但是为了说明我们今天的问题,把他们理解为等效是没有任何问题的)。所谓传引用的说法是为了更好的讲解调用方式。基于上面对指针的理解, 我们不难看出, 指针其实也是一个 int值, 所谓传引用, 我们是复制了复制了指针的 int 值进行传递。为了便于理解, 我们可以姑且把指针看作一种数据类型, 透明化指针的 int 特性, 从而提出传引用的概念。重申一遍: Java 中只有传值。 1 所谓传值和传引用传值和传引用的问题一直是 Java 里争论的话题。与 C++ 不同的, Java 里面没有指针的概念, Java 的设计者巧妙的对指针的操作进行了管理。事实上,在懂 C++ 的 Java 程序员眼中, Java 到处都是精美绝伦的指针。下面举个简单的例子,说明什么是传值,什么是传引用。//例1 void method1(){ int x=0; (x); (x); } void int change(int i){ i=1; } 很显然的,在 mothod1 中执行了 change(x) 后, x 的值并不会因为 change 方法中将输入参数赋值为 1 而变成 1 ,也就是说在执行 change(x) 后, x 的值 z 依然是 0 。这是因为 x 传递给 change(int i) 的是值。这就是最简单的传值。同样的,进行一点简单的变化。//例2 void method1(){ StringBuffer x=new StringBuffer("Hello"); (x); (x); } void int change(StringBuffer i){ (" world!"); } 看起来没什么变化,但是这次 mothed1 中执行了 change (x) 后, x 的值不再是"Hello" 了,而是变成了"Hello world!" 。这是因为 x 传递给 change(i) 的是 x 的引用。这是最经典的传引用。似乎有些奇怪了,两段程序没有特别的不同,可是为什么一个传的是值而另一个传的是引用呢? ...... 2 非要搞清楚传

java值传递和引用 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人endfrs
  • 文件大小0 KB
  • 时间2016-06-09