上一页 1 2 3 4 5 6 7 8 9 10 ··· 102 下一页
摘要: 对象分为主动对象和被动对象,主动对象内部包含一个线程,可以自动完成动作或改变状态,而一般的被动对象只能通过被其他对象调用才有所作为。在多线程程序中,经常把一个线程封装到主动对象里面。 Active Object 设计模式的本质是解耦合方法的调用 (Method invocation) 与方法的执行 阅读全文
posted @ 2022-04-26 22:16 zzfx 阅读(338) 评论(0) 推荐(0)
摘要: Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分。而管程和信号量是等价的,所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程利用OOP的封装特性解决了信号量在工程实践上的复杂性问题,因 阅读全文
posted @ 2022-04-26 16:25 zzfx 阅读(1788) 评论(0) 推荐(0)
摘要: 元编程:面向元类型(反射)、元信息(注解)和模版类型的编程 阅读全文
posted @ 2022-04-25 14:55 zzfx 阅读(47) 评论(0) 推荐(0)
摘要: 多态这个概念在c++和java这种强类型语言中比较强调,js,python这种弱类型语言天生支持多态。 意味着强类型语言的多态是和继承结合在一起的,多态的前提是继承。 在js和python这种弱类型语言中,多态是天生的。在Python和js中关注的不是传入对象是否是xx的子类,而是传入的对象是否有这 阅读全文
posted @ 2022-04-24 22:51 zzfx 阅读(85) 评论(0) 推荐(0)
摘要: “关键字”是对 C 编译器具有特殊含义的单词。 阅读全文
posted @ 2022-04-20 13:12 zzfx 阅读(81) 评论(0) 推荐(0)
摘要: 这样重新编译时只需要编译有更改的单元。这样在开发的时候,能降低编译的时间。 软件架构设计的目标就是分解软件系统,降低软件系统的复杂性。如果是一个多人协作的软件,大家都在一个文件里完成任务,那么无疑会大大增加设计难度和协作成本。这也是多文件编译“多编译单元”在软件工程中的巨大优势。 高内聚低耦合是判断 阅读全文
posted @ 2022-04-20 13:06 zzfx 阅读(38) 评论(0) 推荐(0)
摘要: 编译单元,顾名思义,就是一次编译的单位,C/C++语言中编译器都是以被做了include递归展开的cpp文件为编译单位,这也就是最小的编译单位了。 换句话说,你可以让编译器编译一个cpp源文件,而编译器会自动处理它所包含的内容,最终把它所包含的内容以及它自身的内容编译成一个目标文件。 你无法让编译器 阅读全文
posted @ 2022-04-20 12:06 zzfx 阅读(1198) 评论(0) 推荐(1)
摘要: 代理:接口一致、创建混入(替代)、消息转发 阅读全文
posted @ 2022-04-01 15:26 zzfx 阅读(30) 评论(0) 推荐(0)
摘要: 工程是材料清单(包含材料用途),工程师负责将材料组合到一起 阅读全文
posted @ 2022-03-31 14:50 zzfx 阅读(50) 评论(0) 推荐(0)
摘要: 只有理解了部分是怎么组合到整体上的,才能理解元素的真正功能 阅读全文
posted @ 2022-03-22 23:23 zzfx 阅读(15) 评论(0) 推荐(0)
摘要: aop收口要寻找最窄的切面 阅读全文
posted @ 2022-03-22 15:12 zzfx 阅读(12) 评论(0) 推荐(0)
摘要: 前言 苹果提供了 URLProtocol 让开发者可以介入 URL Loading System 做一些定制操作。 注册 protocol 注册 protocol 有两种方式 [NSURLProtocol registerClass:protocol.class] 手动修改 protocolClas 阅读全文
posted @ 2022-03-17 21:20 zzfx 阅读(398) 评论(0) 推荐(0)
摘要: 强类型语言 强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。 强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型安全的语言,Java是静态语言,是强类型定义语言,也是类型安全的语言。 强类型 阅读全文
posted @ 2022-03-11 19:31 zzfx 阅读(750) 评论(0) 推荐(0)
摘要: https://blog.csdn.net/blomule/article/details/43058111 在这个非常依赖第三方库完成项目或产品的时代,必须要关注好依赖间的版本是否正确。 背景 AbstractMethodError异常对于我来说还是比较不常遇见的,最近有幸遇到,并侥幸的解决了,在 阅读全文
posted @ 2022-03-09 21:09 zzfx 阅读(1077) 评论(0) 推荐(0)
摘要: 1. 前言 从 WebView 开始加载一条请求,到页面完整呈现这一过程发生了什么?无论是做 WebView 性能优化还是异常问题监控与排查,我们都离不开对这一问题的思考与探索。 在本篇文章中,我们将在上一篇《深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析》的基础上,结合 阅读全文
posted @ 2022-03-07 15:56 zzfx 阅读(1109) 评论(0) 推荐(0)
摘要: 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 阅读全文
posted @ 2022-02-17 19:52 zzfx 阅读(67) 评论(0) 推荐(0)
摘要: 本文最初成稿于 2016 年 5 月初,后于 2020 年 2 月中进行了较大的更新和修订,后续会持续保持更新。 什么是动态追踪 动态追踪的优点 DTrace 与 SystemTap SystemTap 在生产上的应用 火焰图 方法论 知识就是力量 开源与调试符号 Linux 内核的支持 硬件追踪 阅读全文
posted @ 2022-01-27 20:40 zzfx 阅读(1064) 评论(0) 推荐(1)
摘要: 前言 在iOS日常开发中,对某些方法进行hook是很常见的操作。最常见的是使用Category在+load中进行方法swizzle,它是针对类的,会改变这个类所有实例的行为。但是有时候我们只想针对单个实例进行hook,这种方法就显得无力了。而Aspects框架可以搞定这个问题。 它的原理是通过Run 阅读全文
posted @ 2021-11-29 10:37 zzfx 阅读(586) 评论(0) 推荐(0)
摘要: 容器提供了与平台隔离的运行环境支持 容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的“容器”中。 这样,容器内的软件或应用就可以在任何环境和任何基础架构上一致地移动和运行,不受该环境或基础架构的操作系统影响。容器就像是一个气泡(或者是应用周围的计算环境) 阅读全文
posted @ 2021-11-17 19:14 zzfx 阅读(1585) 评论(0) 推荐(0)
摘要: 0 引言 时代演进,技术也随之发展。到今天,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈大、愈来愈多的APP也在不断地、持续地挑战着每一个移动端研发人员的知识深度,而我们的移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么移 阅读全文
posted @ 2021-11-16 20:03 zzfx 阅读(605) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 102 下一页