static避免滥用,造成内存泄漏

static 关键字用于定义静态变量,它的生命周期与程序的生命周期相同,即在程序启动时创建,在程序结束时销毁。如果您在 Activity 中定义了 static 变量,可能会导致内存泄漏的问题。

当您在 Activity 中定义了 static 变量时,这个变量的生命周期将会比 Activity 更长。如果您在 Activity 中引用了这个变量,那么这个 Activity 将无法被垃圾回收器回收,从而导致内存泄漏。

例如,如果您在 Activity 中定义了一个 static 变量,并在 onCreate() 方法中初始化它,那么这个变量将会一直存在,直到程序结束。如果您在 Activity 中引用了这个变量,那么这个 Activity 将无法被垃圾回收器回收,从而导致内存泄漏。

private static Activity mActivity = null;

在 Java 中,如果一个对象被赋值给一个静态变量,那么这个对象的生命周期将会比普通对象更长,直到程序结束或者静态变量被重新赋值为止。因此,如果您在静态变量中存储了一个 Activity 对象,那么这个 Activity 对象的生命周期将会比普通的 Activity 对象更长。

如果您多次对静态变量进行赋值,那么之前的赋值的 Activity 对象将会被垃圾回收器回收,前提是这些对象没有被其他对象引用。当一个对象没有被任何对象引用时,垃圾回收器会自动回收它。

为了避免这个问题,您可以将 static 变量定义在 Application 类中,或者使用 WeakReference 来引用 Activity。另外,您还可以在 onDestroy() 方法中释放 Activity 中的资源,以确保 Activity 能够被垃圾回收器回收。

需要注意的是,内存泄漏是一个常见的问题,可能会导致应用程序的性能下降、崩溃或者其他问题。因此,您应该尽可能避免内存泄漏,并确保代码的稳定性和可靠性。

static 静态变量:

1.占用内存,内存一般不会释放,造成卡顿

2.不能将activity作为static静态对象,这样使activity的所有组件对象都存入全局内存中,并且不会被回收;

3.进程kill,又回到初始状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南:-)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值