摘要: 对象的浅复制和深复制有两种方法:第一种:通过重写clone()方法实现1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。2.Java的clone()方法 ⑴clone方法将对象复制了一份并返回给调用者。一般而言,clon.. 阅读全文
posted @ 2011-10-05 14:51 心休 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动它;也可能它已正在执行。如执行了一个线程对象的start()方法后,线程就处于可执行状态,但显而易见的是此时线程不一定正在执行中。3) 死亡(Dead):当一个线程正常结束,它便处于死亡状态。如一个线程的run()函数执行完毕后线程 阅读全文
posted @ 2011-10-05 11:00 心休 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 实现同步方法的方式有两种: 1.用synchronized关键字修饰的方法可以实现线程的同步; 2.用synchronized代码块修饰的部分实现线程的同步。以下为第二种方式的实现:package com.lcq.ThreadTest;/** * 类名:ThreadTest6 * 功能:线程的同步问题,使用关键字synchronized静态代码块修饰 * 时间: * 结果:当一个synchronized块被调用时,该类的其他方法无法调用 * @version 1.0 * @author lcq */public class ThreadTest6 { public static void ma 阅读全文
posted @ 2011-10-05 08:30 心休 阅读(377) 评论(0) 推荐(0) 编辑