摘要: 前言 RxJava 事件的发出和消费都在同一个线程,基于同步的观察者模式。观察者模式的核心是后台处理,前台回调的异步机制。要实现异步,需要引入 RxJava 的另一个概念 - 线程调度器 Scheduler。 正文 在不指定线程的情况下,RxJava 遵循的是线程不变的原则。即在哪个线程调用 sub 阅读全文
posted @ 2018-09-26 22:35 零壹技术栈 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 前言 在介绍 RxJava 1.x 线程调度器之前,首先引入一个重要的概念 - 事件序列转换。RxJava 提供了对事件序列进行转换的支持,这是它的核心功能之一。 正文 1. 事件序列转换定义 所谓转换,就是将事件序列中的对象或整个序列进行加工处理,转换成不同的事件或事件序列,有点类似 Java 1 阅读全文
posted @ 2018-09-26 22:27 零壹技术栈 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Android异步框架RxJava 1.x系列(一) - 观察者模式及实现 前言 RxJava 是一款基于 Java VM 实现的响应式编程扩展库 - 基于观察者模式的异步和事件处理框架。RxJava 官方目前同时维护了两个版本,分别是 1.x 和 2.x,区别是它们使用不同的 group id 和 阅读全文
posted @ 2018-09-26 22:22 零壹技术栈 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 前言 通过上一篇的 JVM 垃圾回收知识,我们了解了 JVM 具体的 垃圾回收算法 和几种 垃圾回收器。理论是指导实践的工具,有了理论指导,定位问题的时候,知识和经验是关键基础,数据可以为我们提供依据。 在线上我们经常会遇见如下几个问题: 内存泄露; 某个进程突然 CPU 飙升; 线程死锁; 响应变 阅读全文
posted @ 2018-09-24 18:51 零壹技术栈 阅读(3299) 评论(1) 推荐(0) 编辑
摘要: 前言 在之前的几篇博客中,我们大致介绍了,常见的 垃圾回收算法 及 JVM 中常见的分类回收算法。这些都是从算法和规范上分析 Java 中的垃圾回收,属于方法论。在 JVM 中,垃圾回收的具体实现是由 垃圾回收器(Garbage Collector)负责。 正文 概述 在了解 垃圾回收器 之前,首先 阅读全文
posted @ 2018-09-24 18:44 零壹技术栈 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 前言 本文将由浅及深,介绍Java类加载的过程和原理,进一步对类加载器的进行源码分析,完成一个自定义的类加载器。 正文 (一). 类加载器是什么 类加载器简言之,就是用于把.class文件中的字节码信息转化为具体的java.lang.Class对象的过程的工具。 具体过程: Class对象的创建过程 阅读全文
posted @ 2018-09-24 12:45 零壹技术栈 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 前言 前面介绍了Java内存运行时区域,其中 程序计数器、虚拟机栈、本地方法栈 三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性。在这几个区域内不需要 阅读全文
posted @ 2018-09-24 12:40 零壹技术栈 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 前言 对于 JVM 运行时区域有了一定了解以后,本文将更进一步介绍虚拟机内存中的数据的细节信息。以JVM虚拟机(Hotspot)的内存区域Java堆为例,探讨Java堆是如何创建对象、如何布局对象以及如何访问对象的。 正文 (一). 对象的创建 说到对象的创建,首先让我们看看 Java 中提供的几种 阅读全文
posted @ 2018-09-24 12:36 零壹技术栈 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 前言 JVM内存区域包括 PC计数器、Java虚拟机栈、本地方法栈、堆、方法区、运行时常量池和 直接内存。 本文主要介绍各个内存区域的作用和特性,同时分别阐述各个区域发生内存溢出的可能性和异常类型。 正文 (一). JVM内存区域 Java虚拟机执行Java程序的过程中,会把所管理的内存划分为若干不 阅读全文
posted @ 2018-09-24 12:35 零壹技术栈 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 前言 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上一次编译,多次运行,具有跨平 阅读全文
posted @ 2018-09-24 12:30 零壹技术栈 阅读(217) 评论(0) 推荐(0) 编辑