被问到的奇葩问题

前几天去面试时遇到个技术问了个让我一脸懵逼的问题,大概是他在ActivityB中需要ActivityA的实例,所以他在ActivityA中搞了个静态变量引用ActivityA实例。然后直接在ActivityB中使用。

至于我为啥懵逼,那是因为他之前刚问过我内存泄漏的问题
内存泄漏嘛,简单说就是该释放的内存没释放掉

相信大家都知道在android中static修饰的变量的生命周期等同于整个app的运行周期。如果如上文中那么做,假设不把ActivityA中引用自己的静态变量置为null,那么ActivityA的实例就会一直存在直到app运行结束,即使在ActivityA中调用finish()来关闭ActivityA,onDestroy即使被调用ActivityA也依然存在,ActivityA中类变量也没有释放掉,内存空间也依然被占用。
这就是非常典型的内存泄漏嘛。

所以记下这个来时时提醒自己,项目中慎用static。

你可能感兴趣的:(被问到的奇葩问题)