`
bright_future
  • 浏览: 88955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 对象的赋值与其属性间赋值差异

阅读更多

在一个程序中遇到这样的问题:

 

  执行:A=B,之后改变A的属性值发现B的相应属性值也发生变化,而若将A的属性一个个的传给A,则在A改变后不会影响B.

 

  其根本原因是,A=B相当于c语言中的引用,A与B将指向同一块内存.因此其中一个变化另一个也会跟着变化.而属性间的赋值只是对象值的复制,并未改变各对象所指向的内存,因而一个变化不会影响另外的一个.

 

所以,若想达到将一个对象的值赋给另外一个对象而要保持原对象的值时,应该采用对象属性间的赋值而不是对象间的直接赋值.

分享到:
评论

相关推荐

    java面试笔试题大汇总

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在面试和笔试中,Java开发者经常会遇到各种各样的问题,这些题目涵盖了语言基础、内存管理、多线程、集合框架、IO流、网络编程...

    java面试题

    - **类型差异**:`int`是Java的原始数据类型,而`Integer`是`int`的封装类,即对象类型。 - **存储方式**:`int`类型直接存储值,而`Integer`类型存储的是一个对象的引用。 - **默认值**:`int`类型的默认值是0,而`...

    java面试题库(经典)

    1. Java语言特性:了解Java的面向对象特性,包括封装、继承、多态。理解类、对象、接口的概念及其应用。 2. 数据类型:掌握基本数据类型与引用数据类型的差异,理解自动装箱拆箱机制。 3. 运算符:熟悉各种运算符的...

    Ruffy javascript 学习笔记

    CSS的`width`和`height`属性默认只影响content区域,但在不同浏览器间可能有差异,例如在Firefox中,需要考虑边框和内边距。 4. **图像处理**:在.NET中,`System.Drawing.Imaging.BitmapData`允许开发者锁定位图到...

    《C++ 初学者指南》

    C++ 之所以能够成为现代软件开发中的主流语言之一,与其强大的功能和广泛的应用范围密不可分。 - **C 语言对 C++ 的影响**:由于 C++ 是在 C 语言基础上构建的,因此可以说 C++ 包含了所有 C 语言的功能,并在此基础...

    linux学习资料大全

    "Linux学习资料大全"这个压缩包文件显然包含了丰富的学习资源,旨在帮助用户深入理解和掌握Linux操作系统以及与其相关的shell编程技术。下面将详细阐述这些知识点。 1. **Linux常用命令**: Linux命令行是其核心...

    2021-2022计算机二级等级考试试题及答案No.16142.docx

    - **对象列表框**:位于左侧,列出当前项目中所有可用的对象(如窗体、模块等),程序员可以通过选择不同的对象来查看或编辑与其相关的代码。 - **过程列表框**:位于右侧,当选择了一个特定的对象后,此列表框将...

    易语言程序免安装版下载

    各参数声明要与其定义一致。  请参考易语言安装目录内的例程:samples\静态编译\调用LIB和OBJ 1. 静态编译方面的改进和优化。 2. 符号重命名程序(resym.exe)增加对.obj文件的支持,并更新了文档(sdk\static_docs...

    C#微软培训资料

    7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 <<page 2>> page begin==================== 7.5 逻辑操作符和逻辑表达式.68 7.6 位 运 算 .69 7.7 其它特殊操作符 .72 7.8 小 结 ....

Global site tag (gtag.js) - Google Analytics