代码改变世界

[置顶] 深入理解Java虚拟机(第2版) 笔记目录

2017-08-14 13:08 by l4y, 158 阅读, 收藏, 编辑
摘要:本篇为读 "深入理解Java虚拟机(第2版)" 一书的笔记目录。 "Java 运行期数据区" "Java 垃圾回收算法" "Java 内存分配策略" "Java 类文件结构" "Java 加载、链接、初始化" "Java 类加载器" 阅读全文

Mach-O在内存中符号表地址、字符串表地址的计算

2019-09-27 00:00 by l4y, 312 阅读, 收藏, 编辑
摘要:"KSCrash" 是一个用于 iOS 平台的崩溃捕捉框架,最近读了其部分源码,在 文件中有一个函数,代码如下: 该函数被如此调用: 0 迷惑现场 一个 image 中会有多个 segment,参数 传递的是 image 的索引,如果返回的是 segment base, 那么是哪个 segment? 阅读全文

自定义 Alamofire 的 response serializer

2019-04-10 16:03 by l4y, 119 阅读, 收藏, 编辑
摘要:Alamofire 的 DataRequest 类针对二进制数据、字符串、json、属性列表提供了一系列方便解析的方法(内部实际上使用的是 Response Serializer),现在我们要针对服务端返回的数据格式定义我们自己的 Response Serializer。 假设服务器返回的数据格式是 阅读全文

RxSwift 中的调度器

2018-10-09 11:59 by l4y, 430 阅读, 收藏, 编辑
摘要:与 ReactiveCocoa 相比,Rx 的一大优势就是更丰富的并发模型。提到并发,就不得不提多线程。在 RxSwift 中,与线程对应的概念就是调度器,本文就调度器做些介绍,包括并发调度器、串行调度器、RxSwift 内置的调度器,及自定义调度器。 文章地址: "https://www. 阅读全文

RxSwift 入门

2018-10-08 16:22 by l4y, 522 阅读, 收藏, 编辑
摘要:ReactiveX 是一个库,用于通过使用可观察序列来编写异步的、基于事件的程序。 它扩展了观察者模式以支持数据、事件序列,并添加了允许你以声明方式组合序列的操作符,同时抽象对低层线程、同步、线程安全等。 本文主要作为 RxSwift 的入门文章,对 RxSwift 中的一些基础内容、常用实践,做些 阅读全文

.ssh/config 文件的解释算法及配置原则

2018-06-06 17:32 by l4y, 9875 阅读, 收藏, 编辑
摘要:前言 SSH 是连接远程主机最常用的方式,尽管连接到单个主机的基本操作非常直接,但当你开始使用大量的远程系统时,这就会成为笨重和复杂的任务。 幸运的是,OpenSSH 允许您提供自定义的客户端连接选项。这些选项可以被存储到一个配置文件中,这个配置文件可以用来定义每个主机的配置。这有助于保持每个主机 阅读全文

不fq安装 golang tools

2018-05-07 23:26 by l4y, 240 阅读, 收藏, 编辑
摘要:1. 2. 3. ,并执行`go install` 阅读全文

iOS 组件化的几篇文章

2018-03-22 22:09 by l4y, 161 阅读, 收藏, 编辑
摘要:随着工程的成长,开发人员的增多,合理的模块划分及低耦合的重要性显得愈发重要。最近在思考这方面的问题,也读了不少通过组件化解耦的文章,这里记录一下。 前 5 篇文章有些关联,建议阅读顺序,1、3、2、4、5,Casa 的文章建议看评论区。 蘑菇街 "蘑菇街 App 的组件化之路" "蘑菇街 App 的 阅读全文

第一把机械键盘 ikbc C-87

2018-03-20 21:52 by l4y, 236 阅读, 收藏, 编辑
摘要:终于入了机械键盘,ikbc C 87黑色红轴。 原本上周五晚上就到了,但是那个键盘有几个键弹起后弹簧会持续响,敲了一会,实在不能忍受,就申请换货了。新换的键盘今天终于到了,没有了之前的问题,但是几乎每次击键都会伴随着一点弹簧的声音,感觉不是很好。 说说在 macOS 下的体验吧,给有类似需求的朋友一 阅读全文

我推荐的 Java Web 学习路线

2017-10-27 00:10 by l4y, 17835 阅读, 收藏, 编辑
摘要:晚上在 V2 的 Java 的节点看到有人问 Java Web 书籍推荐。我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spring 大门。 本文所描述的路线,适合有其他面向对象语言编程经验,具备数据结构、算法、网络、数据库、 阅读全文

