几个小细节帮你提升java代码运行效率

2020-07-08
阅读 4 分钟
1.8k
千万不要小看代码细节的优化,有时候一个很小的优化就要你的代码执行效率数倍提升,如果这个优化点调用比较频繁,甚至有可能解决你整个系统的性能瓶颈。

spring data操作ES简直不能再香

2020-06-27
阅读 8 分钟
9.2k
Elasticsearch(以下简称ES)并不像mysql这么容易上手,很多java程序员会觉得ES的java客户端比较难以掌握,尽管ES 7.x官方推荐的high level client已经相对于早期的TransportClient好用很多了。

ES系列之原来ES的聚合统计不准确啊

2020-03-15
阅读 4 分钟
8.3k
本篇文章不是讲ElasticSearch(下面简称ES)聚合分析的基本概念和用法的,这些网上的资料很多,不清楚的可以自行查阅。 我下面聚合分析使用的数据都是kibana自带的,这样方便有些读者实际测试文中的示例。 基本概念 ES为了满足搜索的实时性,在聚合分析的一些场景会通过损失精准度的方式加快结果的返回。这其实ES在实时...

你真的会用volatile吗

2020-02-09
阅读 5 分钟
1.9k
volatile的概念 或者说,volatile解决什么问题? 我自己的总结:volatile解决多线程下变量访问的内存可见性问题,用于线程间通信。 通信怎能理解呢,线程A写一个volatile变量,随后线程B读这个volatile变量,这个过程实质上是线程A通过主内存向线程B发送消息。 java语言标准规范对volatile的描述是这样的: The Java pro...

详解 java CompletableFuture

2020-01-25
阅读 6 分钟
2.9k
要理解 CompletableFuture,首先要弄懂什么是 Future。因为后者是前者的扩展。本文并不打算详细的介绍 Future,毕竟不是本文的重点。

什么鬼,java线上内存溢出了?试试这个神器

2020-01-15
阅读 3 分钟
3k
内存分析工具MAT(Memory Analyzer Tool)是一款 JVM 的内存分析工具,在实际的工作中可以帮助我们解决生成上内存占用过高等问题。

如何优雅的判断一个对象的属性是否全部为空

2020-01-14
阅读 3 分钟
6.6k
马上能想到的一个方案是,一个一个判断对象中的属性。这个倒也可以,但是如果要判断的对象比较多,就得给每个对象写一个判断方法(因为每个对象的属性都不一样)。

如何打印GC日志排查问题

2020-01-14
阅读 3 分钟
2k
在工作当中,有时候我们会需要打印GC的相关信息来定位问题。该如何做呢? 先来看个示例, {代码...} 直接运行,结果如下, {代码...} 你应该觉得奇怪,同样的往一个list插入100万条数据,为啥第一个耗时比较久? 这种时候,有经验的工程师应该能马上怀疑是GC的问题,我们可以通过在运行时添加JVM参数来打印程序运行时的G...

从一个生产上的错误看kafka的消费再均衡问题

2020-01-07
阅读 2 分钟
1.7k
kafka的服务端在超过了 max.poll.interval.ms 时间内没有收到某个消费者的心跳,认为该消费者已经“挂了”,所以进行了topic的分区所有权“再均衡”。

Elasticsearch java API客户端介绍

2020-01-02
阅读 4 分钟
4.9k
基本上官方指南就已经向我们说明了一切。如下图所示: 从官方指南上,ES的java 客户端分为两个大类。分别是: Java REST Client Java API 下面分别说下这两种有什么区别。 Java API 在ES 7.0之前最常采用的API,基于TransportClient客户端。网上大部分ES 客户端的资料基本都是基于它的。这种方式在ES 7.x后已经不被官方...