• 从源码的角度分析ThreadPoolExecutor实现原理

    线程池(ThreadPoolExecutor)的几个状态 RUNNING:Accept new tasks and process queued...

  • 数据结构?从HashMap的源码分析开始!

    Hash(哈希) 哈希即散列,散列表是为了解决高速存取而设计的,是一种典型的通过空间去换取时间的做法;为啥叫散列?其实我们可以把这个数据接口理解...

  • TextView实现自定义换行以及缩进文字的格式化对齐

    自定义换行 我们通常在自定义控件的时候会遇到不想用系统默认的文字换行,而需要根据自己的需求来实现文字的换行,原理如下: 使用Paint的meas...

  • 自定义实现垂直滚动的TextView

    需求 当TextView限制最大行数的时候,文本内容超过最大行数可自动实现文本内容向上滚动 随着TextView的文本内容的改变,可自动计算换行...

  • Android中使用Contentprovider导致进程被杀死

    使用contentprovider发现的问题 在我们的android设备上有两个app,app1提供了一个contentprovider出去,也...

  • Android Sqlite并发问题

    背景 我们的项目中使用的是ormlite的加密框架sqlcipher来进行数据库操作的 多进程操作同一个数据库文件出现了问题 如上异常堆栈中的错...

  • JVM的类加载机制

    类的生命周期 其中,加载,验证,准备,初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序开始,而类的解析不一定,类的解析可能在初...

  • JVM的垃圾收集器策略

    说明:本篇属于读书笔记,大量参考《深入理解Java虚拟机》 判断对象不可用的几种方式 引用计数量法 通过计算对象被引用的次数来判断该对象是否还有...

  • 120
    JVM内存区域与OOM

    说明:本篇博客属于读书笔记,大量参考《深入理解Java虚拟机》这本书 JVM的内存 程序计数器 程序计数器是线程私有的,每一个线程都有自己的一个...

个人介绍
我是一只小小小小鸟