首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
XHLee
掘友等级
CURD Boy
|
高德
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
4
文章 4
沸点 0
赞
4
返回
|
搜索文章
最新
热门
你真的会向上取整吗?小心Math.ceil的精度丢失
这个向上取整计算其实很常用,但是似乎没有一个比较标准的处理方式。 检查余数是否为0,这是我常用的写法。 这种方式很笨,同时还有点啰嗦。 最大的问题:Math.ceil的返回类型是double。 且不说这个场景是两个整型运算,结果也是整型,中间就要经过两次类型转换操作,看起来不够…
LRU算法的Java实现
LRU算法全称Least Recently Used,也就是检查最近最少使用的数据的算法。这个算法通常使用在内存淘汰策略中,用于将不常用的数据转移出内存,将空间腾给最近更常用的“热点数据”。 初识这个算法忘了是在操作系统课还是计算机组成原理课上,其在Redis、Guava等工具…
省时省力的MySql 5.7 Json数据类型及操作
工作中遇到一个需求,同时调用了两个异步接口,这两个接口在一段时间之后会回调预设的地址,将结果返回,在回调都完成后进行下一步操作。两个接口之间没有依赖关系,有可能同时返回。 状态值按位表示,如右数第一位为1说明在等待异步接口A,第二位为1说明在等待异步接口B。即01表示等待A回调…
Java NIO中的堆外内存、内存映射与Zero Copy
在前公司时参与了一个编码竞赛,虽然只拿到一个中游成绩,但在参赛过程中学习到很多其他人优秀的思考方式,也接受了前辈的指点,尤其是在参赛时的一些知识面拓展对我帮助不小。其中一些平常很少接触到的知识对于之后的工作会有所帮助。 具体过程及结果不细说,在这里简单介绍其中用到的部分NIO技…
Java SPI机制的理解与应用
一位前辈在一次技术分享中指出我们目前的包管理不规范,模块间职责有重叠,理解成本高不易维护,提出在开发过程中应当明确按照职责将服务划分到对应的模块中。 比如我们把所有服务都放在service层,但其实服务也是分为基础服务和业务逻辑服务的,或许把类似业务数据查询组装服务放在serv…
Spring事务的配置与使用
Spring提供两种事务管理方式,分为编程式和声明式。 编程式:通过编码的方式手动启用、提交或回滚事务,粒度更细,但更麻烦。 声明式:通过在方法或类或接口上添加注解进行包装,无侵入地实现事务,更方便,但粒度更大。 需要注意的是,使用的数据库需要支持事务,否则事务将不起作用。如M…
获得诺奖的稳定匹配理论之TTC算法与GS算法
其中1、2属于单边匹配,匹配由单边期望决定,即“买方”决定;3、4属于双边匹配问题,匹配过程需考虑“买卖双方”的期望。 在通常情况下,我们期望获得一个尽可能合理而稳定的分配结果,使得最终整体收益最大化。 罗伊德-沙普利(Lloyd S. Shapley)与他人提出了一系列市场的…
Doug Lea写的ThreadLocal怎么还是会产生内存泄漏?
于是,初步方案是使用ThreadLocal为每个线程保存一个对象。 然而重构这个工具类之后,发现阿里规约插件提示“应该至少调用一次remove()方法”,还提示可能造成内存泄漏问题。 奇怪了,记得之前看WeakReference时明确地看到ThreadLocal有用到弱引用,按…
如何优雅地终止一个线程
在开发某个组件时,需要定期从数据库中拉取数据。由于整个逻辑非常简单,因此就启用了一个子线程(Thread)使用while循环+线程休眠来定期更新。 大家都知道,Thread的stop方法早已废除,在高速上一脚猛刹,很可能人仰马翻,太危险。 实际上调用的是Thread.curre…
Java在线诊断工具Arthas介绍
这是一个典型的线上Debug场景:加打点日志,重新发布。 Arthas作为一个诊断工具,提供了很多更高效的方法。 Arthas通过JDK提供的Instrument(基于Java Virtual Machine Tool Interface)和asm库(操作字节码),在低侵入的情…
下一页
个人成就
文章被点赞
84
文章被阅读
56,620
掘力值
1,052
关注了
1
关注者
28
收藏集
0
关注标签
8
加入于
2019-07-24