什么是原子变量以及它的用途是什么?

Max*_*lah 0 java

public List<Minterm> completeMinterm(Minterm minterm, String variables){
  List<Minterm> minterms=new ArrayList<Minterm>();

    Minterm m1=new Minterm();
    Minterm m2=new Minterm();
    for (int k = 0; k < minterms.size(); k++) {
        for (int i = 0; i < variables.length(); i++) {
       ..
        }
            m1= minterms.get(k);
            m1.addAtom(new Atom(variables.charAt(i),false));
            m2 = minterms.get(k);
            m2.addAtom(new Atom(variables.charAt(i),true));

        ..
    }
    }
Run Code Online (Sandbox Code Playgroud)

我用Eclipse调试器发现错误,我不明白,为什么原子添加到m2被添加到m1太在同一时间,当这条线运行:

m2.addAtom(new Atom(variables.charAt(i),true));

任何想法为什么?

gku*_*min 5

在这之后

m1= minterms.get(k);
m1.addAtom(new Atom(variables.charAt(i),false));
m2 = minterms.get(k);
m2.addAtom(new Atom(variables.charAt(i),true));
Run Code Online (Sandbox Code Playgroud)

m1和m2指向同一个对象(从中返回minterms.get(k);).例如,您可以尝试比较m1和m2哈希码或指针(m1==m2).