编程-Java里的clone()方法可以直接复制数组,但是为什么网上的人都不推荐这种方式?

问题描述

Java里的clone()方法可以直接复制数组,但是为什么网上的人都不推荐这种方式?

Java里的clone()方法可以直接复制数组,但是为什么网上的人都不推荐这种方式?

解决方案

都可以的吧!http://www.xuebuyuan.com/1675853.html

解决方案二:

我更喜欢system.arraycopy复制数组

解决方案三:

arrayCopy和clone都可以的

解决方案四:

因为语义不如arrayCopy明确
而且实现方式也不同,arrayCopy专门用来复制数组,万一有优化呢(没看过源码,我掰的)

时间: 2024-11-27 20:07:03

编程-Java里的clone()方法可以直接复制数组,但是为什么网上的人都不推荐这种方式?的相关文章

java object 之clone方法全面解析_java

 1 protected native Object clone() throws CloneNotSupportedException;  1.方法由native关键字修饰 java中的native关键字表示这个方法是个本地方法,[java native说明].而且native修饰的方法执行效率比非native修饰的高. 2.方法由protected修饰 一个类在覆盖clone()方法时候,需要修改成public访问修饰符,这样才能保证其他所有的类都能够访问这个类的这个方法. 3.方法抛出Cl

分析java中clone()方法 (转载+修改)

  Java中的clone() 方法 java所有的类都是从java.lang.Object类继承而来的,而Object类提供下面的方法对对象进行复制.  protected native Object clone() throws CloneNotSupportedException; 这个javabean必须实现一个标识接口,Cloneable,表明这个javabean支持复制,如果没有实现这个接口,而调用clone()方法,编译器就会抛出CloneNotSupportedException

程序猿的日常——Java基础之clone、序列化、字符串、数组

其实Java还有很多其他的基础知识,在日常工作技术撕逼中也是经常被讨论的问题. 深克隆与浅克隆 在Java中创建对象有两种方式: 一种是new操作符,它创建了一个新的对象,并把对应的各个字段初始化成默认值: 另一种是用clone方法,基于已有的对象创建一个新的对象,此时会根据原有的对象各个字段赋值给新的对象. 如果对象的字段都是基础类型,没有什么问题,但是如果字段是对象,那么其实clone的时候复制的仅仅是对象的引用而已. 上面就是深克隆与浅克隆的区别. 在我们日常的开发中,如果涉及到克隆,就需

Android编程实现文字倒影效果的方法

本文实例讲述了Android编程实现文字倒影效果的方法.分享给大家供大家参考,具体如下: 我们所有的view都继承自View类,View类里有个方法叫ondraw(). 即,我们看到的界面都是画出来的,所以我们可以重写ondraw()方法. 既然知道了这点就好办了,还有个难点就是,我们的倒影也是画出来的,那我们从哪去取原始图片呢?熟悉View的童鞋都知道Cache这个东西,不错,就是通过Cache我们取到了原始图片. 放源码了.,感谢期待.这个只是个demo,并不完善哈,布局什么的还需要调整下,

《Java编码指南:编写安全可靠程序的75条建议》—— 指南10:不要使用clone()方法来复制不可信的方法参数

指南10:不要使用clone()方法来复制不可信的方法参数 创建可变方法参数的防御性副本,可以减轻来自各种安全漏洞的威胁,更多信息请参考<The CERT Oracle Secure Coding Standard for Java>[Long 2012]的"OBJ06-J. Defensively copy mutable inputs and mutable internal components".然而,对clone()方法不当地使用,可以使攻击者利用这一漏洞,提供看

Java clone()方法来由及用法

Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c.c++后学java的程序员.并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象.比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递.以下是一个小例子: public class A { public String name; } public class testClone { public void chang

java树的节点事件里调用repaint方法 不能实现重绘

问题描述 java树的节点事件里调用repaint方法 不能实现重绘 java树的节点事件里调用repaint方法 不能实现重绘 怎么解决......................... 解决方案 http://zhidao.baidu.com/link?url=_s3y58ND8LIk-TtWOqBE2sXSaX5vKISRuxgRbdlCvZ2TPcjjujnp85-84Xto3Pa3rh7GEZ8yJ5ctIOYQxF7wTq

学习JAVA编程思想4的好方法

问题描述 跪求大神总结学习JAVA编程思想4的好方法. 解决方案 解决方案二:Java编程思想是很好的学习Java的材料,但对初学者来说有的地方不是能够轻易明白的.因为Java涉及的概念和技术非常广泛,建议先把基础夯实,比如类,接口,继承,多态等,这些有了基础后可以再深入学习正则表达式.线程.io等,一定要动手编写代码,并确实明白代码的执行逻辑.解决方案三:1.背把那些死知识背下来,复习巩固2.敲可以按书本例子课后题敲,对没掌握的可以重复敲3.测找其他题测试掌握情况,最好找SCJP题库的题,因为

java中监听接口里面的onclick方法为什么被称为回调方法

问题描述 java中监听接口里面的onclick方法为什么被称为回调方法 那普通接口有回调方法吗,普通类有回调方法吗, 回调方法是如何定义的 解决方案 你别被回调这个词搞蒙了,其实就是把方法当做参数而已 解决方案二: 因为onclick你定义了,不是自己调用,而是间接由按钮点击后系统类库去调用,所以叫回调. 英文叫做callback. 解决方案三: 回调方法简单的说就是a方法都用b方法,b方法执行过程中需要调用a方法,callback 解决方案四: [个人向]Android回调接口的实现方法ja