[转]Android 类加载器
类的生命周期 加载阶段 加载阶段可以细分如下 加载类的二进制流 数据结构转换,将二进制流所代表的静态存储结构转化成方法区的运行时的数据结构 生成java.lang.Class对象,作为方法区这个类的各种数据的访问入口 加载类的二进制流...
类的生命周期 加载阶段 加载阶段可以细分如下 加载类的二进制流 数据结构转换,将二进制流所代表的静态存储结构转化成方法区的运行时的数据结构 生成java.lang.Class对象,作为方法区这个类的各种数据的访问入口 加载类的二进制流...
垃圾回收机制 对象创建过程 对象内存分布 对象的访问 对象回收算法 引用计数法:可能存在的问题,对象相互引用 可达性分析: 可达性分析算法的主要思路是先找出一批根节点对象集合作为GC Roots(可称为根节点枚举),然后从这...
泛型类型擦除 Java泛型这个特性是从JDK 1.5才开始加入的,因此为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”(Type Erasure),将所有的泛型表示(尖括号...
Java 虚拟机将 Java 程序执行的区域称为运行时数据区,根据各自功能不同将运行时数据区划分为若干个不同的区域, 具体分为两大块,线程共享部分和线程私有部分。线程共享部分可以分为堆、方法区(jdk1.8 后这块区域被称为元空间);线...
Java 内存模型(JMM) JMM 是 Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式,JMM规定了内存主要划分为主内存和工作内存两种 此处的主内存和工作内存跟JVM内存划分(堆、栈、方法区)是在不同的层次上进行的,如果非要对应起来,主内...
BlockingQueue相关接口 public interface Queue<E> extends Collection<E> { boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek(); } public interface B...
开始之前我们先看看Android 官方文档中的一段话。 官方的说法就是:我们在写代码的时候要注意类型的使用,以便于提高代码的扩展性和维护性,但是原型的使用一般会付出更多的内存的代价,所以如果没有特别大的好处,要尽量避免使用。对...
前言 关于equals以及hashCode相关知识网上已经非常非常多了,最近在看到这篇博文的时候总感觉还是少了些,故自己写了一些测试代码,然后总结一下到底这两个有什么相同点以及不同点。 equals equals方法是用来比较两个对象是否相等,一...
前言 在很多时候,我们在序列化/反序列化 json对象的时候,需要排除部份字段,比如用户相关的json,对于密码等,我们就不应该序列化提供出去,这时候就有必要进行下处理了。 使用@Expose注解 我们可以先看看@Expose的定义,如果我们想...
前言 在Java中,我们如果需要提供一个模块给其他人或模块调用,往往是将所有的功能抽取为一个接口,然后其他人通过接口去访问服务,形式为接口->实现类,但是如果我们想在每次使用接口提供的服务之前,进行一些判断,就需要在中间...