04 2018 档案

设计模式—模板方法模式
摘要:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的 阅读全文

posted @ 2018-04-25 12:16 Louis军 阅读(181) 评论(0) 推荐(0) 编辑

设计模式—观察者模式
摘要:基本概念 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式又叫发布-订阅(Publish/Subscribe)模式。 UML结构图 上图是Observer 模式的结构图,让我们可以进行更 阅读全文

posted @ 2018-04-25 11:46 Louis军 阅读(183) 评论(0) 推荐(0) 编辑

JVM性能监控与故障处理工具
摘要:要查看哪些进程占用了较多的资源(如CPU、内存、磁盘IO等),在Linux下使用的最频繁的一个命令是top,如下图所示 这个就相当于windows下的任务管理器,能够简单的描述每个进程占用的资源信息,包含CPU、磁盘、内存等信息,按1可以将CPU拆解,看单个CPU的运行信息。使用ps –ef | g 阅读全文

posted @ 2018-04-25 09:43 Louis军 阅读(375) 评论(0) 推荐(0) 编辑

一致性哈希算法原理
摘要:在后端服务开发的过程中, 遇到了这样一个问题: 需要在 mysql 前面部署 redis 做一层缓存, 要求 redis 是集群部署, 并且每台 redis 节点只缓存总数据量的 1/N, N 为 redis 的个数. 看到这里大家都能想到到一个方法是使用 hash(key)%N 来选取 redis 阅读全文

posted @ 2018-04-24 11:22 Louis军 阅读(628) 评论(0) 推荐(0) 编辑

缓存
摘要:缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。 缓存穿透问题 缓存穿透在有些地方也称为“缓存击穿”。 阅读全文

posted @ 2018-04-24 11:21 Louis军 阅读(159) 评论(0) 推荐(0) 编辑

java内存模型—先行发生原则
摘要:Java语言中有一个“先行发生”(happens-before)的原则。这个原则非常重要,它是判断数据是否存在竞争,线程是否安全的主要依据,依赖这个原则,我们可以通过几条规则一揽子解决并发环境下两个操作之间是否可能存在冲突的所有问题。现在就来看看“先行发生”原则指的是什么。先行发生是Java内存模型 阅读全文

posted @ 2018-04-20 10:28 Louis军 阅读(250) 评论(0) 推荐(0) 编辑

Java中的阻塞队列
摘要:什么是阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。 1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。 2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。 阻塞队列 阅读全文

posted @ 2018-04-15 22:22 Louis军 阅读(226) 评论(0) 推荐(0) 编辑

java的Map
摘要:HashMap HashMap和Hashtable区别 Hashtable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap,这如同Vector和ArrayList一样。 Hashtable不允许null值(key和value都不可以),HashMap允许null值(k 阅读全文

posted @ 2018-04-09 22:43 Louis军 阅读(494) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示