我想知道一个类的每个实例是否都有自己的该类方法的副本?
可以说,我有以下课程MyClass
:
public MyClass {
private String s1;
private String s2;
private String method1(String s1){
...
}
private String method2(String s2){
...
}
}
因此,如果两个不同的用户创建了一个类似的实例MyClass
:
MyClass instanceOfUser1 = new MyClass();
MyClass instanceOfUser2 = new MyClass();
是否知道每个用户在他的线程中有一个方法的副本MyClass
?如果是,那么实例变量就是线程安全的,只要只有实例方法操作它们,对吧?
我问这个问题是因为我经常读到实例变量不是线程安全的。当每个用户通过调用操作员获取实例时,我不明白为什么会这样new
?