发布了 10 篇内容
共 36087字, 被阅读 2654次
获得了 38 次赞同
获得了 10次喜欢, 获得了 28 次收藏
参与了 0 次互动
互动包含发布评论、点赞评论、参与投票等

Spock 单元测试框架实战指南一 Spock 是什么?它和 JUnit 有什么区别?
这是 Spock 系列的第一篇文章,整个专辑会介绍 Spock 的用途,为什么使用 Spock?它能给我们带来什么好处?它和 JUnit、JMock、Mockito 有什么区别?我们平时写单元测试代码的常见问题和痛点,Spock 又是如何解决的,Spock 的代码怎么编写以及 Spock 的优势和缺点等内容

线程池 ForkJoinPool 简介
ForkJoinPool 线程池最大的特点就是分叉 (fork) 合并 (join),将一个大任务拆分成多个小任务,并行执行,再结合工作窃取模式 (worksteal) 提高整体的执行效率,充分利用 CPU 资源。

一文带你彻底了解 Java 异步编程
随着 RxJava、Reactor 等异步框架的流行,异步编程受到了越来越多的关注,尤其是在 IO 密集型的业务场景中,相比传统的同步开发模式,异步编程的优势越来越明显。


Windows 环境下如何进行线程 Dump 分析
现在大部分公司都有自己完整的一套监控系统,比如美团的 CAT,我们公司的监控系统也是基于 CAT 做的二次开发。一般测试环境或生产环境有问题可以直接使用这些系统查看线程和内存运行情况,分析排查问题。

Java 开发利器之重试器
在平时开发中经常会遇到需要调用接口和外部服务的场景,但是有些接口服务方不能立即返回数据,而是需要处理一段时间才能返回真实的业务数据,如果没有处理完则直接返回一个中间状态的结果。

Java 踩坑记系列之 Arrays.AsList
java.util.Arrays 的 asList 方法可以方便的将数组转化为集合,我们平时开发在初始化 ArrayList 时使用的比较多,可以简化代码,但这个静态方法 asList() 有几个坑需要注意:

Java 踩坑记系列之 BigDecimal
在 java.math 包中提供了对大数字的操作类,用于进行高精确计算,如 BigInteger,BigDecimal 类。而平常我们开发中使用最多的 float 和 double 只能适用于一般的科学和工程计算,如果要在比较精确的计算方面如货币,那么使用 float 和 double 会相应的丢失精度,因此用于

Java 踩坑记系列之线程池
线程池大家都很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于 JDK 线程池 ThreadPoolExecutor 做的封装,比如 tomcat 的线程池,当然也有单独开发的,但都会牵涉到这几个核心参数的设置:核心线程数,等待队列,最大线程数,拒绝策略等。

JVM Metaspace 内存溢出排查与总结
前段时间公司线上环境的一个 Java 应用因为 OOM 的异常报警,导致整个服务不可用被拉出集群。 Metaspace 元空间主要是存储类的元数据信息,我们的应用里加载的各种类描述信息,比如类名、属性、方法、访问限制等,按照一定的结构存储在 Metaspace 里。