在下面试时遇到的几个问题:
transient和static关键字有什么区别?
swing是不是线程安全?如果不是,你怎么把它变成线程安全?
另外我想问问线程安全到底是个什么概念?

解决方案 »

  1.   

    transient和static关键字有什么区别:
    transient
    将变量声明为transient告诉JVM我们会负责将变元序列化。将数据成员声明为transient后,序列化过程就无法将其加进对象字节流中,没有从transient数据成员发送的数据。表明类序列化时,变量不必序列化。
    Static
      Static变量称为类变量,类的所有对象共享这个变量。
      Static方法称为类方法,它只能访问static变量。静态方法不能被子类overriding为非静态方法,但静态方法可以被子类静态方法所Hided.
    swing是不是线程安全?如果不是,你怎么把它变成线程安全?
    有些方法是线程安全的:在Swing API的文档中,线程安全的方法用以下文字标记:  This method is thread safe, although most Swing methods are not. 
      (这个方法是线程安全的,尽管大多数Swing方法都不是。)
    单线程规则:Swing线程在同一时刻仅能被一个线程所访问。一般来说,这个线程是事件派发线程(event-dispatching thread)。 那么你可以使用SwingUtilities类的invokeLater()或invokeAndWait()方法。 
    可以参考:http://www.99v.com.cn/Article/softtech/program/Java/xc/200508/21749.html
    http://www.cnblogs.com/realfun/archive/2004/08/23/129798.html另外我想问问线程安全到底是个什么概念?“线程的安全”据我认为,简单的讲就是能够实现对相同资源的访问过程中,始终保持资源的一致性,安全性。可以从多线程角度去认识和考虑这个概念吧。具体的可以从上面的资料中查询。
      

  2.   

    谢谢,swing的线程安全我大概明白了。
    可是transient我还是不明白,能说一下我们什么该使用这个关键字吗?