一、发布与溢出
“发布(Publish)”一个对象的意思是指,使对象能够在当前作用于之外的代码中使用。这个“之外”,尤为关键,各种出问题的地方,都是因为这个“之外”所引起的。例如,如果在对象构造完成之前就发布该对象,就会破坏线程安全性。当某个不应该发布的对象被发布时,这种情况就被称为“溢出”。下面使用简单的例子进行说明:
1. 日常非常不注意的行为class Status { private String[] states = new String[]{"AA","BB","CC"}; public String[] getStates(){ return states; } }