摘要: 针对接口编程,而不是针对实现编程。(针对某一个行为:超类型有多个行为时,需要拆分成多个超类型,否则,具体实现类 必须实现多个行为,也是一种针对实现编程,因为单个行为不可变化了) "针对接口编程"真正的意思是"针对超类型编程",关键在多态。利用多态,程序可以针对超类型编程,执行时根据实际 状况执行到真 阅读全文
posted @ 2016-04-24 20:37 johnson-ycp 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。。。。结果:代码变化引起的不经意后果变少,系统变得更有弹性。 阅读全文
posted @ 2016-04-24 20:32 johnson-ycp 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 用法:把二进制字节序列转化为ASCII字符序列 应用场景:http中传输信息 有点:不可读性 阅读全文
posted @ 2016-04-18 18:03 johnson-ycp 阅读(98) 评论(0) 推荐(0) 编辑
摘要: MD5加密算法:Message Digest 5 消息摘要算法第5版 确保信息传输完整一致(大容量信息压缩成一种保密固定长度的格式) 特点: 压缩性:任意长度的数据,算出的MD5值长度都是固定的 容易计算:从原数据计算出MD5值很容易 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD 阅读全文
posted @ 2016-04-18 18:00 johnson-ycp 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1.volatile的应用 定义:Java 编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致地更新, 线程应该通过排他性单独获得这个变量。 如果一个字段使用volatile修饰,Java 线程内存模型确保所有线程看到这个变量的值是一致的。其生成的汇编指令 包含Lock前缀,实现原理: 阅读全文
posted @ 2016-03-19 17:48 johnson-ycp 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1.无锁并发编程 避免使用锁,将数据通过一定算法分段,不同线程处理不同段的数据 2.CAS算法 乐观锁 3.使用最少线程 避免创建不需要的线程,造成线程处于等待状态,得不到执行 4.协程:非抢占式的,导致任务时间片分配不均匀 单线程中实在多任务的调度,并在单线程中维持多个任务间的切换 阅读全文
posted @ 2016-03-19 15:59 johnson-ycp 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 1.synchronized 悲观锁(独占锁) 问题:1.多线程环境下,加锁,释放锁导致导致比较多的上下文切换和调度延迟,影响性能 2.一个线程持有锁会导致其他需要该锁的线程挂起 3.线程优先级倒置。线程优先级高的线程等待线程优先级低的线程释放锁 2.乐观锁 : 假设没有冲突去进行操作,如果因为冲突 阅读全文
posted @ 2016-03-19 15:43 johnson-ycp 阅读(1216) 评论(0) 推荐(0) 编辑
摘要: 1.vmstat 测量上下文切换的次数 2.Lmbench3 测量上下文切换的时长 阅读全文
posted @ 2016-03-19 14:59 johnson-ycp 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 1.首先注册帐号 邮箱和密码 2.创建仓库git-aaa 3.本地创建仓库git-aaa,进入该目录执行git init 3.保存文件readme.txt 和readme2.txt 依次执行: git add readme.txt ; git add readme2.txt ; git commit 阅读全文
posted @ 2016-03-12 16:57 johnson-ycp 阅读(178) 评论(0) 推荐(0) 编辑
摘要: Postman fiddler wireshark 阅读全文
posted @ 2016-03-04 18:31 johnson-ycp 阅读(114) 评论(0) 推荐(0) 编辑