7 dustinqi

尚未进行身份认证

我要认证

蜘蛛可怕却有用,猫虽可爱但废物

等级
TA的排名 32w+

理解设计模式——结构型模式(6)适配器模式

目录适配器模式适配器模式

2020-09-17 11:02:05

Java多线程入门攻略

小白入门

2020-09-05 01:15:25

理解设计模式——创建型模式(5)单例模式

单例模式

2020-08-05 00:21:11

箭头函数和Promise用法

箭头函数Promise的用法

2020-07-23 20:25:47

理解设计模式——创建型模式(4)原型模式

原型模式原型模式结构:“原型”接口 -->(声明克隆方法)一个“原型”对象 -->原型模式特点:又叫作“克隆(clone)模式”,原型(被复制者)是一个支持克隆的对象。

2020-07-19 19:31:50

理解设计模式——创建型模式(3)生成器模式

生成器模式生成器模式结构:

2020-07-12 19:55:15

理解设计模式——创建型模式(2)抽象工厂模式

本来想写一大堆东西来说明抽象工厂模式和工厂模式的区别,后来知乎看到一个精辟回答:清清楚楚

2020-06-16 12:20:57

理解设计模式——创建型模式(1)工厂模式

1.工厂模式

2020-06-08 00:07:06

MySQL性能优化实践

优化思路数据查询慢,不代表 SQL 语句写法有问题。 首先,我们需要找到问题的源头才能“对症下药”。笔者用一张流程图展示 MySQL 优化的思路:无需更多言语,从图中可以清楚地看出,导致数据查询慢的原因有多种,如:缓存失效,在此一段时间内由于高并发访问导致 MySQL 服务器崩溃;SQL 语句编写问题;MySQL 服务器参数问题;硬件配置限制 MySQL 服务性能问题等。查看 MySQL 服务器运行的状态值如果系统的并发请求数不高,且查询速度慢,可以忽略该步骤直接进行 SQL 语句调优步骤。执行

2020-05-25 19:32:23

vi/vim 常用命令参考

vi可以分为三种状态分别是命令模式(进入vi时)插入模式(输入[i]进入,输入[ESC]回到命令模式)底行模式(文件保存或退出时)命令模式:gg: 转到第一行G: 转到最后一行$: 移动到行首^: 移动到行尾/[关键字]或?[关键字] :查找关键字,按n查找下一个,N查找上一个u:撤销操作插入模式:I:进入插入模式,光标定位到行首A:进入插入模式,光标定位到行尾i:进入插入模式,光标定位到当前光标处底行模式::w 保存文件:q 退出

2020-05-19 13:54:38

linux常用命令参考

人们所获得一切知识来源于社会生产实践、科学实验实践、改造社会的实践。网络1、netstat -anp | grep 3306 查看3306端口的占用情况(以为mysql默认监听3306接口,所以此命令也可以查看是否有数据库在运行)2、tcpdump -vvv -i ens160 port 5060 截获“ens160”网卡,5060端口的所有数据数据库1、vim /etc/odbc.ini 查看数据库信息,包括用户名密码等

2020-05-19 13:51:53

Mysql常用命令参考

人们所获得一切知识来源于社会生产实践、科学实验实践、改造社会的实践。1、创建表:USE ccsoftexchangedb; # 指定数据库CREATE TABLE `t_vn_bill_sms_realtime` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键', # 注意列名不是单引号 `id_code` VARCHAR(36) NOT NULL DEFAULT '' COMMENT '随机生成id', `sms_id

2020-05-13 10:41:19

redis中set()方法参数

* EX seconds − 设置指定的到期时间(以秒为单位)。* PX milliseconds - 设置指定的到期时间(以毫秒为单位)。* NX - 仅在键不存在时设置键。* XX - 只有在键已存在时才设置。举例:SET mykey "1" EX 60 NX或RedisHandle.getInstance().set(mykey, "1", "NX", "EX", 60);使用举例:for(IptTrafficRecord itr : itrList){ if(Redi

2020-05-12 14:01:33

利用redis实现时间锁

在定时任务中添加时间锁,可以防止集群中不同机器重复执行此定时任务:@Scheduled(cron = "*/5 * * * * ? ")void missedCallsPush() {/*** 时间锁*/if(!getLock(IM_TIME_LOCK, false)){ return;}时间锁代码实现:/*** lock* @param key key* @return boolean true分钟维度/false 秒钟维度*/private boolean getL

2020-05-12 13:56:50

git 单个文件回退到历史版本

比如OA_App.xcodeproj这个文件,发现错误,要回退到指定历史版本。首先进入到这个文件所在目录,然后查看历史记录git log -4 OA_App.xcodeproj # 查看最近四条历史记录可以看到各历史版本的commitid,回退到指定commitid:git reset (commitid) OA_App.xcodeproj git commit -m "回退到指定版本"git checkout OA_App.xcodeproj # 更新到工作目录git

2020-05-12 13:52:48

git 代码强制覆盖

远端强制覆盖本地git fetch --all 拉取所有更新,不同步git reset --hard origin/dev_qmy_IM 本地代码同步线上最新版本(会覆盖所有与远端同名的本地文件)git pull 再pull一次(可以不用,因为上一步已经做过了)本地强制覆盖远端git push origin dev_qmy_IM --force...

2020-05-12 13:46:54

git 本地新建分支并同步到远端的步骤

假设已经从远端仓库的master分支pull下了代码,并进行了修改。但是不想将提交到远端的master分支,而是想将代码提交到一个新的分支。此时需要在本地新建分支并提交,然后同步到远端仓库。1、首先在本地创建新分支:git checkout -b dev_qmy -b 参数表示创建“dev_qmy”分支的同时切换到这个分支,相当于git branch dev_qmy + git checkout dev_qmy两条命令2、添加所有代码和文件git add .3、提交到新分支并同步到远端

2020-05-09 15:19:08

git 代码上传

首先cd进入要上传项目的根目录后,可以查看相关信息:1、可以先初始化一下git init2、查看当前分支信息:git branch 若后面加参数“-a”,则查看所有分支信息(包括远程分支)3、查看远程仓库信息:git remote -v 查看远程仓库的别名git remote show origin 查看远程仓库的详细信息,也会告诉你现在执行push命令和pull命令是対哪个远程分支进行操作的接着上传代码:git add . git commit -

2020-05-09 15:17:50

使用GCD实现简单循环

//设置时间间隔(每五秒)dispatch_source_t _timer;NSTimeInterval period = 5.f;dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);dispatch_source_set_timer

2020-05-09 15:12:24

使用KVO监听值的变化

场景:使用kvo实现Label内容的监听,如果UILabel内容发生变化,则触发相应事件(这里实现另一个label内容的跟随变化)1、注册两个观察者,分别监听callDialpadNumber和calltime这两个UILabel的text属性:[self.callDialpadNumber addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld con

2020-05-09 15:10:31

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取