六号表哥

你应该了解真相,真相会使你自由。

序列化机制——Serializable工作原理

序列化与反序列化的概念 从广义上讲,数据序列化就是将数据结构或者是对象转换成我们可以存储或者传输的数据格式的一个过程,在序列化的过程中,数据结构或者对象将其状态信息写入到临时或者持久性的存储区中,而在对应的反序列化过程中,则可以说是生成的数据被还原成数据结构或对象的过程。 在对象序列化和反序列化角...

2019-06-02 21:08:15

阅读数 24

评论数 0

lancet 库的工作原理

Lancet lancet 是一个轻量级Android AOP框架。 dependencies{ classpath 'me.ele:lancet-plugin:1.0.4' } apply plugin: 'me.ele.lancet' dependencies { prov...

2019-04-24 20:26:11

阅读数 65

评论数 0

Android 虚拟机—Dalvik&ART

Dalvik 虚拟机与ART 虚拟机 Dalvik是什么? Dalvik 是实现了 JVM 规范的虚拟机,内部默认使用的 CMS 垃圾回收器。但是与 JVM 不一样的是 JMM 运行的 .class 字节码,而 Dalvik 运行的 dex 文件。dex 全称 Dalvik Executable...

2019-04-21 15:50:14

阅读数 16

评论数 0

Java 注解工作原理

文章目录注解的本质定义和使用注解定义注解类应用注解获取被注解的信息验证注解的工作就是通过动态代理实现的。断点验证我们的结论将动态代理类写入到磁盘总结参考 注解的本质 这里先得出结论,注解的工作就是通过动态代理实现的。 定义和使用注解 下面来定义一个最简单的注解,并通过这个注解引出注解的本质...

2019-04-21 15:47:25

阅读数 33

评论数 0

「性能优化4.0」运行期间检测不合理的图片

Bitmap 内存模型 在 API10 之前,Bitmap 对象本身存在 Dalvik Heap 中,像素是存在 native 中,这样像素并不会占用 Heap 空间,也就不会造成 Heap 内存溢出。但是缺点是Bitmap 对象被回收了,但是 native 层像素回收的时机可能跟 Heap ...

2019-04-20 23:44:18

阅读数 31

评论数 0

「性能优化3.1」Android多线程优化

文章目录多线程优化给线程起名字目的是什么?什么时候设置?检测关键异步任务的耗时情况避免直接创建Thread直接创建Thread的弊端锁定线程的创建者设置线程优先级参考项目地址 多线程优化 给线程起名字 目的是什么? 在出 bug 时方便定位到是哪个线程出问题。 在 Android SDk 提...

2019-04-16 19:20:36

阅读数 24

评论数 0

「性能优化3.0」Android线程调度&异步方式汇总

文章目录线程调度与线程调度模型nice valuecgroup(control group)CPU 密集型与 IO 密集型多线程优化的注意点Android 的异步方式参考 线程调度与线程调度模型 任意时刻,只有一个线程占用 CPU,处于运行状态。而多线程并发执行就是轮流获取 CPU 执行权。 ...

2019-04-16 00:15:46

阅读数 19

评论数 0

Java 虚拟机内存模型—线程私有

文章目录JVM 内存模型线程私有区域程序计数器虚拟机栈栈帧的组成StackOverflowError本地方法栈逃逸分析优化线程私有部分的回收问题参考 JVM 内存模型 .java 源文件 -> javac 工具编译 -> .class 文件 -> JV...

2019-04-15 12:01:32

阅读数 28

评论数 0

Java 并发编程—volatile 关键字

volatile 关键字 volatile 作用 volatie 用于修饰变量,它有两个作用。 它可以保证变量在多线程之间是可见的,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 禁止指令重排序。 volatile 保证变量的可见性 先来看一下 volatile 保证变量在...

2019-04-14 18:39:39

阅读数 7

评论数 0

Java 并发编程—线程间的共享和协作(二)

线程间的共享和协作 文章目录线程间的共享和协作Lock 显示锁Lock APIReentrantLock什么是可重入锁?ReentrantLock实现公平锁和非公平锁读写锁ReentrantReadWritLockCondition接口对比 Object 的 wait 和 notify使用 Loc...

2019-04-14 03:23:59

阅读数 11

评论数 0

Java 并发编程—线程间的共享和协作(一)

线程间的共享和协作 线程间的共享 JVM 会为每一个线程独立分配虚拟机栈空间,本地方法栈空间以及程序计数器,而对于共享内存中的变量,是对每一个线程而言是共享的,因此多线程并发访问共享内存中的变量时就会出现线程安全问题。具体可以参考JVM 内存模型这篇博客。 synchronized 内置锁 在前...

2019-04-12 15:53:41

阅读数 24

评论数 0

Java类加载器-动态加载外部dex

Android 类加载 Android 只能加载识别 dex 文件,因此需要将 .java 文件编译 .class 文件,然后将 .class 优化为 .dex 文件。 过程:.java -> .class -> .dex 下面来练习如何去加载一个 dex 文件,并调用...

2019-04-10 21:30:26

阅读数 94

评论数 0

劣实基础–Java 并发编程基础知识

CPU 核心线程数和线程数的关系 目前的 CPU 有双核,四核,八核,一般情况下,它和线程数是1:1的对应关系,也就是四核 CPU 一般就能并行执行 4 个线程。但 Intel 引入超线程技术后,使核心数与线程数形成1:2的关系,也就是我们常说的 4核8线程 线程调度 任意时刻,只有一个线程...

2019-04-07 15:29:01

阅读数 79

评论数 0

劣实基础–Java 动态代理机制

代理模式 代理在我们日常生活中经常出现,例如我们去租房,为了方便我们会去找中介,让他们帮我去找房子,事后我们给他一定比例的中介费就可以了,这种好处就不需要我们自己去奔波租房。 在程序中也有代理这种思想,当我们想在一个已有的类的方法被调用前和调用后都输出一段日志信息,而我们目前无法修改类内部的结构,...

2019-04-04 00:59:37

阅读数 42

评论数 0

劣实基础–Java 反射机制

反射与动态代理 反射 一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。 反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用 new 关键字来创建对象了。这时候,我们使用 JDK 提供的反射 API 进行反射调用...

2019-04-03 17:39:13

阅读数 40

评论数 1

劣实基础–Java 泛型机制

为什么需要泛型? 先来看一段代码,这段代码是用来计算两个数之和,可以看到每次新增一种数据类型,那么就要新增一个方法,这显然是不好的解决方法。 public class NoGeneric { public int addInt(int a, int b) { re...

2019-04-01 19:09:15

阅读数 791

评论数 0

Java 并发编程—CAS 机制

CAS 机制 在介绍 CAS 机制之前,来看下面这段代码: 它的执行结果是会是 200 吗? public class NoAtomicPersonCount implements Runnable { private int personCount = 0; public st...

2019-03-31 19:35:25

阅读数 24

评论数 0

Java 虚拟机–内存模型

一、JVM 内存模型 .java 源文件 -> javac 工具编译 -> .class 文件 -> JVM 解析 -> 010101 机器码 -> 跑在不同的操作系统上。 基于上面的流程可以看出,java 是一个跨平台语言...

2019-03-28 00:04:11

阅读数 40

评论数 0

「性能优化2.4」 AsyncLayoutInflater实现异步加载布局

「性能优化1.0」启动分类及启动时间的测量 「性能优化1.1」计算方法的执行时间 「性能优化1.2」异步优化 「性能优化1.3」延迟加载方案 「性能优化2.0」布局加载原理 「性能优化2.1」LayoutInflater Hook控件加载耗时 「性能优化2.2」获取布局的加载时间 「性能优化2.3...

2019-03-21 23:22:31

阅读数 326

评论数 0

「性能优化2.3」Choreographer检测丢帧

「性能优化1.0」启动分类及启动时间的测量 「性能优化1.1」计算方法的执行时间 「性能优化1.2」异步优化 「性能优化1.3」延迟加载方案 「性能优化2.0」布局加载原理 「性能优化2.1」LayoutInflater Hook控件加载耗时 「性能优化2.2」获取布局的加载时间 「性能优化2.3...

2019-03-21 19:52:57

阅读数 67

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