摘要:
多态这个概念在c++和java这种强类型语言中比较强调,js,python这种弱类型语言天生支持多态。 意味着强类型语言的多态是和继承结合在一起的,多态的前提是继承。 在js和python这种弱类型语言中,多态是天生的。在Python和js中关注的不是传入对象是否是xx的子类,而是传入的对象是否有这 阅读全文
摘要:
“关键字”是对 C 编译器具有特殊含义的单词。 阅读全文
摘要:
这样重新编译时只需要编译有更改的单元。这样在开发的时候,能降低编译的时间。 软件架构设计的目标就是分解软件系统,降低软件系统的复杂性。如果是一个多人协作的软件,大家都在一个文件里完成任务,那么无疑会大大增加设计难度和协作成本。这也是多文件编译“多编译单元”在软件工程中的巨大优势。 高内聚低耦合是判断 阅读全文
摘要:
编译单元,顾名思义,就是一次编译的单位,C/C++语言中编译器都是以被做了include递归展开的cpp文件为编译单位,这也就是最小的编译单位了。 换句话说,你可以让编译器编译一个cpp源文件,而编译器会自动处理它所包含的内容,最终把它所包含的内容以及它自身的内容编译成一个目标文件。 你无法让编译器 阅读全文
摘要:
代理:接口一致、创建混入(替代)、消息转发 阅读全文
摘要:
工程是材料清单(包含材料用途),工程师负责将材料组合到一起 阅读全文
摘要:
前言 苹果提供了 URLProtocol 让开发者可以介入 URL Loading System 做一些定制操作。 注册 protocol 注册 protocol 有两种方式 [NSURLProtocol registerClass:protocol.class] 手动修改 protocolClas 阅读全文
摘要:
强类型语言 强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。 强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型安全的语言,Java是静态语言,是强类型定义语言,也是类型安全的语言。 强类型 阅读全文
摘要:
https://blog.csdn.net/blomule/article/details/43058111 在这个非常依赖第三方库完成项目或产品的时代,必须要关注好依赖间的版本是否正确。 背景 AbstractMethodError异常对于我来说还是比较不常遇见的,最近有幸遇到,并侥幸的解决了,在 阅读全文
摘要:
1. 前言 从 WebView 开始加载一条请求,到页面完整呈现这一过程发生了什么?无论是做 WebView 性能优化还是异常问题监控与排查,我们都离不开对这一问题的思考与探索。 在本篇文章中,我们将在上一篇《深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析》的基础上,结合 阅读全文
摘要:
class_addMethod will add an override of a superclass's implementation, but will not replace an existing implementation in this class. To change an exi 阅读全文
摘要:
本文最初成稿于 2016 年 5 月初,后于 2020 年 2 月中进行了较大的更新和修订,后续会持续保持更新。 什么是动态追踪 动态追踪的优点 DTrace 与 SystemTap SystemTap 在生产上的应用 火焰图 方法论 知识就是力量 开源与调试符号 Linux 内核的支持 硬件追踪 阅读全文
摘要:
前言 在iOS日常开发中,对某些方法进行hook是很常见的操作。最常见的是使用Category在+load中进行方法swizzle,它是针对类的,会改变这个类所有实例的行为。但是有时候我们只想针对单个实例进行hook,这种方法就显得无力了。而Aspects框架可以搞定这个问题。 它的原理是通过Run 阅读全文
摘要:
容器提供了与平台隔离的运行环境支持 容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的“容器”中。 这样,容器内的软件或应用就可以在任何环境和任何基础架构上一致地移动和运行,不受该环境或基础架构的操作系统影响。容器就像是一个气泡(或者是应用周围的计算环境) 阅读全文
摘要:
0 引言 时代演进,技术也随之发展。到今天,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈大、愈来愈多的APP也在不断地、持续地挑战着每一个移动端研发人员的知识深度,而我们的移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么移 阅读全文
摘要:
文章目录 @[TOC] 1.引入 1.1 标准I/O 1.2直接I/O 1.3 mmap1.引入让我们先看一下Linux系统下IO结构模型 从图中可以看到标准 I/O、mmap、直接 I/O 这三种 I/O 方式在流程上的差异1.1 标准I/O 大多数文件系统的默认I/O操作都是标准I/O。在Lin 阅读全文