200319-MongoDb系列教程零:环境安装与初始化

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

本篇为mongodb系列教程第一篇,环境安装与连接设置

200316-手把手教你实现一个方法耗时统计的java agent

前面有两篇铺垫博文,在博文《200303-如何优雅的在java中统计代码块耗时》,其最后提到了根据利用java agent来统计方法耗时

博文《200316-IDEA + maven零基础构建java agent项目中则详细描述了搭建一个java agent开发测试项目的全过程

本篇博文将进入java agent的实战,手把手教你如何是实现一个统计方法耗时的java agent

200316-IDEA + maven零基础构建java agent项目

Java Agent(java探针)虽说在jdk1.5之后就有了,但是对于绝大多数的业务开发javaer来说,这个东西还是比较神奇和陌生的;虽说在实际的业务开发中,很少会涉及到agent开发,但是每个java开发都用过,比如使用idea写了个HelloWorld.java,并运行一下, 仔细看控制台输出

本篇将作为Java Agent的入门篇,手把手教你开发一个统计方法耗时的Java Agent

200314-MySql 时区少8小时问题

SpringBoot指定com.mysql.cj.jdbc.Driver来操作mysql数据库时,发现时区有八个小时的差距,主要原因在于需要在url中指定时区信息,否则会有这个问题

200303-如何优雅的在java中统计代码块耗时

在我们的实际开发中,多多少少会遇到统计一段代码片段的耗时的情况,我们一般的写法如下

1
2
3
4
5
6
long start = System.currentTimeMillis();
try {
// .... 具体的代码段
} finally {
System.out.println("cost: " + (System.currentTimeMillis() - start));
}

上面的写法没有什么毛病,但是看起来就不太美观了,那么有没有什么更优雅的写法呢?

200214-Guava BloomFilter 使用手册

在jdk中有一个数据结构BitSet,可以用来执行位操作,比如我们常见的统计网站在线人数、pv/uv等;但是当数据样本分布不均,可能导致较大的空间浪费;其次它更适用于正整数类型的判定,针对其他的业务场景,有点薄弱

本文将介绍BloomFilter(布隆过滤器)的相关知识点,以及Guava中BloomFilter的使用姿势

200115-Redis配置参数在线修改(热修改)

redis的配置除了直接修改配置文件之后,重启进程之外,还支持在线修改,下面记录一下使用姿势

200111-老哥,你真的知道HashMap初始化大小如何设置么

HashMap对于javer而言,可以说是非常非常熟悉的一个容器类了,可以说99.99%的java开发者都用过它,那么你知道怎样创建一个HashMap是最优雅的方式呢?

200109-Python redis使用手册上篇

本文可作为redis的操作指南,介绍redis命令对应的python使用姿势

191225-Quick-Alarm 钉钉报警支持

Quick-Alarm时隔一年半,新增钉钉报警支持,在原有的项目基础上,新增报警规则比较简单;下面介绍一下实现与使用姿势

191217-Ognl之内部类与静态成员属性修改使用姿势

191204-Ognl 使用实例手册 中,当时遇到一个问题,静态成员属性直接赋值时,会抛出异常;那么这个问题真的无解么?

此外之前的实例手册中,漏了一个内部类的使用姿势,本文也一并补上

191206-Docker 常用命令速查手册

记录一下docker的日常使用命令,本文主要针对linux + mac操作系统而言,window是否适用不太确定,谨慎使用

191206-Centos安装docker与使用说明

本文主要介绍Centos下如何安装docker,并给出一些基本的使用case

191204-Ognl 使用实例手册

上一篇博文介绍了ongl的基础语法,接下来进入实际的使用篇,我们将结合一些实际的case,来演示ognl究竟可以支撑到什么地步

在看本文之前,强烈建议先熟悉一下什么是ognl,以及其语法特点,减少阅读障碍,五分钟入门系列: 191129-Ognl 语法基础教程

191129-Ognl 语法基础教程

本文将力求用最简单的语言是和示例,介绍一下OGNL的语法规则,文章主要内容参考自官方文档http://commons.apache.org/proper/commons-ognl/language-guide.html

  • 本篇主要是语法介绍篇,实战放在一下篇

191122-nginx 开启gzip压缩配置

ngxin 开启gzip压缩,减少数据包大小,默认场景下nginx没有开启gzip压缩,需要主动指定

关键配置修改如下(进入配置文件 nginx.conf)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
http {
# ...

# 开启gzip压缩
gzip on;
# 表示当请求的资源超过1k时,才开启压缩
gzip_min_length 1k;
# 设置压缩所需要的缓冲区大小
gzip_buffers 4 16k;
# 针对的http版本
gzip_http_version 1.0;
# 压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
gzip_comp_level 2;
# 支持压缩的资源类型,对于前后盾分离的项目而言,注意下json的压缩支持
gzip_types text/plain application/x-javascript text/css application/xml application/json text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary off;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

}

修改完毕之后重启nginx即可

1
nginx -s reload

191121-Python 科学计数法误用引起的血案

记录一个代码中误用科学计数法导致所有的数据增大十倍的问题

科学计数法用e表示,后面跟上数字n,表示10的n次方;然后10^8用科学计算法怎么写?

正确写法

1
1e8  # 前面的1不能缺少

错误用法

1
10e8  # 这个实际上是10亿

191113-Quick-Media Java生成艺术二维码也可以很简单

现在二维码可以说非常常见了,当然我们见得多的一般是白底黑块,有的再中间加一个logo,或者将二维码嵌在一张特定的背景中(比如微信、支付宝的收款码);偶尔也可能看到一些酷炫的二维码,比如非黑白的、渐变色的、非方块样式的,或者说是动态的二维码

那么问题来了,走位一个java开发者而言,有没有什么开源库,可以简单迅速不烧脑的实现各种炫酷的二维码呢?

接下来我们将介绍下,如何借助 https://github.com/liuyueyi/quick-media 项目的 qrcode-plugin 来生成各种酷炫的二维码

191107-InputStream重复使用小技巧

在日常的编码中,有时会遇到,需要重复获取InputStream中的数据的需求;然后一般的流,只能读一次,读完就没了;那么如果我希望有一个可以重复读取数据的InputStream,可以怎么操作?

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×