Java Shutdownhook-优雅的关闭服务
什么是ShutdownHook?
在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。
使用 Runtime.addShutdownHook(Thread hook) 方法,可以注册一个JVM关闭的钩子,这个钩子可以在以下几种场景被调用:
程序正常退出
使用System.exit()
终端使用Ctrl+...
2019-10-30 03:18:30 |
Java
字节码概览
class 文件简介及加载
Java编译器编译好Java文件之后,产生 .class 文件在磁盘中。
这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。
JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析 .class 文件内的信息,生成对应的 Class对象:
文件格式
class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、...
2019-10-30 03:18:30 |
Java
字节码生成-Byte Buddy
Byte Buddy
Byte Buddy 是一个代码生成和操作库,用于在Java应用程序运行时创建和修改Java类,而无需编译器的帮助。
除了Java类库附带的代码生成实用程序外,Byte Buddy还允许创建任意类,并且不限于实现用于创建运行时代理的接口。
此外,Byte Buddy提供了一种方便的API,可以使用Java代理或在构建过程中手动更改类。
简洁优雅的 api
为了...
2019-10-30 03:18:30 |
Java
从零开始的 windows 开发环境搭建-02-idea
IDEA 常用的设计
常见设置
参见 idea 工具
需要调整的地方
font-size
直接 crtl+alt+s 设置 font
serial 相关
直接搜索,设置为系列化的对象生成唯一标识
设置 java 文件头
java 文件还是很需要文件头的,建议常用如下:
file and code template
/**
* <p> project: ${...
2019-09-26 14:35:36 |
Windows
从零开始的 windows 开发环境搭建-01-git
GIT 拉取报错
报错信息
$ git clone https://github.com/houbb/houbb.github.io.git
Cloning into 'houbb.github.io'...
remote: Enumerating objects: 138, done.
remote: Counting objects: 100% (138/138), done.
re...
2019-09-26 14:35:36 |
Windows
从零开始的 windows 开发环境搭建-00-overview
背景
这段时间全部重新装的 windows 环境,感觉每次都需要整理一下 windows 相关的环境信息。
这里统一整理一下,便于以后查阅。
常用软件列表
chrome
下载安装 chrome 浏览器
下载失败问题
一直下载失败,调增下设置,下载文件夹修改为存在的文件夹即可。
输入法
使用 sougou 输入法。
管理工具
火萤酱(火柴) 下载。
垃圾软件下载...
2019-09-26 14:35:36 |
Windows
性能测试框架-Performance
性能测试需求
我们经常需要对代码的性能进行压测,如果全部自己写一个工具,还是很消耗时间的。
junit
如果你使用 junit,可以直接结合 junitperf 进行编写。
简单的 main()
如果你直接想测试验证下,那也不是不行。
此处直接给出一个测试验证的代码模板。
import org.slf4j.Logger;
import org.slf4j.LoggerFacto...
2019-09-26 14:35:36 |
Tool
Java BigDecimal 深入学习
BigDecimal 遇到的坑
现象
public static void main(String[] args) {
BigDecimal one = new BigDecimal("60");
BigDecimal two = new BigDecimal("60.00");
System.out.println(one.equals...
2019-09-26 14:35:36 |
Java