Java中常用的拷贝操作有三个,operator = 、拷贝构造函数 和 clone()方法。
不同的类型在拷贝过程中的表现:
(一)预定义非集合类型等号(=)赋值
private void testEqualOperator() { int x = 1; int y = x; y = 2; if (x != y) { System.out.println("deep copy"); } Integer a = 1; Integer b = a; b = 2; if (!a.equals(b)) { System.out.println("deep copy"); } String m = "ok"; String n = m; n = "no"; if (!m.equals(n)) { System.out.println("deep copy"); } }
结果:都是deep copy
结论:预定义非集合类型等号(=)赋值 -- 深拷贝
2.预定义集合类型等号(=)赋值
private void testEqualOperator() { List<String> listStringsA = new ArrayList<String>(); listStringsA.add("a"); listStringsA.add("b"); List<String> listStringsB = listStringsA; listStringsB.add("c"); for (String str : listStringsA) { System.out.println(str); } }
结果:
a b c
结论:预定义集合类型等号(=)赋值--“浅拷贝”
3. 自定义类型等号赋值
class Person { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class AboutCopy { private void testEqualOperator() { Person a = new Person(); a.setName("NameA"); a.setAge(10); Person b = a; b.setAge(15); System.out.println(a.getAge()); } /** * @param args */ public static void main(String[] args) { AboutCopy testObj = new AboutCopy(); testObj.testEqualOperator(); } }
结果:15
结论: 自定义类型等号赋值 -- 浅拷贝
相关推荐
打开安装好的MyEclipse2017-CI10的\MyEclipse 2017 CI\plugins文件夹,把下载下来的jar进行替换。
在Python中,赋值表达式的语法非常简单,只需要使用等号(=)将变量名和值分开即可。 例如,我们可以使用以下代码将一个整数值赋给一个变量: ``` x = 10 ``` 在这个例子中,我们将整数值10赋给了变量x。现在,我们...
在Python中,赋值表达式的语法非常简单,只需要使用等号(=)将变量名和值分开即可。 例如,我们可以使用以下代码将一个整数值赋给一个变量: ``` x = 10 ``` 在这个例子中,我们将整数值10赋给了变量x。现在,我们...
变量赋值就是给对象绑定一个名字,赋值并不会拷贝对象。好比我们出生的时候父母就要给我们取一个名字一样,给人取个绰号并不来多出一个人来,只是多一个名字罢了。 两个对象做比较有两种方式,分别是:is 与 == ,is...
为了代码看起来更整齐,就希望能把赋值等号和单行注释对齐,VS2005好像没有这个功能,干脆自己动手写一个算了。 注意事项: 适用于VS2005中文版,VS2008没有测试。VS2005英文版下貌似不能加载,好像是一个VS2005...
此函数允许您在 matlab 编辑器中对齐等号。 从编辑器中选择一些带有变量分配的文本,然后运行该函数。 您可能会发现将此函数添加为 matlab 工具栏的快捷方式更容易。 此函数并不适用于您的整个代码,而仅适用于...
07.java等号和equals的区别.avi
C语言程序设计(第2版)-2期 常见问题4-2 if语句条件判断表达式中将等号书写成赋值号.pdf 学习资料 复习资料 教学资源
基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考
1.6 小结:我们学会了编译和运行一个Java程序! 18 1.7 习题 19 第2章 搭建自己的集成开发环境 20 教学视频:31分钟 2.1 安装集成开发环境 20 2.1.1 集成开发环境有哪些 20 2.1.2 安装Eclipse 21 2.2 Eclipse...
本文实例讲述了python数组复制拷贝的实现方法。分享给大家供大家参考。具体分析如下: ... 您可能感兴趣的文章:对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解详解Python列表赋值复制深拷贝及5种浅拷贝py
jre:当一个电脑上面安装jre之后 只能运行java代码 2:设置环境变量 (环境变量可以不设置 为了简化开发流程 提高开发效率) 给谁使用 作用 PATH: 操作系统 让操作系统更加快捷的找到一个文件/命令 PATH=C:\...
1.6 小结:我们学会了编译和运行一个Java程序! 18 1.7 习题 19 第2章 搭建自己的集成开发环境 20 教学视频:31分钟 2.1 安装集成开发环境 20 2.1.1 集成开发环境有哪些 20 2.1.2 安装Eclipse 21 2.2 Eclipse...
9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象. ( × ) 10.只能利用Thread类的子类来创建线程. ( × ) 1.按以下要求编写程序 (1) 创建一个Rectangle...
在simulink里面建立模型,然后用GUI对其中变量进行赋值,并通过GUI中的一段函数对制动点进行试凑,最后显示出列车的速度-路程曲线,行驶总路程和时间。 ------------------------------------------- 现将GUI中所...
C#源代码
等号(=)用来给变量赋值,等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:counter = 100 # 整型变量 miles = 1000.0 # 浮点型变量 变量 变量赋值语法格式: 变量 = 数值 示例:a...
课程设计报告 程序设计语言-JAVA 开课院系:经济管理学院 班 级: 学生姓名: 学 号: 2011.12 目 录 一、课设任务及要求--------------------------------------------------------- ------------------ - 3 二、...
在装在有Java SE Runtime Environment(JRE)1.50 的机器上 双击 Calculator.jar 即可运行本程序. /***** ***** ***** ***** ***** 设计说明 ***** ***** ***** ***** *****/ 1.采用面向对象的设计思想. 所有...
Java编写的计算器图形界面实现加减乘除带括号运算 版本1.0 1、图形化界面 2、计算器显示部分分为两个区域:第一行显示输入将要计算的数值及符号,第二行显示结果,第一行字体要小,第二行字体要大,且加粗。 ...