Java 深度拷贝测试

2021-03-22
阅读 3 分钟
1.3k
Java 深度拷贝测试测试选择了两种深度拷贝的方式Object Streamfast-serializationfast-serialization 是一个开源的高性能的序列化库。RuedigerMoeller/fast-serialization使用 idea 新建一个 maven 项目,引入需要的开源工具 JMH 和上面的 fast-serialization。 {代码...} 使用 Object Stream 和 fast-serialization 写...

Spring boot redis cache 的 key

2019-05-12
阅读 3 分钟
6.5k
在数据库查询中我们往往会使用增加缓存来提高程序的性能,@Cacheable 可以方便的对数据库查询方法加缓存。本文主要来探究一下缓存使用的key。

idea 启用火焰图功能

2019-03-23
阅读 1 分钟
8.6k
开源项目 async-profiler 是一个Java 的低开销采样分析器,可以生成火焰图。idea集成了它的功能,使用起来更加的简单。 开启火焰图 按下快捷键 shift alt command + / 选择 4 Experimental features 勾选 idea.profiler.enbaled 这就开启了火焰图功能。 启动程序 随便写一点代码 {代码...} 使用下图中红色标注的方式启动...

Spring Boot 记录 Http 请求日志

2019-03-17
阅读 5 分钟
11.5k
在使用Spring Boot开发 web api 的时候希望把 request,request header ,response reponse header , uri, method 等等的信息记录到我们的日志中,方便我们排查问题,也能对系统的数据做一些统计。

Java 开启 gc 日志

2019-03-08
阅读 2 分钟
4.4k
使用 -verbose:gc 或 -XX:+PrintGC 这两个参数可以创建基本的 GC 日志,使用 -XX:+PrintGCDetails 可以创建更加详细的日志。

Java 8 常用时间 api

2018-11-04
阅读 3 分钟
2.5k
Java 8 提供了一套新的时间 api ,比之前的 Calendar 类要简单明了很多。常用的有三个类 Instant、LocalDate 、LocalDateTime , Instant 是用来表示时刻的,类似 Unix 的时间,表示从协调世界时1970年1月1日0时0分0秒起至现在的总秒数,也可以获取毫秒。LocalDate 表示一个日期,只有年月日,没有时分秒。LocalDateTime ...

com.sun.net.httpserver 创建 web 服务

2018-05-19
阅读 4 分钟
5.5k
我最开始学习 Java web 编程是要去写一个 servlet, 重写里面的 service 方法,然后去配置 web.xml 文件,最后就是部署到 tomcat 或者 jetty 容器中并启动。后来就是使用一些框架,struts2 SpringMvc。今天我瞎翻 JDK 的源代码,发现可以用 com.sun.net.httpserver 包下提供的 API 很快速的创建 web 服务,它的创建方式...

Spring Boot 异步执行方法

2018-03-25
阅读 5 分钟
11.1k
最近遇到一个需求,就是当服务器接到请求并不需要任务执行完成才返回结果,可以立即返回结果,让任务异步的去执行。开始考虑是直接启一个新的线程去执行任务或者把任务提交到一个线程池去执行,这两种方法都是可以的。但是 Spring 这么强大,肯定有什么更简单的方法,就 google 了一下,还真有呢。就是使用 @EnableAsync...

Java 8 并发: 原子变量和 ConcurrentMap

2018-02-04
阅读 6 分钟
3.2k
java.concurrent.atomic 包下有很多原子操作的类。 在有些情况下,原子操作可以在不使用 synchronized 关键字和锁的情况下解决多线程安全问题。

Java 8 并发:同步和锁

2017-12-24
阅读 7 分钟
2.7k
原文地址: Java 8 Concurrency Tutorial: Synchronization and Locks 为了简单起见,本教程的示例代码使用了在这里定义的两个辅助方法,sleep(seconds) 和 stop(executor) Synchronized 当我们编写多线程代码访问可共享的变量时需要特别注意,下面是一个多线程去改变一个整数的例子。 定义一个变量 count,定义一个方法...

Java 8 并发: Threads 和 Executors

2017-12-17
阅读 7 分钟
3.6k
Java 5 初次引入了Concurrency API,并在随后的发布版本中不断优化和改进。这篇文章的大部分概念也适用于老的版本。我的代码示例主要聚焦在Java 8上,并大量适用 lambda 表达式和一些新特性。如果你还不熟悉 lambda 表达式,建议先阅读 Java 8 Tutorial。

cut 命令的使用

2017-11-25
阅读 1 分钟
1.9k
上面的三个参数 byte-list character-list field-list 是用逗号隔开的一个或多个数字和范围组成(用-连接的范围)。字节、字符和段的其实位置都是1,也可以不给出完成的范围:-m等同于 1-m; n-等同于 n 到行尾。

在 mac 下安装 GNU 软件包

2017-10-27
阅读 2 分钟
9.1k
今天在mac上运行一个 shell脚本出现了很多错误,发现很多自带的命令和GNU的命令在使用上有很多不同,所以就试着在mac上安装GNU的常用软件包。

iterm2终端manpage高亮显示

2017-04-29
阅读 1 分钟
4.8k
iterm2 据说是macOS平台上最好用的终端工具,今天下载来用了一下,发现确实很好。但是在使用man命令显示manpage的时候,颜色配置不是很让人满意,就像下面这样:

理解C语言中的关键字extern

2017-04-05
阅读 2 分钟
8k
最近写了一段C程序,编译时出现变量重复定义的错误,自己查看没发现错误。使用Google发现,自己对extern理解不透彻,我搜到了这篇文章,写得不错。我拙劣的翻译了一下。(原文:http://www.geeksforgeeks.org/understanding-extern-keyword-in-c/)

golang文件操作

2017-02-18
阅读 3 分钟
9k
go文件的相关操作函数在os包下,可以查看os包官方文档来学习。 创建文件并写入内容 创建文件和写入需要用到两个函数: {代码...} 具体的代码如下: {代码...} $ go run create_write.go就会看到创建了文件demo.txt, 并写入了内容。 读取文件内容 {代码...} $ go run read.go就可以看见读取成功。 在os包下还有有关目录的...

使用Homebrew安装配置golang环境

2017-02-10
阅读 1 分钟
20.3k
安装Homebrew 在Homebrew复制安装命令,在控制台运行完成安装 安装golnag {代码...} PATH配置 创建一个目录作为gopath,在目录创建三个目录bin、src、pkg {代码...} 编辑.bash_profile文件并保存,文件内容如下 {代码...} 运行source .bash_profile使配置的PATH生效。 安装完成 运行go env查看安装效果: {代码...} enjoy...

mac osx安装mysql5.7.9

2015-11-28
阅读 1 分钟
6.4k
下载安装mysql5.7.9 下载地址mysql-5.7.9-osx10.10-x86_64.dmg dmg格式的包直接点击安装即可,在安装最后会弹出一个root用户的初始密码(复杂不易记住)一定要记录下这个密码,否则就要重新安装了 启动mysql服务 打开系统偏好设置 选择MySQL 点击Start MySQL Server 配置环境变量 vim .bash_profile 在PATH 变量后添加/u...

mac osx go开发环境搭建(LiteIDE)

2015-11-17
阅读 2 分钟
17.6k
下载go1.5.1.darwin-amd64.tar.gz包,解压得到一个go目录,把go目录移动到你想要的路径下,我这里是放在~/Documents/go这个路径下的