用static的修饰的变量和方法,实际上是指定了这些变量和方法在内存中的“固定位置”而static的“局限“,
1.定义时必须进行初始化
2.仅能够调用其他的static方法和static变量
3.在static方法中不能以任何方式引用this或super下面这句话要记住 :static的东西在编译时,就已向内存要到了存取空间
1.定义时必须进行初始化
2.仅能够调用其他的static方法和static变量
3.在static方法中不能以任何方式引用this或super下面这句话要记住 :static的东西在编译时,就已向内存要到了存取空间
static在类一加载就分配了内存。太多了自然需要有效率问题。
这么神奇的关键词
竟然被你们说得一文不值
服务器端有Session
可是客户端Session怎么实现?
呵呵,那就是static
声明为static的方法有以下几条限制:
它们仅能调用其他的static 方法。
它们只能访问static数据。
它们不能以任何方式引用this 或super。
如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。
其他的变量也要占资源.但是不会像static变量那样一直占着/
定义static变量时,一直占用资源的只是一个引用而已,不是这个引用指向的实例。
相信大部分人在out of memory 时不会是由static变量引起的。
在jdk的api里都有着大量的static的方法,我们为什么不能用?
这只是为了方便,对系统来说,不过这个内容是否存储,都占有一定的内存。不如,将一个主实例中加入一些实例来通过方法设置更好。以上仅限个人观点。
当系统退出时自动将这些变量指向的引用赋null,
个人感觉除了系统运行得更快外,没发现什么其他的不正常现象。