下载此文档

Java方法的参数传递(三).doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
Java方法的参数传递(三——“不可变对象”的引用变量作为参数对非“不可变对象”的引用变量作为方法参数传递进行总结,认为“引用变量”型实参对所引用对象的改变是“以不变应万变”;而在“不可变对象”的引用变量作为方法参数传递时,“引用变量”型实参及其所引用对象都是“不变”的!那么,又是谁在改变,或者改变了什么?这就是百味峰爷将在《Java方法的参数传递(三》中进行总结的内容。一、什么是“不可变对象”?编程过程中,有时候需要禁止某个“对象”被改动内容。为此,Java提供了Immutable类(譬如String类,该类的对象被称为“不可变对象”。根据定义,“不可变对象”是一种一旦构建好就不再变化的“对象”,在其生存期间不可被改变内容。那么,Java中有哪些系统定义的Immutable类?名气最大的就是String类!除了它,还有就是8种基本类型对应的8个包装类(WrapperClass:Byte、Short、Character、Integer、Long、Float、Double、Boolean。二、理论分析Java类中方法以“不可变对象”的“引用变量”作为形参,与《Java方法的参数传递(二》总结的“可变变量”的“引用变量”作为形参,在方法参数的传递过程中,有以下共同点:形参和实参在栈内存中同样都有各自独立的存储区。参数传递时,将“引用变量”实参的存储区中所存储数据(实参值进行复制,“复制值”存入“引用变量”形参的存储区;因为“实参值”是特定“对象”在堆内存中存储的首地址,所以参数传递操作使得形参和实参一样成为该“对象”的引用变量,即指向相同的堆内存区。那么,不同点又在何处?“可变变量”的“引用变量”作为形参,参数传递之后,形参和实参共同引用的“对象”在堆内存(Heap中所分配到的存储区固定不变,而这个存储区内存放的内容可以变换!“不可变对象”的“引用变量”作为形参,参数传递之后,最初形参和实参共同引用一个相同的“对象”。但是,当试图改变这个共同引用的“对象”时,形参和实参就开始“分道扬镳”了!原因在于试图改变共引“对象”时,新创建了一个“新对象”,所做的改变都发生在“新对象”;那共引的“对象”呢?它仍然存在,而且丝毫不变地存在;只是形参不再像实参那样忠贞地引用它,转而喜新厌旧地去引用“新对象”了。既然实参引用的还是老“对象”,而形参引用的是“新对象”,形参和实参就成了分手后的“陌生人”,不再相往来。如此一来,形参的任何变化都不会影响实参。三、:lassImmutableAsParameterDemo{publicstaticvoidmain(String[]args{ImmutableAsParameterDemoimmutableAsParameterDemo=newImmutableAsParameterDemo(;(;}privatevoidTest({StringoriginalStr="Immutableobject";("“引用变量”实参originalStr在调用方法之前所引用的对象:"+originalStr;(;simpleCha

Java方法的参数传递(三) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小48 KB
  • 时间2019-11-20
最近更新