自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风中的劲草

纯属交流

  • 博客(123)
  • 资源 (64)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS 内存管理

文章目录 一、NSProxy 1、作用: 用于消息转发 2、定时器的细节 二、内存布局 三、标记指针(Tagged pointer) 四、OC 对象的内存管理 1、内存管理 2、copy、mutableCopy 关键字 3、引用计数 4、weak 指针 5、autorelease 一、 NSProxy1、作用 : 用于消息转发NSProxy没有父类,和 NSObject 算是同一级别的存在

2021-04-11 20:30:22 458

原创 iOS Runtime

文章目录 一、简介 二、isa 指针一、简介OC 是一门动态性比较强的语言,跟 C 和 C++ 有很大的不同,OC 动态性都是由 runtime的 API 来支撑的。runtime的代码是开源的。源码由 C、C++、汇编语言编写的。下载链接二、isa 指针要想学习 runtime,首先要了解他一些底层常用的数据结构,例如,isa指针。在arm64之前,isa就是一个普通的指针,存储这 class、meta-class对象的内存地址。从 arm64架构开始,对 isa进行优化,变成一个共用体

2021-04-10 00:54:38 461 1

原创 iOS 线程安全

文章目录 一、常见的多线程方案 1、pthread 2、NSThread 3、GCD 4、NSOperation 二、常见混淆的术语 1、同步异步 2、并发串行 三、线程安全 1、资源共享 2、生产消费模式 3、典型线程安全案例 4、线程安全解决方案 四、多种线程同步方案的比较 1、性能对比 2、自旋锁、互斥锁对比 五、关于 atomic 六、读写安全 1、pthread_rwlock_t 2、dispach_barrier_async 一、常见的

2021-04-07 19:38:03 1101 3

原创 iOS 卡顿

文章目录 一、CPU 和 GPU 1、CPU 2、GPU 二、卡顿 1、屏幕成像原理 2、卡顿产生原因 3、卡顿解决思路 4、卡顿解决方案 三、离屏渲染 1、什么是离屏渲染 2、离屏渲染消耗性能 3、如何触发离屏渲染 4、如何检测离屏渲染 四、卡顿检测 一、CPU 和 GPU在屏幕成像过程中,CPU 和 GPU 起着至关重要的作用1、CPU(中央处理器)负责: 对象的创建(alloc)和销毁(release)、对象属性的调整

2021-04-07 12:12:43 539

原创 iOS RunLoop

文章目录 一、RunLoop 基础概念 1、什么是 RunLoop 2、RunLoop 应用范畴 3、RunLoop 的作用 二、RunLoop 对象 1、获取 RunLoop 2、RunLoop 和线程的关系 3、RunLoop 相关的类 4、RuLoop 底层数据结构 5、RunLoop 运行逻辑 6、RunLoop 休眠 三、RunLoop的实际应用 1、线程保活 2、定时器失效 3、卡顿检测 4、性能优化

2021-03-31 22:41:45 437

原创 iOS Category

文章目录 一、基本介绍 二、Category 和 Extension 的区别 三、数据结构 四、运行时合并 五、+ (void)load 方法 六、+ (void)initialize 方法 七、总结一、基本介绍分类, Apple 官方文档是这么介绍的You use categories to define additional methods of an existing class—even one whose source code is unavailab

2021-03-29 21:50:41 223

原创 iOS 对象

文章目录 一、实例对象的本质 1、OC 实例对象在内存中是结构体 2、计算实例对象所占内存 2.1 class_getInstanceSize(Class cls) 函数 2.2 malloc_size(obj) 函数 2.3 sizeof(Type) 运算符 2.4 总结 二、对象的分类 1、实例对象(instance) 2、类对象(class) 3、元类对象(meta-class) 三、isa 和 superclass 指针 1

2021-03-28 17:12:18 282

原创 iOS 匿名函数

文章目录一、匿名函数基本知识1、C 语言函数的定义2、GO 语言中匿名函数二、OC 中的匿名函数1、Block 定义2、Block 类型的变量3、Block 作为参数传递4、Block 作为返回值三、Block 实现1、实质2、...

2020-11-16 20:02:00 947

原创 iOS KVC实现原理

