Class 文件结构&字节码指令-《深入理解Java虚拟机》读书笔记

Class 类文件的结构 (#6.3)Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用 8 位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个 8 位字节进行...

阅读全文

Java 内存区&GC_《深入理解Java虚拟机》读书笔记

Java 内存区域与内存溢出异常 (#2)运行时数据区域 (#2.2)Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java 虚拟机规范(Java SE 7 版)》的规定,Jav...

阅读全文

Git submodule 学习笔记

参考自 Git 官方文档:7.11 Git 工具 - 子模块 开始使用子模块将一个已存在的 Git 仓库添加为正在工作的仓库的子模块 1$ git submodule add <子模块仓库地址> 克隆含有子模块的项目普通的git clone命令默认会包含子模块的目录,但其中还没有任何文件,需要执行 2 个命令: 1234# 初始化本地配置文...

阅读全文

《算法图解》读书笔记

1.2 二分查找 1.2.1 更佳的查找方式一般而言,对于包含 n 个元素的列表,用二分查找最多需要 log2 n 步,而简单查找最多需要 n 步。 1.3 大 O 表示法 1.3.1 算法的运行时间以不同的速度增加仅知道算法需要多长时间才能运行完毕还不够,还需知道运行时间如何随列表增长而增加。这正是大 O 表示法的用武之地。 3.1 递归123456d...

阅读全文

Data Binding学习笔记——Attribute Setters

这是 Data Binding 学习笔记的最后一篇,我觉得 Attribute Setters 的特性大大提高了 Data Binding 库的可用性、拓展性。以下主要翻译自官方文档。 Attribute Setters(属性 Setter)当一个 View 绑定的数据发生变动时,自动生成的 binding 类其实会根据 xml 中的 binding 表达式...

阅读全文

Data Binding学习笔记——Data Objects

关于 Data Binding 的基本使用在上一篇文章中已经做了总结,接下来会着重介绍下 Data Binding 库中个人认为最重要的两个特性:Data Objects与Attribute Setters。前者是真正能让我们实现数据-UI双向绑定的关键;后者则为我们提供了自定义 UI 控件数据绑定的可能性。 当然,至于 Data Binding 其他的特性...

阅读全文

Data Binding学习笔记——基本使用

Data Binding 是 google 推出的布局与数据做双向绑定的库。它是一个 support library,可以在 Android 2.1 (API level 7+)以上的平台使用,同时 Android Plugin for Gradle 的版本必须是 1.5.0-alpha1 以上。 编译环境在build.gradle中添加: 123456an...

阅读全文

《穿越计算机的迷雾》读书笔记

1.4 电流是怎样形成的电压的存在是导致电流产生的原因 通常,衡量一个电源的重要指标是它的电压,也就是它产生电的能力。不同的电源,所提供的电压也不相同。 2.3 二进制数就是比特串对于单个的二进制数位,它们都只有一个称呼“比特”,每个比特具有两个可能的值:0 或者 1。 3.3 使用全加器来构造加法机为了表明这个电路的用途,我们在图的中间加了一个符号“∑”。...

阅读全文

《图解HTTP》读书笔记

1.3 网络基础 TCP/IP通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作的。而 HTTP 属于它内部的一个子集。 TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。 发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据...

阅读全文

关于Android Library需要注意的细节

1. 设置库的资源为私有我们都知道,库中的所有资源(res/目录的所有文件)在默认情况下均处于公开状态。如果不希望库的使用者访问这些资源,我们必须通过声明一个或多个公开资源的方式来使用这种自动私有标识机制。 具体做法: 在库的 res/value/ 目录下创建 public.xml 文件,添加 mylib_app_name 和 mylib_publ...

阅读全文