Java
nianhua120
这个作者很懒,什么都没留下…
展开
-
Java8 Stream 的并发
Java8 Stream 并发 parrallel foreach原创 2016-11-30 13:15:02 · 4429 阅读 · 0 评论 -
Java8下重构log
重构log本文属于个人 读 Java8 in action 的感悟笔记lambda表达式具有懒加载的特性,我们看一个案例。最最原始的logger用法如下 if(logger.enabled()){ logger.debug("debug: " + getInfo(foo));}如果程序中用到这样的地方很多,那么程序写出来肯定会很难看,我们一般会封装成一个函数void log(String原创 2016-12-04 17:18:34 · 597 阅读 · 0 评论 -
动态配置配置文件路径
动态配置配置文件路径应用场景做项目中经常问出现开发环境和生产环境配置文件路径不一样的情况。对于这样的问题,我们可没必要给每个环境准备一套代码。解决方法我们可以通过传递不同的vm 参数来实现动态路径。 参考代码如下。原创 2017-03-17 19:35:05 · 1023 阅读 · 0 评论 -
缓存
关于串行和并行的思考最近一个项目中有如下一个应用场景:我们实时记录用户的行为,并产生日志,每次产生一条日志的时候,我们就通过一系列规则来判断这个行为是否属于用户监控的行为。 监测日志行为的规则不止一条,而且具有优先级,如果该日志满足多条规则时候,以最高规则为准,处理用户的行为。我们以前实现的代码如下:Filter saveLog(Log log){ //在执行前,已经按优先级将filters排序原创 2017-03-10 23:05:17 · 240 阅读 · 0 评论 -
dva的roadhogrc配置文件webstorm或idea解析
这是一款dva项目的.roaghogrc的idea 或者webstorm解析插件dva改用roadhog框架之后,配置文件改为了.roadhogrc, 但是该文件虽然是标准json格式,但是后缀却不是.json, idea或者webstom无法直接解析,这让人很容易错写格式。 为了满足webstorm或者idea平台下开发项目, 我们实现了.roadhogrc文件的webstorm或idea原创 2017-08-29 17:43:45 · 8327 阅读 · 0 评论 -
Vetx.x : EventLoop线程不要锁(Synchronized/ReentrantLock)
Vetx.x : EventLoop线程不要锁(Synchronized/ReentrantLock)vert.x 里面有eventloop线程,而且eventloop线程是绝对不能阻塞的,但是实际使用中,有时候我们对阻塞理解不深刻,所以一些隐藏的阻塞没有那么好发现。eventloop 线程和work线程共用相同的锁下面的代码是一个简单的例子,用户请求localhost:8133/sync的时候会在原创 2017-09-18 17:50:08 · 1231 阅读 · 0 评论 -
幂等操作——防止客户端重复提交
如果我们要一个客户端请求扣费100元,用户数据库有1000元。 那么执行sqlupdate accounts set current= current-100 where id=123456如果我们这个sql语句执行成功了,但是http由于偶然性的断开,客户端会重试提交扣费请求,这样就会扣两次费用。 如果我们添加一个订单表detail,事务操作变成了begin trans...原创 2018-02-11 14:59:35 · 1620 阅读 · 0 评论 -
发票整理问题算法
问题描述4个部门向财务部小李上共交了40张共计1000k元发票,所有发票抬头一样,金额不一样。小李不小心打乱了这些发票,但是知道每个部门报销的金额分别为,300k,200k,400k,100k,现在你能否帮助小李将这些发票凑成4份,满足上面4个项目组的各自金额之和。设计算法实现。思考1看到这个问题首先想到的数学方程,先列个表格,0,表示不使用,1,表示使用, 方程 n表示发...原创 2018-03-16 10:37:05 · 1391 阅读 · 0 评论