clone方法是用来复制一个对象。不同于“=”。 对于值类型的数据是可以通过“=”来实现复制的。但是对于引用类型的对象,“=”只能复制其内存地址,使对象的引用指向同一个对象,而不会创建新的对象。clone则可以创建与原来对象相同的对象。举个例子: 有一个Car类 Car c1 = new Car(); Car c2 = c1; 这两句事实上只创建了一个对象。只不过c1和c2指向了同一个对象。 如果上面的两句改为: Car c1 = new Car(); Car c2 = c1.clone(); 那么就有了两个对象,而且这两个对象的内容是一样的。(所有的属性值相同) 同时,我想说的是一楼的使用,虽然程序本身没有错误,但是用date.clone()添加到list当中,会再次创建date的对象,消耗内存资源,这是编程的忌讳。特别是编写java程序,更要好好利用内存的有限资源,避免浪费。
浙公网安备 33010602011771号