摘要:
非静态内部类的静态实例由于内部类默认持有外部类的引用,而静态实例属于类。所以,当外部类被销毁时,内部类仍然持有外部类的引用,致使外部类无法被GC回收。因此造成内存泄露。 类的静态变量持有大数据对象静态变量长期维持到大数据对象的引用,阻止垃圾回收。 资源对象未关闭资源性对象如Cursor、Stream 阅读全文
摘要:
Android开发中时常会遇到内存泄漏的问题,而Android系统对单个App又有一定的内存限制,此值可以通过一下方式获取: ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); int m 阅读全文
摘要:
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); int memorySize = activityManager.getMemoryClass(); 测试结 阅读全文
摘要:
上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露的问题,现在通过Android Studio自带工具Memory Monitor 检测出来。性能优化的重要性不需要在强调,但是要强调一下,我并不是一个老司机,嘿嘿!没用过这个工具的,请睁大 阅读全文
摘要:
引言 单例模式比较常见的实现方法有懒汉模式,DCL模式公有静态成员等,从Java 1.5版本起,单元素枚举实现单例模式成为最佳的方法。 Java枚举 基本用法 枚举的用法比较多,本文主要旨在介绍利用枚举实现单例模式的原理,所以这里也主要介绍一些相关的基础内容。 首先,枚举类似类,一个枚举可以拥有成员 阅读全文
摘要:
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (i 阅读全文
摘要:
最近打算总结几篇app性能优化方面的东西,毕竟android弄了这么久,万一到哪些转了行,岁月久了就忘记了,纯粹当个人笔记。今个是第一篇 性能优化的基本概念,毛主席说了,让理论先行,理论指导实践。性能优化的重要性不想再强调,我是个新手,要开始开车了,阅读本文你会弄清楚或者再次回顾以下问题。 1、ja 阅读全文
摘要:
如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。想要理解st 阅读全文
摘要:
实例化子类时,父类与子类中的静态代码块、实例代码块、静态变量、实例变量、构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态代码块与父类静态变量(取决于代码书写顺序) 2.子类静态代码块与子类静态变量(取决于代码书写顺序) 阅读全文
摘要:
首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 HashMap和HashSet的区别 HashMap和HashSet的区别 2013/11/09 | 分类: 基础技术 | 11 条评论 阅读全文
摘要:
在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收。 GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命周期内始终持有外部类的对象的引用,造成外部类的对象始终不满足GC的回收条件,反映在内存上就是内存泄露 阅读全文
摘要:
class Test{ public void main(String[] args){ A testA=new A(); //这里会出现问题 new Thread(new Runnable(){ public void run(){ testA.printout(); } ... 阅读全文