自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极客学伟的技术分享社区

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

  • 博客(473)
  • 资源 (1)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java基础课-MySQL语法

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

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

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

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

2020-03-31 22:00:59 196

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

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

2020-03-28 22:10:33 515

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

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

2020-01-01 23:33:45 575

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

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

2019-12-31 22:30:40 732

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

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

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

原创 网络拾遗

网络拾遗Part.1 - HTTP 协议1. HTTP 特性HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80。HTTP 是无连接无状态的。2. HTTP 报文HTTP 协议是以 ASCII 码进行传输的,建立在 TCP/IP 协议上的应用层规范。规范把 HTTP 分为三个部分:状态行、请求头、请求主体。HTTP 定义了与服务器交互的不同方法,常用的...

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

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

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

2019-09-21 14:40:26 238

原创 《图解HTTP》读书笔记

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

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

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

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

2019-07-08 12:41:58 409

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

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

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

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

iOS进阶 - 包大小:如何从资源和代码层面实现全方位瘦身官方 App ThinningApp Thinning 是由苹果公司推出的一项可以改善 App 下载进程的新技术,主要为了解决用户下载 App 耗费过高流量的问题,同时还可以节省用户 iOS 设备的存储空间。App Thinning 会专门针对不同的设备来选择只适用于当前设备的内容以供下载。比如,iPhone 6 只会下载 @2x 分...

2019-06-03 19:31:50 850

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

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

2019-05-31 15:23:09 880

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

iOS进阶 - 组件化设计探究组件化架构的设计需要解决三个主要问题:模块粒度如何划分如何分层多团队如何协作模块粒度如何划分模块粒度划分需遵循五个原则:单一功能原则:对象功能要单一,不要在一个对象里添加很多功能开闭原则:扩展是开放的,修改是封闭的里式替换原则:子类对象时可以替代基类对象的接口隔离原则:接口的用途要单一,不要在一个接口上根据不同入参实现多个功能依赖反转原则:...

2019-05-29 15:20:05 279

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

iOS进阶 - AutoLayout 是如何自动布局的,性能如何?AutoLayout 是iOS6引入到系统中的,在 WWDC2018 中苹果介绍 iOS 12 将大幅提高 AutoLayout 的性能。AutoLayout 的生命周期AutoLayout 不只有布局算法 Cassoway,还包含了布局在运行时的生命周期等一整套布局引擎系统,用于统一管理布局的创建、更新和销毁。这一整套...

2019-05-28 19:23:09 1493

原创 iOS进阶 - App启动优化

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

2019-05-17 15:12:33 313

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

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

2018-12-14 12:30:27 687

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

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

2018-10-16 20:05:01 1153

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

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

2018-10-11 17:51:54 459

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

《Effective Objective-C 2.0》读书/实战笔记 三《Effective Objective-C 2.0》读书/实战笔记 一《Effective Objective-C 2.0》读书/实战笔记 二第6章:块与大中枢派发第37条:理解“块”这一概念块 是C、C++、Objective-C 中的语法闭包块 可接受参数,也可返回...

2018-09-12 23:50:59 478

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

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

2018-09-07 19:17:07 974

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

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

2018-08-05 06:32:03 761

原创 《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 1623

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

XWFloatingWindow一行代码集成微信浮窗功能1. 效果2. 使用在需要浮窗展示的地方调用:// self 为需要浮窗展示的控制器[XWFloatingWindowView showWithViewController:self];现在你的控制器就已经集成微信浮窗功能了��其他方法1. 当然你可能需要知道当前控制器是否在浮窗内展示...

2018-07-27 18:04:43 3230

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

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

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

原创 iOS - 多线程的锁

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

2018-07-15 11:21:37 608

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

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

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

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

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

2018-06-29 11:20:10 884

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

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

2018-06-27 09:25:57 3283

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

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

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

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

iOS底层原理探究- NSObject 内存大小面向对象的Objective-C我们平时写的 OC 代码底层实现为 C/C++ 代码,因为 Runtime 让 OC 具备了面向对象的特点,而后底层的 C/C++ 会转换成底层的 汇编 代码,最终被被解析成计算机能识别的 机器语言 。而 OC 中的类,正是正是基于 C/C++ 的结构体实现的。我们可以通过 clang 命令将我们平时所写...

2018-06-02 13:39:02 1222

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

Swift-Realm数据库的使用详解概述Realm 是一个跨平台的移动数据库引擎,其性能要优于 Core Data 和 FMDB - 移动端数据库性能比较, 我们可以在 Android 端 realm-java,iOS端:Realm-Cocoa,同时支持 OC 和 Swift两种语言开发。其使用简单,免费,性能优异,跨平台的特点广受程序员GG喜爱。Realm 中文文档...

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

原创 iOS开发之 Autolayout 详解

iOS开发之 Autolayout 详解1. 概述Autolayout 是 Apple 自 iOS6 开始引入的旨在解决不同屏幕之间布局适配的技术苹果官方推荐开发者使用 Autolayout 进行UI界面的布局Autolayout 有两个核心概念:1. 参照。 2. 约束使用Autolayout的注意点: 添加约束之前需要保证控件已被添加到父控件中不需要再给View设置...

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

原创 iOS CALayer 详解

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

2018-05-18 14:56:39 719

原创 iOS 多线程详解

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

2018-05-15 17:56:46 680

原创 iOS 自动归解档

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

2018-05-11 15:55:50 783

原创 iOS - 基础集合类

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

2018-05-11 15:11:52 408

原创 iOS - Runloop 详解

Runloop1. 概述一般来说,一个线程只能执行一个任务,执行完就会退出,如果我们需要一种机制,让线程能随时处理时间但并不退出,那么 RunLoop 就是这样的一个机制。Runloop是事件接收和分发机制的一个实现。RunLoop实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的...

2018-05-09 17:40:38 1474

原创 iOS - Runtime 详解

Runtime0. 概述Objective-C Runtime 使得C具有了面向对象的能力,在程序运行时创建,检查,修改类,对象和它们的方法。Runtime 是 C和汇编写的,这里http://www.opensource.apple.com/source/objc4/可以下载Apple维护的开源代码,GUN也有一个开源的Runtime版本,它们都努力保持一致。Apple官方的runt...

2018-05-04 16:35:59 374

原创 "如何成为有效学习的高手" 学习笔记

<<如何成为有效学习的高手>> 学习笔记前言高效学习的定义是找到适合自己的学习方法,在最短的时间里能够集中注意力,以解决生活或工作中的一个任务为目的着手学习. 需要勤加练习,必要的时候要向名师求助! 这其中有七个关键点: 1. 适合自己 2. 学习方法 3. 最短时间 4. 注意力 5. 解决任务 6. 设定目标 7. 名师1.找到适合自...

2018-03-22 06:05:53 4458 5

弹出视图源代码

类似于Tumblr发布按钮的弹出视图

2016-03-30

极客学伟的留言板

发表于 2020-01-02 最后回复 2020-01-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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