自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王学森的专栏

为年轻时吹下的牛逼而奋斗

  • 博客(205)
  • 资源 (2)
  • 收藏
  • 关注

原创 ECharts人才九宫格自定义

vue+echarts 实现人才九宫格图表

2022-09-23 17:29:46 1030 1

原创 组织行为学笔记-第一章

什么决定了人类的行为遗传与行为进化过程与人类行为直立行走头脑发达语言的出现基因与行为继承双亲的46条染色体基因调解着身体的生理过程并表达人的表行特质智力70%来由遗传决定双因子研究 MZA(同卵双生&环境相同) MZT(同卵双生&环境不同)生理与行为大脑功能神经递质及其功能(60多种)社会与行为这回心理学家认为,行为发生所处的社会情境是行为的首要决定因素社会角色与行为规范模拟监狱实验–画地为牢(路西法效应,好人是如何变成恶魔的—路西法(恶天

2021-10-14 21:16:46 477

原创 组织行为学笔记-导论

在职场、企业为基调的行为学研究心理和行为是什么关系?心理是内隐的行为组织行为的分类是组织成员直接或间接影响组织效益的行为及其模式性骚扰的本质是权力关系,权力大的骚扰权力小的三类行为受到关注:绩效行为 (performance behavior)组织所期望的与工作相关的行为机能障碍行为/工作场所偏差行为 (dysfunctional behavior/deviant workplace behavior)生产方面:缺勤、离职、拖延、浪费财产方面: 盗窃、破坏政治活动: 偏袒、

2021-10-14 21:13:29 406

原创 Java注解的本质

JDK注解定义格式解析通过观察JDK的常用注解如:@Override@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}@Deprecated@Documented@Retention(RetentionPolicy.RUNTIME)@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKA

2021-10-11 20:23:05 412

原创 企业400电话申请流程及相关材料

企业400电话申请流程Step1:联系客户经理通过各运营商的客服电话,找人工,说要办理400电话,会有客户经理联系你询问低消,套餐,折扣,号码价格从几百/月 到 几万/每月不等选择心仪号码后可预占注意,市面上有很多400的代办,这个如果没有靠谱的,或者之前使用过的,尽量不要用,风险很大。Step2: 预占号码客户经理可以申请号码预占,防止其他公司注册所需资料如下:Step3: 公司需盖章资料:企业400业务服务协议委托书(企业委托个人代办)被委托人身份证复印件法律责任及防范

2021-04-16 19:53:37 330 2

原创 Windows常见端口

Windows常见端口UDP Echo 简单 TCP/IP 服务9 TCP Discard 简单 TCP/IP 服务9 UDP Discard 简单 TCP/IP 服务13 TCP Daytime 简单 TCP/IP 服务13 UDP Daytime 简单 TCP/IP 服务17 TCP Quotd 简单 TCP/IP 服务17 UDP Quotd 简单 TCP/IP 服务19 TCP Chargen 简单 TCP/IP 服务19 UDP Chargen 简单 TCP/IP 服务20 T

2021-04-16 19:23:44 486 1

原创 Swift @propertyWrapper(属性包装)的使用和本质

什么是@propertyWrapper(属性包装)1,它类似Java等语言中的注解2,它包装修饰属性的get set方法3,目的在于封装属性操作,简化代码,降低重复书写概率@propertyWrapper什么作用预设场景实际开发中,我们的默一个属性要求必须为两头去除空格的状态.这时我们有两种方式实现1, 重写get方法,每次get时都去除两头空格2, 重写set方法,每次set时都去除两头空格(对于以上方法,我们暂不讨论性能和业务贴合的问题.)class Test { var

2020-09-06 16:26:56 3916

转载 TCC分布式事务

之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务。首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同学,可以参考之前的文章:《拜托,面试请不要再问我Spring Cloud底层原理!》。业务场景介绍咱们先来看看业务场景,假设你现在有一个电商系统

2020-07-10 23:28:29 282

转载 XA&Two/Three-Phase-Commit

1 2PC两阶段提交协议为了保证分布在不同节点上的分布式事务的一致性,我们需要引入一个协调者来管理所有的节点,负责各个本地资源的提交和回滚,并确保这些节点正确提交操作结果,若提交失败则放弃事务。2.1 XA 协议XA 是一个分布式事务协议,规定了事务管理器和资源管理器接口。因此,XA 协议可以分为两部分,即事务管理器和本地资源管理器。事务管理器作为协调者,负责各个本地资源的提交和回滚; 资源管理器就是分布式事务的参与者.其中资源管理通常是 数据库。基于 XA 协议的二阶段提交方法中,二阶

2020-07-10 23:26:17 414

原创 Swift断言`asset` 与 先决条件`precondition`的使用和思考

Swift断言asset 与 先决条件precondition的使用和思考断言 asset###定义:/// - Parameters:/// - condition: The condition to test. `condition` is only evaluated in/// playgrounds and `-Onone` builds./// - message: A string to print if `condition` is evaluated to `f

2020-07-06 14:35:40 736

原创 iOS知识点手写回顾记录

疫情期间有一套iOS面试题《阿里、字节:一套高效的iOS面试题》比较火,自己也跟着做了一遍,这里是自己纸上回顾的部分iOS知识点,根据本套题的结果和盲点筛选请到这篇博客《》观看

2020-07-03 15:19:38 310

原创 dispatch_walltime与dispatch_time_t 的区别

dispatch_walltime的官方文档解释如下Functiondispatch_walltime// 根据系统时钟,创建一个绝对时间Creates a dispatch_time_t using an absolute time according to the wall clock.Declarationdispatch_time_t dispatch_walltime(con...

2020-03-26 11:36:25 1188

转载 iOS管理对象内存的数据结构以及操作算法--SideTables、RefcountMap、weak_table_t(二)

这篇文章是之前那篇文章iOS管理对象内存的数据结构以及操作算法--SideTables、RefcountMap、weak_table_t的补充和延伸。如果没有阅读过前一篇文章请先看那一篇。上一篇文章中关于SideTables、SideTable和RefcountMap三者关系可能描述的不太清楚。很多朋友表示看起来晕乎乎的。当初我在研究的时候也是蒙圈了好长一段时间。所以特意写了这篇文章来...

2020-03-21 17:38:51 484

转载 iOS管理对象内存的数据结构以及操作算法--SideTables、RefcountMap、weak_table_t (一)

通过阅读本文你可以了解iOS管理对象内存的数据结构是什么样的,以及操作逻辑。对象的reatin、release、dealloc操作是该通过怎样的算法实现的,weak指针是如何自动变nil的。    本文所阐述的内容代码部分在苹果的开源项目objc4-706中。** 本文流程:**一、引用计数的概念二、抛出问题三、数据结构分析(* SideTables、RefcountMap、weak_...

2020-03-21 16:00:40 471

转载 通过Mach-O文件结构看iOS堆栈信息(函数地址与符号关联)

任务Mach-Task描述:一个机器无关的thread的执行环境抽象作用:task可以理解为一个进程,包含它的线程列表结构体:task_threadstask_threads将traget_task任务下的所有线程保存在act_list数组中,数组个数为act_listCntkern_return_t task_threads( task_t traget_task,...

2020-03-19 10:32:05 2100

转载 通过Mach-O文件结构看iOS堆栈信息

Mach-O文件Mach-O格式全称为Mach Object文件格式的缩写Mach-O文件类型分类:1.Executable:应用可执行的二进制文件,如.m/.h文件经过编译后会生成对应的Mach-O文件2.Dylib Library:动态链接库3.Static Library:静态链接库4.Bundle:不能被链接 Dylib,只能在运行使用dlopen()加载5.Reloc...

2020-03-19 10:28:59 737

原创 Runtime objc4-779.1 Runtime在实际开发中的应用之__attribute__

这是一个llvm的指令,很强大,官方文档中有很多说明,我们这里记录我们在开发中可能会遇到的场景和应用指令格式__attribute__(相关属性)常见场景1 availability 对版本、平台等情况做说明在某些时候我们需要对不同的版本和平台做特别处理,或者API支持,苹果也有很多这种场景,比如iOS10的系统通知API,UITableView中某些API的限定使用的API_DEPRE...

2020-03-12 11:48:38 267

原创 Runtime objc4-779.1 一图看懂iOS Runtime消息转发

消息发送流程图设定消息接受者为receiver图是用markdown画的,适配可能有点问题,浏览器页面放大看好一些Created with Raphaël 2.2.0开始objc_msgSend(receiver, SEL)通过receiver,获取isa指针,并获取其class在class的cache中查找SEL是否存在?匹配Method,执行IMP结束在class的method_list...

2020-03-11 16:21:36 430 3

原创 Runtime objc4-779.1 App启动过程中Runtime都干了什么?

知识准备首先我们要知道一个场景,我们点击屏幕上的应用,到我们看到应用完全展示,并可以操作,这个过程中,系统、runtime、我们自己的代码,都做了大量的工作,这个过程有很多优秀的博文已经详细的讲述过,例如深入理解iOS App的启动过程 —by 为自己丶拼个未来,这篇文章的内容其实绝大部分来自于苹果WWDC2016中的一个官方视频,如果对App启动过程不熟悉的同学可以这两个结合着看一下.Run...

2020-03-10 18:45:58 624

原创 Runtime objc4-779.1 为什么不能向一个已存在的类添加成员变量?有什么办法达到相同的效果(2)?

接上一篇博客继续第二种方法Func2 利用关联实现对已存在的类添加成员变量的效果涉及两个主要的API给某一个对象关联一个对象objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key, id _Nullable value, objc_AssociationPolicy policy)获取某一个对象的关联...

2020-03-06 17:45:19 281

原创 Runtime objc4-779.1 为什么不能向一个已存在的类添加成员变量?有什么办法达到相同的效果?

这个问题在面试中经常被问起,答案也很明显: 因为类的结构已经在编译期被固定,不能动态更改.一句话很简单,但是背后却有很多的问题,为什么方法可以?为什么不能允许实例变量和方法一样动态化?等等问题.我们先来看看怎么解决往类中添加实例变量的需求.Func 1 动态创建类既然原来的类已经在编译期被“固定”,那么我们动态创建的类总可以添加变量吧,让新创建的类继承原来的类不就可以了?操作一下!Fu...

2020-03-05 17:40:37 463

原创 Runtime objc4-779.1 OC中,为什么swizzleMethod时要先addMethod?

我们swizzleMethod的方法通常如下void swizzleMethod(Class class, SEL originalSelector, SEL swizzledSelector){ Method originalMethod = class_getInstanceMethod(class, originalSelector); Method swizzledMe...

2020-03-03 18:54:06 387

原创 如何下载全国的POI数据,如何获取全国的POI数据,poi数据搜索,高德poi获取,poi数据分析,poi免费数据,城市规划数据

最近朋友写论文,让我帮他弄poi数据,偶然间发现一个小程序,进而获取了全国的poi数据教程如下:Step1 打开微信,扫码使用小程序注意:1,它会要求填写手机号和邮箱 ps:这里最重要的是邮箱,会收到一封搜索poi数据结果的邮件, 尤为重要,不要填写错误.不然收不到了.2,它会限制搜索次数和返回结果条数(这不是重点,重点是邮件!!!)小程序码如下Step2 去邮箱查看邮件,如果收到...

2020-03-01 22:55:41 3940 3

原创 poi数据搜索,高德poi获取,poi数据分析,poi免费数据,城市规划数据(key已被封,服务停掉了)

最近做了个小程序,利用高德地图的开放api获取poi数据,感兴趣的用户可以体验一下,如果需要poi数据服务也可以直接留言给我,无论怎么样,体验一下,你会得到你想要的小程序码:...

2020-03-01 22:45:57 1683 2

原创 Runtime objc4-779.1 通过runtime源码对OC对象销毁过程解析

Runtime objc4-779.1 通过runtime源码对OC对象销毁过程解析Step1 NSObject.mm line 2340// Replaced by NSZombies- (void)dealloc { // Setp2 _objc_rootDealloc(self);}Step2 NSObject.mm line 1814void_objc_rootD...

2020-02-27 17:22:28 1159 2

原创 Runtime objc4-779.1 通过runtime源码对OC对象初始化过程解析

Runtime objc4-756.2 通过runtime源码看对象初始化过程常用对象初始化代码[[NSArray alloc] init][NSArray new]我们先根据 alloc+init的方式来捋一遍runtime初始化对象的过程,看看有哪些值得我们学习的地方.以下书写方式为 <步骤号><代码所在文件><代码行数>所以阅读本文,最好是同...

2020-02-24 17:59:41 647

原创 iOS 应用信息、手机设备信息、网络信息、权限信息、GPS、网络信息、存储信息、屏幕信息、传感器信息、手机卡信息等信息获取工具

JSAnalysis本文只做介绍,项目源码在github,链接如下JSAnalysis项目github链接项目简介JSAnalysis 是一款苹果设备信息静默获取的工具。它可以在用户无感知的情况下获取到尽可能多的设备信息,方便开发者对用户提供更好的体验。本工具仅限于技术学习交流使用.设计要点使用AES256加入签名、敏感信息加密. 防篡改、防劫持.在没有权限获取对应信息时统一设置v...

2020-02-21 17:24:23 1764

原创 Runtime objc4-756.2 objc_class中class_ro_t与class_rw_t源码关系分析

先上源码struct objc_class : objc_object { // Class ISA; Class superclass; cache_t cache; // formerly cache pointer and vtable class_data_bits_t bits; // class_rw_t * plus c...

2020-02-21 17:19:46 903

原创 记一次公司分享--走近区块链

一个月前公司内的分享,做了区块链的普及分享,准备期间查阅了很多相关的书籍、文献.对区块链有了一定的认知和思考.PDF、PPT、KEY版本的分享文件

2020-01-13 09:57:05 159

转载 iOS包签名原理文章

http://blog.cnbang.net/tech/3386/

2019-12-03 22:08:09 157

转载 一次简单的 HTTP 调用,为什么时延这么大?

最近项目测试遇到个奇怪的现象,在测试环境通过 Apache HttpClient 调用后端的 HTTP 服务,平均耗时居然接近39.2ms。可能乍一看觉得这不是很正常吗,有什么好奇怪的?其实不然,我再来说下一些基本信息,该后端的 HTTP 服务并没有什么业务逻辑,只是将一段字符串转成大写然后返回,字符串长度也仅只有100字符,另外网络 ping 延时只有1.9ms左右。因此,理...

2019-09-12 11:37:12 472

转载 TRUSTING CUSTOM ROOT CERTIFICATES ON IOS

TL;DR:Navigate toSettings > General > About > Certificate Trust Settingsand turn the switch on for your custom certificate.Like many,Charles Proxyhas become an indispensable part of my...

2019-09-11 11:40:30 228

转载 HTTP API 认证授权术

我们知道,HTTP是无状态的,所以,当我们需要获得用户是否在登录的状态时,我们需要检查用户的登录状态,一般来说,用户的登录成功后,服务器会发一个登录凭证(又被叫作Token),就像你去访问某个公司,在前台被认证过合法后,这个公司的前台会给你的一个访客卡一样,之后,你在这个公司内去到哪都用这个访客卡来开门,而不再校验你是哪一个人。在计算机的世界里,这个登录凭证的相关数据会放在两种地方,一个地方在用户...

2019-08-28 16:30:02 522

转载 Weex多页面配置

前言Weex是使用Vue和WebPack进行项目配置的。Weex创建的项目默认是只有一个入口的,也就是说,是单页面应用。对于移动开发来说,使用单页面(使用vue-router)是没有原生的页面跳转效果。在Weex的官方文档中,Weex提供了navigator内置模块来实现Web端前进、后退页面,以及iOS/Android的navigator导航效果。Weex的多页面配置我使用的是最近的we...

2019-07-12 11:08:54 934

原创 Tips-App瘦身的几点实践

使用Asset Catalog,充分利用Apple提供的App Thining(App Slicing、Bitcode、On-Demand Resources)删除无用图片使用LSUnusedResources工具即可,原理就是find命令找到所有的资源文件,和代码中的资源文件,然后做差集,就是无用的了图片压缩。小图片(100k以下)使用tinypng或者imageoptim来压缩图片即可...

2019-04-26 16:47:50 303

原创 Tips-LLVM 粗略编译过程

LLVM 编译过程替换宏,将代码补全词法、语法分析,生成AST(抽象语法树),方便代码静态检查AST生成IR(中间状态代码),和平台无关IR生成不同平台机器码,iOS就是Mach-O...

2019-04-26 11:27:10 213

原创 Golang 全局一次执行实现

sync.Once.Do 的实现:type Once struct {// 为了防止多个协程同时执行,加入锁 m Mutex// 记录是否被执行过,最终会被atomic.StoreUnit32存起来 done uint32}func (o *Once) Do(f func()) {// 如果执行过就return if atomic.LoadUint32(&o.do...

2019-04-25 17:40:26 1247

原创 Runtime objc4-723 Tagged Pointer & 对象初始化流程

Runtime objc4-723 Tagged Pointer &amp; 对象初始化流程Tagged Pointer传统意义上,指针的值制式一个内存地址,它本身并没有什么意义,但是在Apple用了64位的系统后,一个指针就会有8个字节 64位,这么长的内容只表示一个地址是很浪费的。所以为了优化这个问题,Tagged Pointer概念被提出来,它的出现让一个指针的值富有了非地址之外的其他...

2019-02-27 17:21:38 206

原创 Runtime objc4-723 objc_class

Runtime objc4-723 objc_class前情提要:runtime的源码版本: objc4-723时间:2019-01-06objc_classstruct objc_class : objc_object {// Class ISA;Class superclass;cache_t cache; // formerly cache point...

2019-01-06 01:10:15 1136

原创 Runtime objc4-756.2 isa_t与isa (1)

前情提要:runtime的源码版本: objc4-723时间:2018-11-23Runtime 可能并不是你看到的那样在搜索引擎中搜索“Runtime”baidu:google:这里边第一页的内容,挨个点进去,所有的人都会拿以下代码说事情:struct objc_object { Class isa OBJC_ISA_AVAILABILITY;};struct...

2018-11-23 18:11:02 402

XMPPFramework (旧一点版本)

老版本的XMPPFramework,没有 @import libxmlSimu; Module 'libxmlSimu' not found 的错误,在此分享给大家

2016-01-21

空空如也

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

TA关注的人

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