BATJ30道经典常见Android 高级面试题及答案( 四 )

UI布局的分析 , 可以有2块 , 一块就是Hierarchy Viewer 可以看到View的布局层次 , 以及每个View刷新加载的时间 。

这样可以很快定位到那块layout & View 耗时最长 。

还有就是通过自定义View来减少view的层次 。

回到顶部

2.什么情况下会导致内存泄露

内存泄露是个折腾的问题 。

什么时候会发生内存泄露?内存泄露的根本原因:长生命周期的对象持有短生命周期的对象 。 短周期对象就无法及时释放 。

I. 静态集合类引起内存泄露

主要是hashmap , Vector等 , 如果是静态集合 这些集合没有及时setnull的话 , 就会一直持有这些对象 。

II.remove 方法无法删除set集 Objects.hash(firstName lastName);

经过测试 , hashcode修改后 , 就没有办法remove了 。

推荐阅读