文章目录 一、KVC在iOS中的定义 二、常用的方法说明 三、赋值实现原理 四、取值实现原理一、KVC在iOS中的定义 KVC的全称为keyValueCoding,简称键值编码。是对NSObjcet的扩展,分类名为 : NSKeyValueCoding 我们经常用KVC或者setter方法来触发KVO,实现键值变化监听,实现一些功能。二、常用的方法说明 // 1、

2018-05-05 20:23:35 4756

原创 iOS hitTest

文章目录 一、什么是hitTest 二、hitTest的调用顺序 三、事件的传递顺序 四、hitTest的实现思路 五、hitTest的运用场景 1、事件穿透 2、子视图超出父视图范围一、什么是hitTest- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event...

2017-11-01 14:03:06 15370 1

原创 iOS 消息转发机制

文章目录 一、消息发送概述 二、runtime 三次 拯救机会 1、Method resolution 2、Fast fowarding 3、Normal forwarding一、消息概述在编码过程中,我们经常会遇到类似 unrecognized selector 程序 crash的异常。可以总结到如下场景:1、方法只是声明了,对象直接调用 2、对象 使用 ...

2017-10-31 11:30:45 3435

原创 iOS Notification实现原理

目录 一、通知的基本使用 1、基本概念 2、什么情况下使用通知 3、如何使用通知 4、使用通知需要注意哪些细节 二、通知的实现原理 1、概述 2、实现一、通知的基本使用1、基本概念 NSNotification 是iOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值、回调等地方应用很广。在iOS中,NSN...

2017-07-26 14:31:36 7736 1

原创 iOS KVO的使用和原理实现

文章目录 一、KVC(键值编码 key-value-coding) 1、概念 2、简单使用 1> 注册观察者,添加观察对象属性 2> 实现回调方法 3> 移除观察者 4> 测试触发kvo 3、注意细节 二、KVO(键值监听 key-value-observer)...

2017-07-24 17:04:38 3089

原创 GO 接口类型

一、接口 3.1 声明 3.2 动态类型 3.3 类型判断 3.4 实现二、反射 4.1 方法和类型的反射 4.2 通过反射修改和设置值 4.3 反射结构 4.4 Printf 和 反射

2020-08-24 11:15:47 746

原创 GO 面向对象之结构体和方法

文章目录一、结构体 1.1 如何定义结构体 1.2 如何创建结构体 1.3 递归结构体 1.4 结构体转换 1.5 访问结构体中的成员 1.6 结构体作为参数 1.7 带标签的结构体 1.8 匿名字段 1.9 内嵌结构体 1.10 命名冲突 1.11 值语义 和 引用语义 1.12 二叉树二、方法 2.1 方法声明 2.2 方法和函数的区别 2.3 如何扩展任意类型的方法 2.4 工厂模式 2.5 方法

2020-07-02 23:50:30 959 3

原创 iOS 14.0 beta 沙盒缓存策略变化

一、问题描述 iOS 14.0 beta 暴露了开发者存储在沙盒 Document 目录下的所有缓存数据二、如何安装 iOS 14.0 beta 版本 2.1 安装 Profile 文件 2.2 检查更新 2.3 iOS 14 支持设备 6s 以上三、如何重现问题 QQ音乐、CSDN客户端的表现截图 正常的 例如:新浪微博 截图四、如何解决问题 4.1 问题的产生 4.2 问题解决一、问题描述偶然间更新了 iOS 14.0 beta 版

2020-06-28 16:54:17 817

原创 GO 函数基础知识

一、函数1、声明2、参数3、返回值4、函数作为参数5、函数做为类型6、可变参数7、匿名函数与闭包8、递归函数9、参数传递机制10、defer11、error13、panic14、recover

2020-06-26 23:21:49 790

原创 GO macOS下使用GoLand安装和使用

文章目录一、GoLand的下载和安装 1、下载安装 2、配置 GOOR 和 GOPATH 二、如何创建项目三、如何打开项目四、破解GoLand一、GoLand的下载和安装1、下载安装Goland下载地址:https://www.jetbrains.com/go/安装成功后在Application中出现如下应用2、 配置 GOOR 和 GOPATH点击打开 Go...

2020-06-18 10:30:18 8993

原创 GO macOS下安装包下载和环境变量配置

