Java中的拷贝
Java对对象和基本的数据类型的处理是不一样的。对基本的数据类型类似于C/C++中的方法(值传递)。在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作
。
java 里面的数组赋值是引用传递
数组的浅拷贝是指数组拷贝时,只拷贝了数组的地址,新旧数组指向同一数据。
JAVA中复制数组元素值的的方法:(深拷贝)
1。使用FOR循环,将数组的每个元素复制(需要将每个对象调用clone方法,才能实现真正的复制)
2。使用clone方法,得到数组的值,而不是引用
3。使用System.arraycopy(s,start1,t,start2,length)方法
上述方法2和3原则上只是对一维数组的深拷贝,二维数组可以通过利用循环深拷贝各维实现。
例如二位数组深拷贝可以如下实现:
public static void copyArray(int[][] src,int[][] dest){
for(int i=0;i<src.length;i++)
System.arraycopy(src[i], 0, dest[i], 0, src[i].length);//只有这样才能实现对二维数组的深拷贝
}
相关文档:
java学习已有段时间,个人觉得,快速成长起来有几中途径:
一培训,到权威的机构去培训,能在短期内达到比较好的效果.
二自学,在自学中除了看一些视频教程外,还要额外看一些参考书.有了这些理论,更多的是要实践,编程就是要不断的动手,从错误中学习,从编程中学习,让自己的理论知识更加扎实,有了一定的理论基础,个人认为可以做有 ......
Java一定要掌握的技术
-------------------------------------------------------------------------------
jvm优化
jvm线程调度序列
java gc机制
java gc算法
Java gc原理
java 内存管理
如何主动通知jvm进程垃圾回收
异常机制|java的异常处理
线程|线程的实现
集合类框架
java.io
服务器:Squid、Lighttpd、 ......
最近一两个月以来一直在看java 代码, 看了一些开源的实现, 也看了一些产品中的代码,从这些代码中,学习了一些开源框架的应用(如ActiveMQ,cxf),也学习了这些框架的实现,同时也注意去理解每个类 以及接口的设计,以及设计模式的应用, 关注了一下,每个类,接口的规模,基本上有一些也会非常大,有几千行,有一些 ......
单例模式.
简而言之,就是一个类只有一个实例。
Singleton.java:
package com.xfimti.sigleton;
public class Singleton
{
/*第一种方式。*/
private static Singleton singleton = new Singleton();
/*第二种方式。*/
private static Singleton mySingleton = null;
p ......
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体" ......