今天又被静态变量坑了,特写此文,几年前被批的经历都忘啦
博客专区 > javacc 的博客 > 博客详情
今天又被静态变量坑了,特写此文,几年前被批的经历都忘啦
javacc 发表于2年前
今天又被静态变量坑了,特写此文,几年前被批的经历都忘啦
  • 发表于 2年前
  • 阅读 305
  • 收藏 10
  • 点赞 0
  • 评论 2

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 坑爹的静态变量

 类的成员变量有两种:一种是被static关键字修饰的变量,叫类变量或静态变量,一种是没有被static修饰的,叫做实例变量 
    静态变量和实例变量的区别在于: 
    类静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量可以通过类名直接访问。静态变量的生命周期取决于类的生命周期,当类被加载的时候,静态变量被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并释放所占有的内存。 
    类的每一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变量位于堆区中,实例变量的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例 变量被销毁,并释放所占有的内存空间。 
    假如成员变量时引用变量,该成员变量结束生命周期时,并不意味着它所引用对象也结束生命周期。变量的生命周期和对象的生命周期是不同的概念。

共有 人打赏支持
javacc
粉丝 23
博文 15
码字总数 19161
评论 (2)
漏风小子
咋了
javacc

引用来自“漏风小子”的评论

咋了
网上找到一个开源的打印条码的工具类,结果打印条码会出现重叠的现象。莫名其妙啊,后来搞了半天,一看源码才知道,里面条形码字符串使用的是静态变量。。。。
×
javacc
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: