易截截图软件、单文件、免安装、纯绿色、仅160KB

Java数组的复制(对象数组)

先看看下面的代码,大家猜猜输出是什么
package com.captain.test;
public class ArrayTest {
public static void main(String[] args){
//新建一个对象(OneNum)数组(赋值为5、3、4)
OneNum[] ac = {new OneNum(5),new OneNum(3),new OneNum(4)};
//新建一个与ac同长度的对象(OneNum)数组
OneNum[] newac = new OneNum[ac.length];

//将ac中的对象付给新数组中(newac)
for (int i = 0;i<ac.length;i++){
newac[i] = ac[i];
System.out.print(ac[i].value+";");
}
System.out.println();

//将新数组的第一个元素的值改为10
newac[0].value = 10;
//显示原数组(ac)的第一个元素的值
System.out.print(ac[0].value);
}
}
class OneNum {
public int value;
public OneNum(int i) {
this.value = i;
}
}
输出为:
5;3;4;
10
可见,新数组其实也是对原数组对象的修改,也就是说新数组中的对象是原数组对象的引用,两个数组中的对象是相同的。


相关文档:

java 深刻理解 不断更新

1、java是跨平台的,是一门解释性语言,一条一条地执行,解释器就是jvm,所以可以跨平台;
    C/C++是编译性语言,所有编译完后再执行,跨平台的时候需要重新编译一次,以适应新的平台。
2、向上转型,继承  白马非马 
 父类对象转化为子类必须强制(SonClass)fatherClass
 子类当 ......

Java面试经典试题及答案

第一,谈谈final, finally, finalize的区别。   
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为
abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定 ......

Effective Java 学习笔记(5)

尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。 如String对象, String s= new String(“String”);   千万不要这样做,因为这里实际上创建了两个对象。 要避免出现这样的情况, 1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true”),这种方式要优于n ......

JAVA类集框架主要接口

13.1.2  类集框架主要接口
在整个Java类集中最常使用的类集接口是:Collection、List、Set、Map、Iterator、ListIterator、Enumeration、SortedSet、SortedMap、Queue、Map.Entry,这些接口的具体特点如表13-1所示。
表13-1  类集框架接口的具体特点
序    号
接    口
描&nb ......

java定时器的使用

定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后执行。定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现具体任务。
schedule(TimerTask task, Date time)设定指定任务task在指定时间time执行。
cancel ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号