JAVA核心技术
非洲平头哥
互联网金融,政务,云计算
展开
-
Java 缓存库 — Caffeine
缓存是提升性能的通用方法,现在大多数的缓存实现都使用了经典的技术。这篇文章中,我们会发掘Caffeine中的现代化的实现方法。Caffeine 是一个开源的 Java 缓存库,它能提供高命中率和出色的并发能力。期望读者们能被这些想法激发,进而将它们应用到任何你喜欢的编程语言中。驱逐策略缓存的驱逐策略是为了预测哪些数据在短期内最可能被再次用到,从而提升缓存的命中率。由于简洁的实现、高效的...转载 2019-08-01 18:02:33 · 934 阅读 · 0 评论 -
Java中SPI机制
什么是SPI被广大程序员所熟知的就是API,API叫做"Application Programming Interface",即应用程序接口,是框架对外提供的能力的接口。SPI叫做"Service Provider Interface",即服务提供接口,是用于扩展框架能力的。SPI有什么用我们长听说面向接口编程,那么面向接口编程的有点是什么呢?面向接口编程的优点是不需要关注...原创 2019-03-31 18:21:00 · 465 阅读 · 0 评论 -
关于BigDecimal的一次采坑记录
一、上例子 对于上面两行代码,使用的构造器一个传入是字符串,一个是double型,那么输出结果是什么呢?如果简单你认为是5432.07的话,我想很多童鞋也踩了这个坑了,输出结果如下:二、关于Double,Float和BigDecimal的使用《Effactive Java》这本书中是这么说的,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二...原创 2018-12-22 16:59:20 · 554 阅读 · 0 评论 -
JSR 354为Java引入金钱与货币的完美支持
一、基于ISO-4217实现的货币处理类的问题 java1.4引入基于ISO-4217的java.util.Currency类以及将数字转换为货币金额格式的类java.text.DecimalFormat,转换后的值用于基本的数学计算后也能正确的以货币形式呈现。但是如果仔细研究便会发现很多需求并没有被满足,只是部分实现而已。java.util.Currency类缺少了几种很重要的ISO货币代码。比...原创 2018-04-17 15:22:38 · 2572 阅读 · 0 评论 -
JAVA COW(写时复制)容器介绍
1.什么是COW?Copy-On-Write简称COW。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思...原创 2018-04-07 20:43:15 · 2603 阅读 · 0 评论