Globalな変数

Globalな変数はどこからでも参照できるため、不変性が破壊される原因になりがちである。この問題を回避するにはGlobalな変数自体を不変オブジェクト化しておけばよい。さて、javaのGlobalな変数とはclass staticな変数のことなのだろうか、それともclass自体のことなのだろうか。
バイトコードによって永続化されるオブジェクトをパスによって参照しているとみなせば、class自体が変数だと扱ってもよいだろう。ただし、classは通常の変数と異なる名前空間に属し、アクセス手法も異なる*1という点が厄介であるかもしれない。

*1:それにも関わらず区切り文字に同じ「.」を使っているため、java.lang.System.out.println()などが読みにくくなっている。小文字で始まるclass名や大文字で始まる変数名の場合は全く区別が付かない。