自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极客学伟的技术分享社区

不积跬步,无以至千里;不积小流,无以成江海。

原创 MySQL - 基础语法

MySQL - 基础语法 SQL Structured Query Language:结构化查询语言 定义了了操作所有关系型数据库的规则 SQL 通用语法 SQL 语句可以单行或多行书写,以分号结尾 可使用空格和缩进来增强语句的可读性 MySQL 数据库的SQL语句不区分大小写,关键字建议大写 ...

2020-07-02 06:17:11 2043 1

原创 Java基础课 - 笔记(二)

Java - 基础语法二 ① 常用 API Object 类 java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。 常用 API: public String toString(): 返回该对...

2020-03-31 22:00:59 167 0

原创 Java基础课 - 笔记(一)

Java - 基础语法一 ① 基础语法 JVM(Java Virtual Machine): Java 虚拟机,简称 JVM,是运行所有 Java 程序的假想计算机,是 Java 程序的运行环境,是 Java 最具吸引力的特性之一。我们编写的 Java 程序,都运行在 JVM 之上。 JRE(J...

2020-03-28 22:10:33 475 0

原创 iOS - 类与对象

iOS - 类与对象 类方法 OC 中类的方法只有实例方法和静态方法两种: @interface Controller: NSObject /// 静态方法 + (void)thisIsAStaticMethod; /// 实例方法 - (void)thisIsAnInstanceMethod;...

2020-01-02 22:55:05 269 0

原创 内存管理、磁盘和文件拾遗

内存管理、磁盘和文件拾遗 Part1. 内存管理 一个程序的可执行文件在内存中的结果,从大的角度可以分为两个部分:只读部分和可读写部分。只读部分包括程序代码(.text)和程序中的常量(.rodata)。 可读写部分(变量)大致可分为下面几个部分: .data:初始化了的全局变量和静态变量 .b...

2020-01-01 23:33:45 553 0

原创 并发技术、进程、线程和锁拾遗

并发技术、进程、线程和锁拾遗 Part1. 多任务 计算机发展起初,CPU 资源十分昂贵,如果让 CPU 只能运行一个程序那么当 CPU 空闲下来(例如等待 I/O 时),CPU 资源就会被浪费,为了使 CPU 资源得到更好的利用,先驱编写了一个监控程序,如果发现某个程序暂时无需使用 CPU 时...

2019-12-31 22:30:40 723 0

原创 体系结构与操作系统拾遗

体系结构与操作系统拾遗 Part1. 体系结构基础 1. 冯·诺依曼体系结构 计算机处理的数据和指令一律用二进制数表示 顺序执行程序 计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行...

2019-12-28 19:23:01 696 1

原创 网络拾遗

网络拾遗 Part.1 - HTTP 协议 1. HTTP 特性 HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80。 HTTP 是无连接无状态的。 2. HTTP 报文 HTTP 协议是以 ASCII 码进行传输的,建立在 TCP/IP 协议上的应用层规范。规...

2019-12-25 10:33:46 358 1

原创 《Objective-C高级编程 iOS与OS X多线程和内存管理》读书笔记

iOS高级编程-iOS与OS+X多线程和内存管理 第一章:自动引用计数 自己生成的对象,自己所持有。 非自己生成的对象,自己也能持有 不再需要自己持有的对象时释放 非自己持有的对象无法释放 对象操作 Objective-C方法 生成并持有对象 alloc/new/copy/mu...

2019-09-21 14:40:26 221 0

原创 《图解HTTP》读书笔记

《图解HTTP》读书笔记 第一章:了解Web及网路基础 TCP/IP协议 把互联网想关联的协议集合起来总称为TCP/IP协议 TCP/IP 协议族按层次分为:应用层,传输层,网络层,数据链路层 应用层 决定了向用户提供应用服务时通信的活动。 TCP/IP 协议族内预存了各类通用的应用服务,比如:F...

2019-08-27 20:47:10 8045 8

原创 iOS进阶 - 如何制定一套适合自己团队的 iOS 编码规范?

iOS进阶 - 如何制定一套适合自己团队的 iOS 编码规范? 统一的编码规范,能有限的避免团队成员由于代码风格不一致而导致的相互认同感缺失的问题。 好的代码规范,需要从如下八个方面进行约束:常量、变量、属性、条件语句、循环语句、函数、类、分类 常量 在常量的使用上,建议尽量使用类型常量,而不是宏...

2019-07-08 12:41:58 398 0

原创 iOS进阶 - iOS如何监控崩溃

iOS进阶 - iOS如何监控崩溃 几种常见的崩溃 数组越界;给数组添加 nil; 多线程问题: 在子线程更新UI, 不同线程操作同一个数据。 主线程无响应:主线程超过系统规定时间无响应就会被 Watchdog 杀掉。 野指针:指针指向一个已删除的内存区域会出现野指针崩溃。 KVO 问题 后台任...

2019-06-03 22:44:31 1609 1

原创 iOS进阶 - 包大小:如何从资源和代码层面实现全方位瘦身

iOS进阶 - 包大小:如何从资源和代码层面实现全方位瘦身 官方 App Thinning App Thinning 是由苹果公司推出的一项可以改善 App 下载进程的新技术,主要为了解决用户下载 App 耗费过高流量的问题,同时还可以节省用户 iOS 设备的存储空间。 App Thinning ...

2019-06-03 19:31:50 790 0

原创 iOS进阶 - 链接器:符号是怎么绑定到地址上的?

iOS进阶 - 链接器:符号是怎么绑定到地址上的? 链接器的作用就是将符号绑定到地址上。 iOS 为什么使用编译器 iOS 编写的代码是先使用编译器将代码编译成机器码,然后在 CPU 上执行机器码,直接在 CPU 上执行机器码,之所以不用解释器运行代码是因为Apple希望 iPhone 的执行效率...

2019-05-31 15:23:09 748 0

原创 iOS进阶 - 组件化架构设计

iOS进阶 - 组件化设计探究 组件化架构的设计需要解决三个主要问题: 模块粒度如何划分 如何分层 多团队如何协作 模块粒度如何划分 模块粒度划分需遵循五个原则: 单一功能原则:对象功能要单一,不要在一个对象里添加很多功能 开闭原则:扩展是开放的,修改是封闭的 里式替换原则:子类对象时可以替...

2019-05-29 15:20:05 255 0

原创 iOS进阶 - AutoLayout 是如何自动布局的,性能如何?

iOS进阶 - AutoLayout 是如何自动布局的,性能如何? AutoLayout 是iOS6引入到系统中的,在 WWDC2018 中苹果介绍 iOS 12 将大幅提高 AutoLayout 的性能。 AutoLayout 的生命周期 AutoLayout 不只有布局算法 Cassow...

2019-05-28 19:23:09 1421 0

原创 iOS进阶 - App启动优化

iOS进阶 - App启动优化 App启动三个阶段 main() 函数执行前 main() 函数执行后 首屏渲染完成后 main() 函数执行前 加载可执行文件(App的 .o 文件的集合) 加载动态链接库,进行 rebase 指针调整和 bind 符号绑定 Objc 运行时的初始处理,包括...

2019-05-17 15:12:33 294 0

原创 iOS - 最易用的数据库工具类 `XWDatabase` 开源

iOS - 最易用的数据库工具类 XWDatabase 开源 XWDatabase 将数据库操作简化到难以想象的程度,你甚至不需要知道数据库的存在,当然更不需要写 SQL 语句,你只需要直接操作模型即可对模型进行增删改查的操作,她会根据模型动态在数据库中创建以当前模型类名为名称的数据库表,当然你也...

2018-12-14 12:30:27 668 0

原创 iOS底层原理 - 常驻线程

iOS底层原理 - 常驻线程 在 AFN 2.0 时代,会经常看到 AFN 创建一个常驻线程的方式: 0️⃣ AFN 2.0 时代的常驻线程 + (NSThread *)networkRequestThread { static NSThread *_networkRequestThrea...

2018-10-16 20:05:01 1109 0

原创 iOS底层原理-KVO本质探究

iOS底层原理-KVO本质探究 先说结论,KVO 的本质: 在对一个已知类的某个属性进行 KVO 监听时,系统会在运行时动态创建一个已知类的子类 NSKVONotifying_某类名,并在子类实现 setter 方法,set方法实现内部会顺序调用willChangeValueForKey 方法、原...

2018-10-11 17:51:54 444 0

原创 《Effective Objective-C 2.0》读书/实战笔记 三

《Effective Objective-C 2.0》读书/实战笔记 三 《Effective Objective-C 2.0》读书/实战笔记 一 《Effective Objective-C 2.0》读书/实战笔记 二 第6章:块与大中枢派发 第37条:理...

2018-09-12 23:50:59 465 0

原创 《效率 - Mac 高效开发》

效率 - Mac 高效开发 1.安装 Mac 包管理工具 HomeBrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&qu...

2018-09-07 19:17:07 940 0

原创 《Effective Objective-C 2.0》读书/实战笔记二

《Effective Objective-C 2.0》读书/实战笔记 二 第3章:接口与API设计 第15条:用前缀避免命名空间冲突 选择与你的公司,应用程序或两者皆有关联之名称作为类名的前缀,并在所有代码中均使用这一前缀 若自己所开发的程序库中用到了第三方库,则应为其...

2018-08-05 06:32:03 728 0

原创 《Effective Objective-C 2.0》读书:实战笔记一

《Effective Objective-C 2.0》读书/实战笔记 一 第1章:熟悉Objective-C ���� 第1条:了解 Objective-C 语言的起源 Objective-C 为C语言添加了面向对象的特性,是其超级。Objective-C 说那个动态绑定的消息结构...

2018-07-31 22:22:17 1435 0

原创 iOS 一行代码集成微信浮窗功能

XWFloatingWindow 一行代码集成微信浮窗功能 1. 效果 2. 使用 在需要浮窗展示的地方调用: // self 为需要浮窗展示的控制器 [XWFloatingWindowView showWithViewController:self]; 现在你的控制器...

2018-07-27 18:04:43 3055 0

原创 算法-判断一个字符串是否是ip地址?

算法-判断一个字符串是否是ip地址? 如何判断一个IP是否是合法的IP,如输入:192.168.1.0,输出:合法;输入192.168.1.1222,输出:非法。 首先明确IP的格式:(1~255).(0~255).(0~255).(0~255) 下面使用两种不同的方式进行验证:方案一为字符...

2018-07-16 09:53:19 6260 1

原创 iOS - 多线程的锁

iOS 中常见的几种锁介绍-示例 常用的各类锁性能比较 文中Demo 均实现在 XWInterviewDemos 1. iOS中的互斥锁 在编程中,引入对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有...

2018-07-15 11:21:37 592 0

原创 iOS-性能优化深入探究

上图是几种时间复杂度的关系,性能优化一定程度上是为了降低程序执行效率减低时间复杂度。 如下是几种时间复杂度的实例: O(1) return array[index] == value; O(n) for (int i = 0, i < n, i++) { ...

2018-07-03 17:28:39 2641 1

原创 iOS底层原理 - Block本质探究

iOS底层原理 - Block本质探究 本质 block 本质是一个OC对象,也存在 isa 指针。或者说Block 是封装了函数调用和函数调用环境的OC对象。 1.底层实现 编写一段最简单的OC代码顶一个block,代码如: int main(int argc, const...

2018-06-29 11:20:10 838 0

原创 数据结构与算法 - 单链表逆转

数据结构与算法 - 单链表逆转 单链表逆转输出 方案一:head 作为已知首节点,最后节点指向null, 使用三个指针便利链表,逐个节点进行反转 实现思路图解: 实现代码: struct ActList { ActList * next; }; Act...

2018-06-27 09:25:57 3131 0

原创 iOS 手势操作和事件传递响应链

iOS 手势操作和事件传递响应链 概述 iOS中的事件可以分为3大类型:触摸事件、加速计事件、远程控制事件。 在我们点击屏幕的时候,iphone OS获取到了用户进行了“单击”这一行为,操作系统把包含这些点击事件的信息包装成UITouch和UIEvent形式的实例,然后找到当前运行的程序...

2018-06-05 17:59:29 4506 1

原创 iOS底层原理探究- NSObject 内存大小

iOS底层原理探究- NSObject 内存大小 面向对象的Objective-C 我们平时写的 OC 代码底层实现为 C/C++ 代码,因为 Runtime 让 OC 具备了面向对象的特点,而后底层的 C/C++ 会转换成底层的 汇编 代码,最终被被解析成计算机能识别的 机器语言 。而 ...

2018-06-02 13:39:02 1181 0

原创 Swift-Realm数据库的使用详解

Swift-Realm数据库的使用详解 概述 Realm 是一个跨平台的移动数据库引擎,其性能要优于 Core Data 和 FMDB - 移动端数据库性能比较, 我们可以在 Android 端 realm-java,iOS端:Realm-Cocoa,同时支持 OC 和 Swift两种...

2018-05-31 14:47:43 5195 2

原创 iOS开发之 Autolayout 详解

iOS开发之 Autolayout 详解 1. 概述 Autolayout 是 Apple 自 iOS6 开始引入的旨在解决不同屏幕之间布局适配的技术 苹果官方推荐开发者使用 Autolayout 进行UI界面的布局 Autolayout 有两个核心概念:1. 参照。 2. 约束 使...

2018-05-24 16:55:11 2645 1

原创 iOS CALayer 详解

iOS CALayer 详解 1. 概述 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会...

2018-05-18 14:56:39 688 0

原创 iOS 多线程详解

iOS 多线程详解 Slogan : 可能是最通俗易懂的 iOS多线程 详细解析文章 1. 基础概念 1.1 进程 进程是计算机中已运行程序的实体,是线程的容器维基百科-进程。每个进程之间是相互独立的,每个进程均运行在器专用且收保护的内存空间内。 把工厂作为一个系统,进程类似...

2018-05-15 17:56:46 656 0

原创 iOS 自动归解档

iOS 数据库工具类分享 基于 对 FMDB 框架的封装,实现通过模型操作数据库的功能,不需要手写SQL语句,只要传入一个Model,框架会自动将Model内数据保存到指定数据库中, 并且会自动创建数据库,自动创建模型对应的表。 项目地址 XWSqliteTool 功能列表 根据 ...

2018-05-11 15:55:50 769 0

原创 iOS - 基础集合类

iOS基础集合类 NSArray 排序 - (NSEnumerator<ObjectType> *)objectEnumerator; - (NSEnumerator<ObjectType> *)reverseObjectE...

2018-05-11 15:11:52 401 0

原创 iOS - Runloop 详解

Runloop 1. 概述 一般来说,一个线程只能执行一个任务,执行完就会退出,如果我们需要一种机制,让线程能随时处理时间但并不退出,那么 RunLoop 就是这样的一个机制。Runloop是事件接收和分发机制的一个实现。 RunLoop实际上是一个对象,这个对象在循环中用来处理程序运行...

2018-05-09 17:40:38 1400 0

原创 iOS - Runtime 详解

Runtime 0. 概述 Objective-C Runtime 使得C具有了面向对象的能力,在程序运行时创建,检查,修改类,对象和它们的方法。Runtime 是 C和汇编写的,这里http://www.opensource.apple.com/source/objc4/可以下载Appl...

2018-05-04 16:35:59 362 0

提示
确定要删除当前文章?
取消 删除