java 守护线程(Daemon) (转)
	
    
    
	
Java有两种Thread:“守护线程Daemon”与“用户线程User”。
我们之前看到的例子都是用户,守护线程是一种“在后台提供通用性支持”的线程,它并不属于程序本体。
从字面上我们很容易将守护线程理解成是由虚拟机(virtual machine)在内部创建的,而用户线程则是自己所创建的。事实并不是这样,任何线程都可以是“守护线程Daemon”或“用户线程User”。他们在几乎每个方面都是相同的,唯一的区别是判断虚拟机何时离开:
用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。
守护线程:守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
import java.io.IOException;
/** *//**
* 守护线程在没有用户线程可服务时自动离开
* @author 五斗米
* @blog http://blog.csdn.net/mq612
*/
public class TestMain4 extends Thread ...{
    
    public TestMain4() ...{
     }
    /** *//**
      * 线程的run方法,它将和其他线程同时运行
     */
    public void run() ...{
        for(int i = 1; i <= 100; i++)...{
            try ...{
                 Thread.sleep(100);
             } catch (InterruptedException ex) ...{
                 ex.printStackTrace();
        &n
    
     
	
	
    
    
	相关文档:
        
    
    通过Web Service混合.NET和Java技术往往很容易,但Web Service并非是.NET和Java互操作的万灵丹。Web Service在集成独立的跨网络通信的组件时非常有用,在简单的调用/返回情景中,涉及的数据类型数量非常有限,且Web Service是基于标准的,混合.NET和Java技术通常显得很简单,因此有人认为Web Serv ......
	
    
        
    
    class Super { static int taxi = 1729; }
class Sub extends Super {
    static { System.out.print("Sub "); }
}
class Test {
    public static void main(String[] args) {
        System.out.println(Sub.taxi);
    }
} 
输出:1729
知识要点:
A reference to a class field causes initialization of ......
	
    
        
    
    
在Devoxx 2009(一年一度的Java社区大会,今年在11月16-20日举行)上,Sun宣布将在JDK 7中增加闭包功能。这个功能的添加将从FCM v0.5(First-Class Methods,第一类方法)的语法和语意开始着手。FCM与JCA原本一同被提交,然而Sun宣布JCA将不在JDK 7中考虑。 
 
同时,Sun表示Java 7的发布时间将被推迟至2010年底。 ......
	
    
        
    
    
序列化的过程就是将对象写入字节流和从字节流中读取对象。将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,可以通过管道或线程读取,或通过网络连接将对象数据发送到另一主机。对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象序列化问题在网络编程中并不是最激动人 ......