面试、算法
北漂周
Android技术专家,CSDN技术博客专家,艾瑞咨询知名评论员。曾任职于奇虎360、百度,从事Android APP研发与互联网战略方向分析。现为诚壹金融联合创始人兼CTO。
著作:《Android安全技术揭秘与防范》人民邮电出版社
展开
-
赛马问题
25匹马,请找出最快的3匹。一次只能赛5匹,只能知道这5匹马的排序,没有秒表。力求用最少的操作。当你找到解决方案之后,你是不是可以换位思考以下,如果你是面试官,你会接下来怎么扩展这个问题?以后你面试时就会有备而来。原创 2013-08-02 10:47:42 · 1674 阅读 · 1 评论 -
String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常转载 2014-07-16 23:17:58 · 990 阅读 · 0 评论 -
Volatile使用与理解
Volatile使用与理解 Java语言中的 volatile变量可以被看作是一种 “程度较的 synchronized”;与 synchronized 块相比,volatile变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。锁提供了两种主要特性:l 互斥(mutual exclusion)l原创 2015-04-21 18:08:46 · 1554 阅读 · 0 评论 -
理解AtomicBoolean
前些天有朋友问我,经常在代码中看到Atomic开头的类,不明白是什么意思。这里我们就从AtomicBoolean开始说吧,自己正好也复习一下。对于官方的说明是: 可以用原子方式更新的 boolean 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中(如以原子方式更新的标志),但不能用于替换 B原创 2015-06-12 11:12:43 · 10607 阅读 · 1 评论 -
无需Root也能Hook?——Depoxsed框架演示
之前我们介绍过rovo89在Githu上的Xposed框架,我们也介绍了如何使用Xposed框架进行登录劫持,和广告注入。但是,之后很多朋友都在问我,这个Xposed框架使用起来很确实很好用。可是就是有一个巨大的缺点,就是需要Root权限。很多设备都没有Root权限,有没有一个不需要Root权限的Hook框架。答案是,确定的。就是目前的Alibab的开源框架,Dexposed框架。github地址原创 2015-08-26 11:11:19 · 10633 阅读 · 6 评论 -
对于泥球型状态机,估计你也苦恼!
对于电商类的系统、游戏和公司内部流程系统来说,最复杂的莫过于处理其中的状态扭转。如我公司的订单购买系统: 预约=>审核=>打款=>上传凭条=>凭条审核=>打款核验=>返佣对账=>返佣凭条审核=>返佣这期间,每一个状态有包括了,“通过” / “拒绝”的操作。通常来说,面对这样的需求,最容易想到的解决方案就是,定义不同的枚举值,不同状态之间的扭转就使用 if-else 或者 switch-case 来原创 2016-12-18 18:45:52 · 1611 阅读 · 0 评论