Bai HongHua


  • 首页

  • 分类

  • 归档

  • 标签

JVM系列-深入理解JVM垃圾回收

发表于 2020-03-30 | 分类于 Java进阶

前言

在 Java 虚拟机中,一个 Java 对象被加载进 JVM 后,它的生命周期被划分为 7 个阶段:

阅读全文 »

JVM系列-深入理解JVM内存区域

发表于 2020-03-23 | 分类于 Java进阶

前言

Java 的 .class 文件通过类加载器加载进虚拟机内存里面,由 JVM 虚拟机通过解析执行、或编译执行。JVM 为了方便管理被加载进来的 .class 内容,提出了 Java 虚拟机运行时数据区的概念。Java 虚拟机运行时数据区可以划分为线程私有、线程共享两大类型的数据区,其中线程私有包括程序计数器、虚拟机栈、本地方法栈;而线程共享包括 Java 堆、方法区。

阅读全文 »

动态代理原理分析

发表于 2020-03-19 | 分类于 设计模式

前言

代理模式(Proxy design pattern)可以分为静态代理和动态代理,两种代理模式本质都是对外隔离真实的业务类,并且对外通过代理类,引入代理类的附加功能。对于动态代理的理解,其动态性并不是表现在省去了编写代理类的代码的工作量,而是表现在当真实的业务类、接口类还未知的时候,就可以确定了代理类的行为。

阅读全文 »

App黑白屏启动优化

发表于 2020-01-04 | 分类于 性能优化

开机启动流程概述

Linux 操作系统从开机加电到执行 main 函数的执行可以分三步完成,其目的是实现从启动盘加载操作操作系统程序,完成执行 main 函数所需要的准备工作。第一步,启动 BIOS,准备实模式下的中断向量表和中断服务程序;第二步,从启动盘加载操作系统程序到内存,加载操作系统程序的工作就是利用第一步准备的中断服务程序实现的;第三步,为执行 32 位的 main 函数做过度工作。

阅读全文 »

Android进程间通信(IPC)机制Binder系列笔记(三)

发表于 2019-11-25 | 分类于 Android进阶

前言

Binder 是 Android 开发者阅读 Android 源码、Linux Kernel 层源码的时候,必须要弄懂的一个知识点。Binder 它出现在 Android Driver 层、Android Native 层、Android Framework 层,当然,在 Android 的 App 层使用的 Binder 框架,也是需要依赖以上三层才可以实现的。

阅读全文 »

Android进程间通信(IPC)机制Binder系列笔记(二)

发表于 2019-11-25 | 分类于 Android进阶

Binder 在不同的角度上的定义

  • 从设备的角度来说,Binder 是一种虚拟的物理设备驱动,位于 /dev/binder 目录下;
  • 从 Android 的代码上来说,Binder 是 Android 中的一个类,实现了 IBinder 接口;
  • 从 IPC 角度来说,Binder 是 Android 中的的一种跨进程的通信方式,在 Linux 系统上没有;
  • 从Android Framework 角度来说,Binder 是 ServiceManager 连接各种 Manager 和相应的 ManagerService 的桥梁;
  • 从 Android 应用层来说,Binder 是 client 和 service 进行通信的媒介,当 bindService() 的时候,service端会返回一个包含 service 端业务调用的 Binder 对象,通过这个 Binder 对象,client 端就可以获取到 service 端提供的服务或者数据了;
阅读全文 »

Android进程间通信(IPC)机制Binder系列笔记(一)

发表于 2019-11-25 | 分类于 Android进阶

Android 中不同进程的 Activity 或 Service 之间是如何通信的呢?这个问题就是本系列讲解的重点。

阅读全文 »

深入理解Java反射机制

发表于 2019-11-25 | 分类于 Java进阶

前言

最近在接触 Android 的组件化原理的时候,发现自己对 Java 反射的机制理解并不是很深,只能利用周末的时间把 Java 反射机制回炉重铸。

阅读全文 »

HashMap里面的hashcode()

发表于 2019-10-23 | 分类于 Java进阶

前言

在聊 hashcode() 的作用之前,我们首先需要了解什么是散列表。散列表是一种数据结构,它的英文名称叫 Hash Table, 也是我们平常称的’哈希表’,或者 ‘Hash表’。散列表是一种支持利用数组下标实现随机访问的数据结构,也可以理解成散列表是一种数组的扩展。

阅读全文 »

View绘制流程

发表于 2019-10-17 | 分类于 View体系

基于 Android 源码 5.1 分析

阅读全文 »
<i class="fa fa-angle-left"></i>1234<i class="fa fa-angle-right"></i>

33 日志
16 分类
7 标签
RSS
© 2017 - 2021 Bai HongHua
Powered by Bai HongHua
Thanks For Hexo and NexT.Mist