Squirrel状态机-从原理探究到最佳实践
Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生命流的好处更多体现在代码的可维护性、可测试性上,明确的状态条件、原子的响应动作、事件驱动迁移目标状态,对于流程复杂易变的业务场景能大大减轻维护和测试的难度。
Wesley13 Wesley13
4年前
NIO如何多线程操作
因为NIO本身是非阻塞的,所以他的消息选择器Selector可以在单线程下连接多台客户端的访问。为了加强NIO的性能,我们加入多线程的操作,当然NIO并不能简单的把Selector.select()放入Executor.execute(Runnable)的run方法中。为完成NIO的多线程,我们应该有一个调度类,一个服务类。调度类的目的是初始化一
Stella981 Stella981
4年前
Gson简要使用笔记
最近在做一个javawebservice项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库。发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。经过比较,gson和其他现有javajson类库最大的不同时gson需要序列化得实体类不需要使
Wesley13 Wesley13
4年前
JDK核心JAVA源码解析(1)
想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。首先我们从所有类的父类Object开始:1\.Object类(1)hashCode方法和equals方法
Stella981 Stella981
4年前
Scrapy爬虫框架
(1)、简介在糗事百科爬虫中我们的爬虫是继承scrapy.Spider类的,这也是基本的scrapy框架爬虫,在这个爬虫中我们自己在解析完整个页面后再获取下一页的url,然后重新发送了一个请求,而使用CrawlsSpider类可以帮助我们对url提出条件,只要满足这个条件,都进行爬取,CrawlSpider类继承自Spider,它比之前的Spid
Stella981 Stella981
4年前
LB中使用到的一致性Hash算法的简单实现
1、类的Diagram!(https://oscimg.oschina.net/oscnet/896a4590f74827afad5a6bc6865dfd4275f.png) 2、代码实现2.1、Node类,每个Node代表集群里面的一个节点或者具体说是某一台物理机器;packageconsistencyhash
Stella981 Stella981
4年前
Android驱动学习
在给Android添加新的驱动后,app要如何使用呢?正常的使用一个设备,需要getService。但是像LED等我们自己添加的硬件驱动,Android源代码根本没有我们自己添加的服务。第一种:我们自己的创建的硬件设备驱动的类是被系统定义为了隐藏类,那么在Android系统中如何使用隐藏类呢?为此我们可以根据android的编译过程可以看到我们添
Wesley13 Wesley13
4年前
05.视频播放器内核切换封装
05.视频播放器内核切换封装目录介绍01.视频播放器内核封装需求02.播放器内核架构图03.如何兼容不同内核播放器04.看一下ijk的内核实现类05.看一下exo的内核实现类06.如何创建不同内核播放器07.看一下工厂类实现代码08.
Wesley13 Wesley13
4年前
IO完全手册汇总
InputSream,一级子类8个,1个抽象类FilterInputStream.二级策略模式FilterInputStream下9个\其中一个过时\.1个抽象类InflaterInputStream.三级策略模式InflaterInputStream下2个.java.io.ByteArrayInputStream 使用场
使用CDN时如何防劫持
本文分享自天翼云开发者社区《》.作者:潘婧用户在访问网站过程中,请求可能会被中间人劫持。按照劫持的方式,劫持可分为两类:一类是在域名解析层面进行劫持,一类是通过http302跳转方式进行劫持。无论是域名解析层面的劫持,还是应用层http302层面的劫持,其