文章目录一、 GO 安装包下载地址二、环境变量配置 2.1 GOROOT 2.2 GOPATH 2.3 PATH三、使用 GO 环境 3.1 go version 3.2 go env 3.3 go build 和 go run 3.4 go help一、GO 安装包下载地址https://studygolang....

2020-06-18 10:12:27 993

原创 GO 用记事本编写第一个GO程序

文章目录 go build go run一、新建记事本输入如下package mainimport "fmt"func main(){ fmt.Println("Hello Word")}command+s 保存,文件名为HelloWorld.go。保存到桌面。二、编译并执行1、编译cd 到 HelloWorld.go文件所在目录go build Hel...

2020-06-18 10:12:10 537

原创 GO 基础知识

文章目录 一、常量和变量 1、常量 2、变量 二、基本数据类型 1、整型 2、浮点 3、布尔型 4、复数 5、字符串 6、字符传与其他类型转换 三、基本数据类型扩展 1、强制类型转换 2、自定义类型 3、类型别名 4、指针 四、流程控制语句 1、条件语句 2、选择语句 3、循环语句 4、延迟语句 5、标签语句(break、continue、goto)...

2020-06-18 10:10:09 579

原创 GO 复合数据类型

一、数组1、声明2、访问、修改3、作为参数传递二、切片1、创建2、增3、删4、改5、查三、映射1、创建2、增3、删4、改5、查

2020-06-18 10:09:34 274

原创 Java Map 接口

文章目录 一、Map的基本概念 1、基本概念 2、特点 3、常用的方法二、Map集合的两种取出方式1、Set<k> keySet 2、 Set<Map.Entry<k,v>> entrySetMap.Entry三、 Map常见的子类Map |-- HashTable: 底层是哈希表数据结构,不可以存入null键...

2019-07-20 23:36:44 263

原创 iOS 数组与集合

文章目录 一、集合和数组的对比 1、集合的概念 2、集合的使用优点 3、对比集合和数组 二、不可变数组和可变数组的关系 1、数组的可变形式原理 2、NSArray和NSMutableArray的本质区别一、集合和数组的对比不仅仅是iOS开发的Objective-C和Swift语言,很多其他的开发语言都有集合的概念,数组和字典以及Set是比较常见的方式。关于集合的数...

2019-07-06 23:49:11 1883

原创 Java 泛型方法/接口、泛型限定

文章目录

2019-03-30 21:40:50 52238 19

原创 Java 泛型类

文章目录 一、泛型类的由来 当类中要操作的引用数据类型不确定的时候, 早期定义Object来完成扩展 现在定义泛型来完成扩展 二、并不存在泛型类 1、如何验证不存在泛型类 2、使用注意事项 三、泛型继承 1、以泛型类为父类 2、以非泛型类为父类 3、泛型类与非泛型类在继承时主要区别...

2019-03-10 18:12:26 402

原创 Java 泛型的使用

