你改变了时间,也受到了时间的报复

Java整合elasticsearch开发环境搭建

Elasticsearch是一个基于Lucene的搜索框架,它的结果都是通过json展示。最近需要用到(做为一个Java开发,现在才用有点晚吧,汗),这里记录一下搭建过程中的坑。

阅读全文
发布于2019-06-27

Java中模块的使用(2) Java模块和maven的集成

在Java9以前,maven已经提出了模块的概念。用过maven的对于maven的模块绝对不陌生。那么现在有了jigsaw,还需要maven的模块吗?本篇简单介绍一下Java模块和maven的集成使用。通过本篇可以看到,Java模块和maven模块是两个维度的东西,互不干涉对方内政。

阅读全文
发布于2019-06-17

Java中模块的使用

Java的模块(就是著名的Jigsaw项目的产物)是Java9中开始出现的。 这里介绍一下如何通过IntelliJ IDEA 搭建简单的Java模块项目。我使用的jdk版本是11.0.1。

阅读全文
发布于2019-06-14

java虚拟机中内存的划分

这篇文章不是讲Java内存管理的,也不是Java运行时内存如何划分的。而是JVM内的内存如何划分的,所以不包含直接内存部分。

阅读全文
发布于2019-06-12

测试时的sql打印方案

在日常开发过程中调试是十分频繁的事情,辅助调试的重要手段就是日志。除了业务日志,很多时候破解惨案的入口都在数据库查询上,因此被执行SQL的日志也很重要。但是线上环境由于sql量极大,并不会启用sql的打印,否则不仅日志文件打开一看全是垃圾SQL,而且日志文件很快就占满了磁盘。但是测试时如果能记录sql对于排错就会是很方便的事情。

阅读全文
发布于2019-05-26

MySQL 的 “UPSERT”

我最早接触到的数据库的upsert功能是MongoDB提供的,upsert能避免竞态问题。没有upsert的时候,需要先去数据库中查找符合条件的文档,然后再根据更新信息更新数据,这个在多线程或者多进程的情况下会产生资源竞争,使用upsert可以很好的避免这种情况的发生。Mysql没有提过(我没有见过)upsert这个概念,不过提供了语法实现类似的功能。

阅读全文
发布于2019-05-25

JAVA文件的编译

编译实际就是翻译,是将人类易读(为啥?因为开发语言的目的就是为了让人容易使用)的语言转换为机器或程序易读的语言。Java的编译器是javac,它将.java文件编译为.class文件,也就字节码文件。

阅读全文
发布于2019-05-20

JIT in JAVA

Java发展这么多年一直长青,很大一部分得益于开发人员长期对其坚持不懈的优化:写得更少,跑得更快!JIT就是其中一项十分重要的优化。

阅读全文
发布于2019-05-16

Lombok插件不支持IDEA 2018的解决方案

如果你也在intellij idea 2018中使用了Lombok,现在的插件是不支持的。虽然打包和build都不抱错,但是打开编辑器看到一大片红色的编译错误提示还是十分不爽,关键是没有了自动完成。这里说一下解决方案。

阅读全文
发布于2019-05-14

Vavr入门(2)

前一篇文章介绍了元组和函数式增强,似乎感觉vavr有点鸡肋。希望这篇文章能稍微改善一点你的看法。

阅读全文
发布于2019-05-13

Vavr入门(1)

Vavr是一套Java增强集,不同于广泛使用的工具集,它更像Java8以前的JodaTime。

阅读全文
发布于2019-05-10

gitk的用法

gitk 是一个强悍的git图形化工具。它可不仅仅是命令行的一个替代产品,实际上它能实现很多命令行并不能提供的git功能。所以不要认为它和命令行是git操作的两种实现工具。

阅读全文
发布于2019-05-08