1、不必要的自动装箱。
自动装箱是将基础数据类型转换为相应的复杂类型,在HashMap的追加删除调查中充满了自动装箱问题,因此尽量避免HashMap代替SparseArray和ArrrayMap等问题。
2、内存复用。
资源复用:通用字符串、颜色、布局。
视图复用:类似于RecyclerView的优化再利用。
目标池:创建目标池,无需重复创建目标,类似于线程池,messae享受元模式。
Bitmap对象复用:使用inBitmap属性,Bitmap解码器可以通知Bitmap解码器使用已经存在的存储区域,新解码的bitmap可以尝试使用以前bitmap在heap中占有的存储区域。
3、App内存过低时,可以自主释放内存。
在App退出后台的内存紧张被Kill丢失的情况下,选择重写Application中onTrimmemory/onLowMemory方法,释放图像缓存、静态缓存。
4、优化其他场景。
item在无法回收的情况下释放了图像的引用。
使用字符串连接时,请尽量使用StringBuilder、StringBuffer(内存抖动)
定制view减少onDraw的时间和执行次数。
尽量使用静态内部类。
尽量使用基础数据类型。
适当时使用软/弱引用。
内容扩展:
对程序员们来说,代码优化是一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。
代码优化的目标是:
1、减小代码的体积
2、提高代码运行的效率
到此这篇关于java内存优化的方法总结的文章就介绍到这了,更多相关java内存优化的四种方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!