JAVA小知识点(实时更新)
静态变量
关于JAVA的static关键字声明成员变量的问题,被static关键字声明的成员变量被称为静态变量,每一个静态变量在 方法区 也即 静态区 有专属于自己的一块存储区域,这是被所有线程共享的。今天遇到这么一种情况
在类GlobalData中声明了一个List类型的静态变量globalDataList,
然后在类FragmentA中声明了一个普通成员变量,声明方式如下
private List<Data> list = GlobalData.globalDataList;
然后在类FragmentA中为list添加了一些数据,然后神奇的发现这些数据同时也被添加到了globalDataList中去。
这个现象表明的事实为,上述list实际上是为静态变量globalDataList的引用,所以为list添加数据,实际上便是为globalDataList添加数据,同样为globalDataList进行更改后,这些更改也会实时的反应在list上,因为二者本质上都是指向同一块存储区域。