Java中static成员变量的生命周期

来源:互联网 发布:flume json source 编辑:程序博客网 时间:2024/05/01 22:14

Static:

  • 加载:java虚拟机在加载类的过程中为静态变量分配内存。
  • 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享
  • 销毁:类被卸载时,静态变量被销毁,并释放内存空间。static变量的生命周期取决于类的生命周期

类初始化顺序:

  • 静态变量、静态代码块初始化
  • 构造函数
  • 自定义构造函数

结论:想要用static存一个变量,使得下次程序运行时还能使用上次的值是不可行的。因为静态变量生命周期虽然长(就是类的生命周期),但是当程序执行完,也就是该类的所有对象都已经被回收,或者加载类的ClassLoader已经被回收,那么该类就会从jvm的方法区卸载,即生命期终止。

更进一步来说,static变量终究是存在jvm的内存中的,jvm下次重新运行时,肯定会清空里边上次运行的内容,包括方法区、常量区的内容。




原文链接:http://www.cnblogs.com/hf-cherish/p/4970267.html