【吐槽向】iOS 中的仿射变换

2017-09-29 20:36 by l4y, 170 阅读, 收藏, 编辑
摘要:什么是仿射变换矩阵 实际上就是一个用于绘制 2D 图形的的仿射变换矩阵。仿射变换矩阵用于旋转、缩放、平移、扭曲(skew)在图形上下文中绘制的对象。 提供了了一些列的函数来创建、连接或者运用这些变换。 仿射变换通过一个 3 行 3 列的矩阵来表示: 那么对于一个点 (x,y) 来说,使用上边的矩阵来 阅读全文

Spring 对缓存的抽象

2017-09-15 21:00 by l4y, 709 阅读, 收藏, 编辑
摘要:Cache vs. Buffer A buffer is used traditionally as an intermediate temporary store for data between a fast and slow entity. As one party world have to 阅读全文

Spring 事务管理笔记

2017-09-11 23:24 by l4y, 498 阅读, 收藏, 编辑
摘要:本文为 Spring 框架的事务管理学习笔记,官网文档地址为:[Transaction Management ](https://docs.spring.io/spring/docs/current/spring framework reference/htmlsingle/ transaction 阅读全文

Swift 笔记汇总

2017-08-24 13:16 by l4y, 104 阅读, 收藏, 编辑
摘要:Swift 3 笔记 "Swift: The Basics" :介绍 Swift 一些零碎的点。 "Swift: Basic Operators" :介绍 Swift 的操作符。 "Functions" : 介绍 Swift 的函数,包括默认参数值,可变长参数,In Out Parameters 等 阅读全文

深入理解Java虚拟机(第2版) 笔记目录

2017-08-14 13:08 by l4y, 158 阅读, 收藏, 编辑
摘要:本篇为读 "深入理解Java虚拟机(第2版)" 一书的笔记目录。 "Java 运行期数据区" "Java 垃圾回收算法" "Java 内存分配策略" "Java 类文件结构" "Java 加载、链接、初始化" "Java 类加载器" 阅读全文

Java 类加载器

2017-08-14 13:02 by l4y, 97 阅读, 收藏, 编辑
摘要:类加载器的主要工作是,通过一个类的全限定名来获取描述此类的二进制字节流。 对于任意一个类,由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换言之,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即 阅读全文

Java 加载、链接、初始化

2017-08-14 00:26 by l4y, 471 阅读, 收藏, 编辑
摘要:JVM 动态地加载、连接、初始化类或接口(在本文之后的篇幅中,我将使用“类”来表示“类和接口”)。这里我先贴上 Java 虚拟机规范的原文: Loading is the process of finding the binary representation of a class or inter 阅读全文

Java 类文件结构

2017-08-10 16:56 by l4y, 165 阅读, 收藏, 编辑
摘要:Java 诞生之时有句著名的宣传口号“Write Once, Run Anywhere.”。但是,Java 语言本身不具备跨平台的能力,而是 JVM 提供了跨平台的能力。 事实上,不仅 Java 可以运行在 JVM 上,现在已经出现了其他的语言可以运行在 JVM 上,如 Clojure、Scal 阅读全文

Java 内存分配策略

2017-08-10 13:44 by l4y, 689 阅读, 收藏, 编辑
摘要:内存有分配,就有回收,Java 的 GC 算法在 "前一篇文章" 中已经介绍过了,这篇文章着重介绍 Java 的内存分配策略。 从大方向讲,除去 JIT ,对象的内存分配就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程缓存,将按线程优先在 TLAB 上分配。少数情况也会直接 阅读全文

Java 垃圾回收算法

2017-08-09 23:37 by l4y, 371 阅读, 收藏, 编辑
摘要:在之前 "Java 运行期数据区" 一文中,介绍了运行时内存的各个部分。其中程序计数器、虚拟机栈、本地方法栈都随线程消亡,所以,这几个区域的内存分配和回收都具备确定性。而 Java 堆和方法区不同,我们只有在程序运行期间才能知道会创建哪些对象,这部分的内存分配和回收都是动态的,这也正是垃圾回收器关注 阅读全文

Java 运行期数据区

2017-08-09 20:07 by l4y, 192 阅读, 收藏, 编辑
摘要:对于 Java 开发者来说,由虚拟机进行内存管理是把双刃剑,一方面免去了繁杂的内存管理工作,另一方面,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查问题将成为一项艰难的工作。本文主要介绍 Java 运行时的内存区域。 JVM 在执行 Java 程序的过程中,会把它所管理的内 阅读全文