在配置文件中声明bean的类型为Singleton,之后在应用中注入这个bean,使用其中的方法和建一个静态类,之后在应用中直接使用静态类中的方法,这两种方式有什么区别吗?是否是线程安全的呢?
小弟是新手,真心求教,请不要乱喷,谢谢

解决方案 »

  1.   

    声明为Singleton,是线程安全的。 
     
     你建立一个静态类? 什么意思?
      

  2.   

    出自:http://blog.csdn.net/scucj/archive/2006/11/18/1394523.aspx 
    类的成员分为两类,静态成员(static member)和实例成员(instance member)。静态成员属于类,实例成员则属于对象,即类的实例。    简单讨论一下在一个类中使用静态字段(static field)和静态方法(static method)是否会有线程安全问题。     我们在知道, 静态字段(static field)和静态方法(static method)的调用是通过类来调用。静态方法不对特定的实例操作,只能访问静态成员。实例方法可对特定的实例操作,既能访问静态成员,也能访问实例成员。    那么,在多线程中使用静态方法是否有线程安全问题?这要看静态方法是是引起线程安全问题要看在静态方法中是否使用了静态成员。    因为,在多线程中使用同一个静态方法时,每个线程使用各自的实例字段(instance field)的副本,而共享一个静态字段(static field)。所以说,如果该静态方法不去操作一个静态成员,只在方法内部使用实例字段(instance field),不会引起安全性问题。但是,如果该静态方法操作了一个静态字段,则需要静态方法中采用互斥访问的方式进行安全处理。