策略模式 工作中经常使用到策略模式+工厂模式,实现一个接口多种实现的灵活调用与后续代码的扩展性。在spring中使用策略模式更为简单,所有的bean均为spring容器管理,只需获取该接口的所有实现类即可。 下面以事件处理功能为例,接收到事件之后,根据事件类型调用不同的实现接口去处理。如需新增事件, ...
分类:
编程语言 时间:
2019-08-10 17:48:57
阅读次数:
118
首先,声明一下,springboot项目中默认情况下已经集成了self4J + LogBack. slf4j作为一个接口定义,底层可以有很多实现框架,同时也可以支持别的日志实现或者框架打到sfl4j上。它的实现是基于不同的桥接包。slf4j作为接口定义,下面有很多种实现。实现原理是获取ILogger ...
分类:
编程语言 时间:
2019-08-03 21:35:44
阅读次数:
322
使用Counter进行计数统计 想必大家对计数统计都不陌生吧!,简单的说就是统计某一项出现的次数。实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数、日志分析某一消息出现的频率分析文件中相同字符串出现的概率等。这类似的需求有很多种实现方法。我们逐一来看一下使用不同数据结构是的实现方式 ...
分类:
其他好文 时间:
2019-08-03 00:53:11
阅读次数:
152
方法一:最普遍的做法 使用 ES5 语法来实现虽然会麻烦些,但兼容性最好,不用考虑浏览器 JavaScript 版本。也不用引入其他第三方库。 1,直接使用 filter、concat 来计算 var a = [1,2,3,4,5] var b = [2,4,6,8,10] //交集 var c = ...
分类:
编程语言 时间:
2019-05-21 13:01:10
阅读次数:
190
(1)集合与数组的比较数组不是面向对象的,存在明显的缺陷,集合弥补了数组的一些缺点,比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合框架类可适用不同场合。具体如下:1:数组能存放基本数据类型和对象,而集合类中只能存放对象。2:数组容量固定无法动态改变,集合类容量动态改变。3:数组无法判断 ...
分类:
其他好文 时间:
2019-05-14 12:52:40
阅读次数:
118
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。 1.重入锁 重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的 ...
分类:
编程语言 时间:
2019-05-04 00:25:44
阅读次数:
176
一、饿汉式 缺点:不能懒加载 二、懒汉式(线程不安全) 三、懒汉式(线程安全,效率低) 四、懒汉式(线程安全,效率高,但是有空指针异常) 五、懒汉式(解决四的问题,禁止指令重排序,加volatile关键字) 六、内部静态类的更加优雅的方式 ...
分类:
编程语言 时间:
2019-04-22 19:26:31
阅读次数:
140
Netty 支持多种实现方式,比如nio,epoll 等,本文以nio的实现方式进行讲解。 1.EventLoop : 时间循环看,简单来说就是一个死循环监听事件,如果事件来了,处理掉。通常做法就是开启一个独立线程,一直循环。 伪代码: while (queue.waitForMessage()) ...
分类:
Web程序 时间:
2019-04-06 18:42:55
阅读次数:
211
原文:https://blog.csdn.net/wurensen/article/details/47024961 一、背景介绍最近在项目中遇到一个需求,实现一个后台拍照的功能。一开始在网上寻找解决方案,也尝试了很多种实现方式,都没有满意的方案。不过确定了难点:即拍照要先预览,然后再调用拍照方法。 ...
分类:
移动开发 时间:
2019-03-28 18:18:02
阅读次数:
217
想要实现一个抽牌的功能,有很多种实现方法,这时候我们创造一个对象,通过内置方法来完成这个功能: 同时拓展一下,如果要实现一个人员信息统计,但是每年人员的姓名性别等信息不会变,变的只是年龄等信息,那么我们再录入信息的时候,为了防止系统里的对象重复或占用内存空间,我们就需要对信息进行自动录入刷新,这时候 ...
分类:
编程语言 时间:
2019-02-28 18:13:21
阅读次数:
456