需求:定义一个字符串集合,要求字符串按照长度排序。在不使用泛型前,我们的代码如下。public class GenericDemo { public static void main(String[] args) { // 让Treeset集合元素具有比较性,构造方法传入一个自定义比较器 TreeSet ts = new TreeSet(new StringComperator...

2019-03-02 18:39:07 662

原创 Java 泛型基础

文章目录 一、泛型的由来 1、Collection的缺陷 2、泛型的由来背景 二、泛型的好处 1、类型安全 2、消除强制类型转化 三、泛型的格式 1、为什么泛型使用&amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;gt; 2、泛型格式 一、泛型的由来1、Collection的缺陷Java语言的集合有一个缺点:当我们把一个对象丢进集合后,集合就会忘...

2019-02-24 17:56:53 177 2

原创 Java Set接口

一、Set接口的层级结构 1、特点 2、层级关系 二、常用方法 1、增 2、删 4、修 5、查 三、ListIterator迭代器 1、背景由来 2、使用 3、注意事项 四、List接口常见实现类 1、ArrayLis...

2019-02-22 00:21:01 999

原创 iOS 优化程序冷启动时间

文章目录 一、何为冷启动 1、冷启动 2、热启动 二、冷启动时间 1、什么是冷启动时间 2、冷启动过程做了什么 三、pre-main()阶段 1、pre-main阶段加载 2、pr-main节点时间测量及其优化 四、main()阶段 1、mai...

2018-11-21 19:16:28 3259

原创 Java List接口

文章目录 一、Lis接口t的层级结构 1、特点 2、层级关系 二、常用方法 1、增 2、删 4、修 5、查 三、ListIterator迭代器 1、背景由来 2、使用 3、注意事项一、Lis接口t的层级结...

2018-11-12 01:12:51 852

原创 Java Collection和Iterator

文章目录 一、关于集合 1、为什么会出现集合类 2、数组和集合同为容器,有何不同 3、集合的特点 4、集体体系 5、为什么会出现这么多容器 6、Collection接口常见方法 7、迭代器(Iterator) 8、示例demo一、关于集合1、为什么会出现集合类面向对象的语言对事物的体现都是以对象的形式,为了更方便对多个...

2018-10-29 22:44:33 1360

原创 iOS CocoaPods 入门学习指南

文章目录 一、关于CocoaPos 1、什么是CocoaPos 2、安装使用CocoaPos 3、pod install 和 pod update 区别 二、制作CocoaPos 1、注册Trunk账号 2、注册github账号 3、配置ssh key 4、制作.podspec文件 一、关于Coco...

2018-10-24 21:32:57 1124 1

原创 mac 更新“.bash_profile”(配置全局环境变量)没生效问题

打开终端cd /Users/用户名是否存在.bash_profileopen .bash_profile不存在即创建touch .bash_profile打开编辑后,让.bash_profile配置的全局变量理解生效source ~/.bash_profile这行脚本可能不起作用,原因是 mac下采用zsh代替bash,而zsh加载的是 ~/.zshrc文件,而 ‘.zsh...

2018-10-22 17:39:46 29412 1

原创 iOS 笔试面试题

1、为什么说OC是一门动态语言?主要体现以下三个方面: 动态类型、动态绑定、动态加载 (1) 动态类型 : 即运行时再决定对象的类型。简单说就是id类型,任何对象都可以被id指针所指,只有在运行时才能决定是什么类型。 例如 : `NSString *string = [[NSData alloc]init];` 编译时 是 NSString 类型,运行时 却是 NSData 类型 (2)

2018-04-23 17:42:34 1626

原创 ios Instruments之Time Profiler

文章目录 一、Time Profiler(方法执行时间) 1、简介 2、原理 3、注意事项 4、使用步骤(结合场景)一、Time Propfiler1、简介 Time Profiler帮助我们分析代码(方法)的执行时间,找出导致程序变慢的原因, 告诉我们“时间都去哪儿了?”。 在开发的过程中,我们经常能感觉到,点击某一按...

2018-04-20 18:00:04 1815

原创 ios Instruments之Allocations

文章目录一、Allocations(监测内存分配) 1、简介 2、如何使用一、Allocations1、简介 性能优化中使用Instruments-Allocations工具进行内存分配使用监测。 内存爆增,且持续不释放的情况,除了是内存泄露外,还有就是对性能代码质量不过关导致。 Allocations能够帮你精准定位到内存占用过多的代码。 ...

2018-04-19 18:39:22 2966

原创 iOS Instruments之Leaks

文章目录 一、内存泄露和内存溢出 1、内存泄露 2、内存溢出 3、内存泄露可能引发的问题 二、如何检测你的程序存在内存泄露 1、静态分析 2、动态检测一、内存泄露和内存溢出1、内存泄露 程序在申请内存后,无法释放已申请的内存空间 标识 : dealloc()方法未调用2、内存溢出程序在申请内存时,没...

2018-04-19 00:41:46 4539

原创 iOS 视频播放(AVPlayer)

文章目录 一、AVPlayer 1、简介 2、视频播放的解决方案 二、AVPlayer中的MVC 1、v层 :AVPlayerLayer 2、m层 :AVPlayerItem 3、c层 :AVPlayer 三、实现简单的播放、暂停功能 1、播放 2、暂停 3、视频播放暂停实现一、AVPlayer1、简介 OC 提供了三种视频播放解决方案,分别是

2018-04-17 14:59:40 24950

原创 iOS 音频录制、播放(本地、网络)

文章目录 一、录音机(AVAudioRecorder) 1、简介 2、如何使用 3、具体实现(开始、暂停、停止、播放 四个功能) 4、附件实现demo 二、播放音频 1、播放本地音频文件(AVAudioPlayer) 2、播放网络音频文件(Audio Queue Servies - 音频队列服务) &lt;1&gt; 音频...

2018-04-16 14:16:11 8951 1

Java 字符串和基本数据类型之间的转换

Java 字符串和基本数据类型之间的转换

2017-06-27

Java 包装类

Java 包装类的使用说明

2017-06-26

Java StringBuffer

Java 可变字符串StringBuffer学习demo

2017-06-21

Java StringBuilder

Java 可变字符串 StringBuilder 的 学习 (备注: 如果解压后是乱码,请用普通文本打开,重新复制到对应文件即可)

2017-06-20

Java 字符串常用方法

Java String常用的方法

2017-06-16

iOS 多线程

ios GCD 知识点整理

2017-06-15

Java 字符串

Java String的初识

2017-06-14

Java 自定义异常和抛出异常

Java 自定义异常和抛出异常的练习demo

2017-06-14

Java 处理异常

Java 异常处理的初识,适合入门学习

2017-06-08

Java 接口多继承

Java 接口多继承和类实现多个接口的demo

2017-05-29

Java 接口

Java 接口的初识学习demo

2017-05-25

Java 抽象类

Java 抽象类的学习

2017-05-23

Java 多态中的类型转换

Java 多态中的类型转换

2017-05-22

Java 面向对象三大特性之多态

Java 面向对象三大特性之封装性的学习

2017-05-20

Java Object类认识

Java 对Object类的认识和equals()方法和== 的对比

2017-05-18

Java super关键字使用

Java super关键字使用demo

2017-05-16

Java final关键字

Java final关键字的学习demo

2017-05-13

Java 继承和方法重写

Java 继承知识点的相关学习。

2017-05-13

Java 内部类

Java 的使用 分别介绍了 成员内部类、方法内部类、静态内部类

2017-05-08

Java 包的使用

Java 使用包管理Java中的文件。 包机制。

2017-05-06

iOS KVC实现原理

iOS KVC实现原理,供参考学习。适合有一定基础的。自己研究的,不喜勿喷。

2018-05-05

iOS AVPlayer播放暂停

iOS AVPlayer播放暂停功能示例demo,供视频初学者学习。

2018-04-17

iOS 音频队列

iOS 音频队列之播放在线音频示例demo。供初学者学习使用。

2018-04-16

iOS 音频录制

iOS AVFoundation框架下的AVAudioRecorder录音机的实现。

2018-04-13

iOS 本地音乐播放

iOS avaudioplayer 本地音乐播放器的学习demo,供除学习学习时候。

2018-04-10

Java JDK1.5 生产消费者模式解决方案

Java JDK1.5后新特性,用Lock和Condtion对象解决线程安全问题,提高了效率。

2018-03-29

Java 生产消费者模式

Java 生产消费者模式练习demo,供初学者入门。资深工程师请绕路。

2018-03-25

Java 等待唤醒机制 代码优化

Java 线程 等待唤醒机制 代码优化 适合初学者学习参考

2018-01-14

Java 等待唤醒机制

Java 等待唤醒机制,适合入门者学习的demo,可下载学习。

2018-01-13

线程通信安全问题

java ,线程通信安全问题 ,属于入门代码,简单。 不喜勿喷呀。

2018-01-11

ios touchid校验

ios touchid 校验学习demo 。如有不对,欢迎指正。资源好的话,点下赞。

2017-11-10

ios runtime消息转发机制

ios runtime 消息转发机制。主要描述runtime消息发送的三次补救机会。

2017-10-31

ios 解归档

ios 归档的演示 代码,仅供学习。尽可能去参考博客学习。

2017-10-28

Java 匿名内部类

Java 匿名内部类的学习demo

2017-08-02

ios 通知实现原理

ios 模拟通知实现原理

2017-07-27

ios KVO实现原理

ios kvo原理的实现demo

2017-07-25

ios kvo使用

ios kvo 简单使用。

2017-07-24

Java 帮助文档

Java API 文档生成

2017-07-18

设计模式之单例

Java 单例设计模式

2017-07-16

iOS 多线程NSoperation

ios 多线程NSoperation

2017-06-30

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

TA关注的人

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