一、clone在数组基本数据类型中的使用

public class Main {
public static void main(String[] args) {
int[] arr= {7,8,9};
int[] cloneArr=(int[])arr.clone();
arr[2]=777;
cloneArr[2]=888;
System.out.println(arr[2]);
System.out.println(cloneArr[2]);
}
}

运行结过显而易见
777
888
第一步先创建一个一维数组,然后调用clone()方法,将数组复制一份

所以改变arr[2]的数据,然后再改变cloneArr[2]的数据,两者有所不同。

二、clone在数组非基本数据类型中的使用

package main;
import main.forClone.*;
public class Main {
public static void main(String[] args) {
TestClone[] arr=new TestClone[2]; //创建一个TestClone的一维数组
arr[1]=new TestClone(); //创建实例
TestClone[] cloneArr=(TestClone[])arr.clone(); //克隆出一个新的一维数组
arr[1].value=777; //赋值
cloneArr[1].value=999; //赋值
System.out.println(arr[1].value);
System.out.println(cloneArr[1].value);
}
}
package main.forClone;

public class TestClone {
public int value=8;
}

结果如下
999
999
为什么呢,原因如下

理解数组的clone方法的关键还是理解数组的结构,以及基本数据类型、引用、对象的不同。
如果以上clone方法难以理解,说明数组内容不是太熟悉。

Java中有关clone方法的用法的更多相关文章

  1. 详解Java中的clone方法

    详解Java中的clone方法 参考:http://blog.csdn.net/zhangjg_blog/article/details/18369201/ 所谓的复制对象,首先要分配一个和源对象同样 ...

  2. 详解Java中的clone方法:原型模式

    转:http://developer.51cto.com/art/201506/478985.htm clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的 ...

  3. 转:Java中的Clone()方法详解

    Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  4. Java中的clone方法-理解浅拷贝和深拷贝

    最近学到Java虚拟机的相关知识,更加能理解clone方法的机制了 java中的我们常常需要复制的类型有三种: 1:8种基本类型,如int,long,float等: 2:复合数据类型(数组): 3:对 ...

  5. 详解Java中的clone方法 -- 原型模式

    转自: http://blog.csdn.net/zhangjg_blog/article/details/18369201 Java中对象的创建   clone顾名思义就是复制, 在Java语言中, ...

  6. java中的clone方法

    Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  7. JAVA中的clone方法剖析

    原文出自:http://blog.csdn.net/shootyou/article/details/3945221 java中也有这么一个概念,它可以让我们很方便的"制造"出一个 ...

  8. 深入浅出| java中的clone方法

    每天进步一丢丢,连接梦与想 我们还年轻,但这不是你浪费青春的理由 克隆和复制 clone,有人称之为克隆,有人称之为复制,其实都是同一个东西 本文称之为"克隆",毕竟人家方法名叫& ...

  9. 详解Java中的clone方法 -- 原型模式 及源码

    http://www.cnblogs.com/cq-home/p/6431426.html http://blog.csdn.net/zhangjg_blog/article/details/1836 ...

随机推荐

  1. 完全激活win server 2012的方法(亲测可行!)

    1.从微软官网下载评估版. 2.运行->CMD(最好以管理员身份运行)->输入"DISM /online /Get-CurrentEdition"(最好直接复制粘贴,然 ...

  2. 04 变量 变量作用域 常量final 变量的命名规范

    变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...

  3. Redis pub/sub

    list 类型, lpush + rpop 或 lpush + brpop 用作消息队列时,消息只能消费一次,且不支持多个消费者(消息只能消费一次),并且在客户端崩溃时容易丢失消息.而 pub/sub ...

  4. unity 加载网络图片

    摘要:利用Http加载网络图片. 解决思路: 1.直接用unity 自带的www加载,在高版本www已经过时了. 2.本文直接使用万能的文件流加载. (1)使用System.Net.HttpWebRe ...

  5. mybatis的几种like查询

    oracle数据库: Java代码 SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 Java代码 SELECT * FROM ...

  6. web服务器-nginx优化

    web服务器-nginx优化 一 并发优化 nginx工作模式: 主进程 + 工作进程 启动工作进程数量 worker_processes 4; #指定运行的核的编号,采用掩码的方式设置编号 work ...

  7. 5月10日 python学习总结 单表查询 和 多表连接查询

    一. 单表查询  一 语法 select distinct 查询字段1,查询字段2,... from 表名 where 分组之前的过滤条件 group by 分组依据 having 分组之后的过滤条件 ...

  8. 一个简单的用户态赋值语句,cpu都做了哪些操作

    如int a = 0;这样一个赋值语句,cpu做了哪些操作.

  9. vue2.x版本中computed和watch的使用入门详解-关联和区别

    前面两篇介绍了computed和watch的基本使用 watch篇 computed篇 两者的区别,继续通过代码实现的方式具体去了解 html <li>最开始的value值:{{ name ...

  10. (数据科学学习手札135)tenacity:Python中最强大的错误重试库

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在编写程序尤其是与网络请求相关的程序, ...