对于泥球型状态机,估计你也苦恼!

对于电商类的系统、游戏和公司内部流程系统来说,最复杂的莫过于处理其中的状态扭转。如我公司的订单购买系统: 预约=>审核=>打款=>上传凭条=>凭条审核=>打款核验=>返佣对账=>返佣凭条审核=>返佣这期间,每一个状态有包括了,“通过” / “拒绝”的操作。通常来说,面对这样的需求,最容易想到的解决方案就是,定义不同的枚举值,不同状态之间的扭转就使用 if-else 或者 switch-case 来...
阅读(1039) 评论(0)

无需Root也能Hook?——Depoxsed框架演示

之前我们介绍过rovo89在Githu上的Xposed框架,我们也介绍了如何使用Xposed框架进行登录劫持,和广告注入。但是,之后很多朋友都在问我,这个Xposed框架使用起来很确实很好用。可是就是有一个巨大的缺点,就是需要Root权限。很多设备都没有Root权限,有没有一个不需要Root权限的Hook框架。答案是,确定的。就是目前的Alibab的开源框架,Dexposed框架。github地址...
阅读(6895) 评论(7)

理解AtomicBoolean

前些天有朋友问我,经常在代码中看到Atomic开头的类,不明白是什么意思。 这里我们就从AtomicBoolean开始说吧,自己正好也复习一下。对于官方的说明是: 可以用原子方式更新的 boolean 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中(如以原子方式更新的标志),但不能用于替换 B...
阅读(3785) 评论(0)

Volatile使用与理解

Volatile使用与理解 Java 语言中的 volatile 变量可以被看作是一种 “程度较的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。 锁提供了两种主要特性: l  互斥(mutual exclusion) l...
阅读(978) 评论(0)

String,StringBuffer与StringBuilder的区别??

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常...
阅读(781) 评论(0)

赛马问题

25匹马,请找出最快的3匹。一次只能赛5匹,只能知道这5匹马的排序,没有秒表。力求用最少的操作。当你找到解决方案之后,你是不是可以换位思考以下,如果你是面试官,你会接下来怎么扩展这个问题?以后你面试时就会有备而来。...
阅读(1342) 评论(2)
    个人资料
    • 访问:563570次
    • 积分:6954
    • 等级:
    • 排名:第3678名
    • 原创:153篇
    • 转载:35篇
    • 译文:1篇
    • 评论:513条
    出版书籍
    学习交流

    @author zhoushengtao(周圣韬)


    @weixin stchou_zst

    @blog http://blog.csdn.net/yzzst


    @交流学习QQ群2:473140254


    @私人QQ:520186243/

    博客专栏
    最新评论