我有一个带有静态方法和单例类的代码示例
//code with static methods
public class DataManager{
public static Object getDataObject(){
HashMap map = new HashMap();
//Some processing in collections
//retrieval of data
}
public static void writeData(Object o){
HashMap map = new HashMap();
//Some processing in collections
//writing data
}
}
//code with singleton
public class DataManager{
private static DataManager instance;
private DataManager(){
}
public static DataManager getInstance(){
if(instance == null){
synchronized(DataManager.class){
if(instance == null){
instance = new DataManager();
}
}
}
return instance;
}
public Object getDataObject(){
HashMap map = new HashMap();
//Some processing in collections
//retrieval of data
}
public writeData(Object o){
HashMap map = new HashMap();
//Some processing in collections
//writing data
}
}
这是最好的使用方法。当 2 个线程调用我的方法之一时会发生什么?在处理集合时,我的数据是否会损坏?静态方法分配了公共内存,所以当2个线程调用一个静态方法时会相互影响吗?在单例中只创建一个实例,如果 2 个线程用一个实例调用一个方法,它会相互影响吗?请帮助理解这一点。谢谢...