Andy Liu
个人专栏

最新文章

查看RabbitMQ的版本号

有时需要在服务器上查看rabbitmq当前安装的版本号,通过rabbitmqctl status就可以获得,命令如下:sudo rabbitmqctl status | grep rabbit得到结果:{rabbit,"RabbitMQ","3.7.3"},

设置Log4j显示的日期格式

一个简单的log4j配置如下:log4j.rootLogger=DEBUG, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.Patt

Java 8使用parallel Stream测试StringBuilder线程安全

我们知道StringBuilder不是线程安全的,但如何证明它非线程安全呢?测试StringBuilder是否线程安全一个简单的思路如下:模拟多个线程并发向StringBuilder实例添加字符,最后检测builder.toString().length()的值是否为添加字符的次数,如果非线程安全会出现builder.toString().length()的值与添加字符的次数不一致。Java&nb

java.util.Objects的使用

java.utils.Objects针对Object对象提供了几个静态的工具方法,这些方法可以归类为:null安全检查对象比较计算对象hash code对象转换为Stringnull安全检查null安全检查有5个方法:isNull(Object obj):检查对象是否为null,null返回true,否则返回falsenonNull(Object obj):与isNu

Java Scanner类next和nextLine的区别

JavaDoc解析A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.next(): Finds 

理解Java的数字溢出

Java各个数字类型所占的存储空间:整型byte:1字节,1*8bit,取值范围-128~127short:2字节,2*8bit,取值范围-32768~32767int:4字节,4*8bit,取值范围-2147483648~2147483647long:8字节,8*8bit,取值访问-2^64~2^64-1浮点型float:4字节,4*8bitdouble:8字节,8*8bitchar类型java

Java奇偶数更新版本的区别以及安装版本选择

在Oracle Java下载页面,我们会看到有两个版本的JDK下载,如JDK 8的8u151和8u152。Java在每一次发布会有两个更新版本:CPU(Critical Patch Update ):重要补丁更新。PSU(Patch Set Update):补丁集更新 。重要补丁更新 (CPU) 包含安全漏洞

Java随机产生指定范围的int整数

Java 7后的版本Java 7新增了ThreadLocalRandom类,可以使用它来随机生成指定范围的整数。import java.util.concurrent.ThreadLocalRandom; int randomNum = ThreadLocalRandom.current().nextInt(min, max);

Ubuntu使用ppa安装JDK8/JDK9

这是有WebUpd8 维护的一个Oracle Java PPA。它提供了安装JDK8以及JDK 9的installer。这些installer不包含Java的二进制文件,只是一个提供自动下载以及安装JDK的脚本。目前支持的Ubuntu版本包含:Ubuntu 16.10, 16.04, 15.10, 14.04 以及&n

配置Eclipse使用Java9

Oxygen 4.7.1aEclipse Oxygen 4.7.1a已经支持Java 9启动,以及支持Java 9的开发,直接安装Eclipse Oxygen 4.7.1a即可,不需要特别的配置。但运行可能会出现一些环境问题,也可以按以下配置eclipse.ini指定Java 9的vm-vm C:\Program&nb

Spring Controller统计数据库的百万行数据(Aggregate Millions of Database Rows in a Spring Controller)

了解如何使用Spring和Speedment在Java中执行超快速聚合,即使是具有数百万行的大型数据集。只要API与数据库的结构相匹配,Spring Framework就可以使用JPA和Spring Web快速地建立关系型数据库的RESTful API。 然而,在许多API中,REST端不对应于特定的表,而是对应于一些聚合的字段。在这些情况下,你仍然需要编写自己的RE

Java Objects.hash()与自己实现的hashCode()比较

Java 7新增了Objects类,它为对象提供了一些便捷的静态方法,如equals(),hashCode(),hash(),compare(),toString()等等。这里比较一下Objects.hash()与自己实现的hashCode()。传统实现的hashCode@Override public int hashCode() {  &nbs