在android 开发环境中 声明在类中的对象初始化和在构造函数中初始化有何不同

class A
{
  protecte List array0 = new ArrayList<>();
  protecte List array1 = null;
  .....

  public A()
  {
    array1 = new ArrayList<>();
  }

  public void method()
  {

   ...
   btn.setOnClick(new View.OnClickListener()
            {
                @Override
                public void onClick(View view)
                {
                   use array0 ...
                   use array1 ...
                }
            })
  }
}
A a1 = new A();
a1.array0.add("a0")
a1.array1.add("a0")

A a2 = new A();
a1.array0.add("a1")
a1.array1.add("a1")

在onClick查看到的 array0 的值不是预想的值

https://blog.csdn.net/special00/article/details/82533811