在室内地图引擎 SDK开发中,今天忽然碰到了一个BUG,一查因为前几天不知道怎么脑抽筋的,在一些类中加了private 的static的变量和使用单例模式时static类对象形成的。缘由是销毁了某个类对象后,其类中的static变量还存在,并无被销毁 (static变量不属于类成员),等下次进来的时候,存在冲突。设计
慎重使用static变量。
对象
使用静态变量要特别注意,由于他们“不受控制”,很容易产生BUG。可能会为了方便定义一些static集合变量,最后当集合比较大时,形成内存溢出;可 能会在类中定义static变量,把它当成类的成员属性,在销毁类对象时,没有手动是释放它(置null),下次使用时与上一次的static变量冲 突......当发生这些错误发生在你身上时,只能说明你还不合格。因此我还不合格。内存
注意“单例模式”。开发
在 某些状况下,你可能设计了某个类对象为“单例模式”,来为一个模块提供一个“桥梁”,然而这并非所谓的“全局”。当通过某些操做时后,退出了使用此单例 对象的功能模块,而后又进入之,此时须要从新生成单例对象,你会发现仍是上次那个对象,而这不是咱们须要的。缘由就是上次退出那个功能模块时,没有释放掉 “单例”对象(这种状况必须手动清理)。因此所谓的“单例模式”,还需考虑范围的,使用时须要注意。
变量
总结:使用static时,多思考,能不用就别用,这东西不是好东西。地图