摘要:
一、HashMap 基本实现(JDK 8 之前) HashMap 通常会用一个指针数组(假设为 table[])来做分散所有的 key,当一个 key 被加入时,会通过 Hash 算法通过 key 算出这个数组的下标 i,然后就把这个 <key, value> 插到 table[i] 中,如果有两个 阅读全文
摘要:
BeanUtils.copyProperties通过java反射将类中当前属性字段对应的内容复制到另外一个类中。 注意:spring的BeanUtils.copyProperties 只拷贝属性类型和属性名都相同的属性。其中基础类型(int long short)和其包装类是可以互相拷贝的。 spr 阅读全文
摘要:
一、概述 选择Cglib的BeanCopier进行Bean拷贝的理由是,其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多,尤其是数据量比较大的情况下。 之前的一篇文章:Easy-mapper教程——模型转换工具 提到了Cglib的Bea 阅读全文
摘要:
一、背景 做Java开发都避免不了和各种Bean打交道,包括POJO、BO、VO、PO、DTO等,而Java的应用非常讲究分层的架构,因此就会存在对象在各个层次之间作为参数或者输出传递的过程,这里转换的工作往往非常繁琐。 这里举个例子,做过Java的都会深有体会,下面代码的set/get看起来不那么 阅读全文
摘要:
1、查询表的数据量大小 2、MySQL查询阻塞语句 3、统计数据库中访问量前10的IP 阅读全文
摘要:
一、概述 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。默认情况下,MySQL不启动慢查询日志。本文简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询。 二、慢查询日志设置 阅读全文
摘要:
一、概述 建造者模式也叫生成器模式,23种设计模式之一,属于创建类模式。 在描述建造者模式之前,大家首先要明白一个道理就是任何设计模式的产生都是为了解决某一类问题,更准确的说是为了应对某一种变化,设计模式就是封装变化,把变化的部分和不变的部分隔离开。设计模式的好处就是运用面向对象的思想让我们能够更简 阅读全文
摘要:
一、概述 @InitBinder用于在控制器(Controller)中标注于方法上,表示为当前控制器注册一个属性编辑器,只对当前的Controller有效。@InitBinder标注的方法必须有一个参数WebDataBinder。webDataBinder是用于表单到方法的数据绑定的。所谓的属性编辑 阅读全文
摘要:
一、概述 Jedis是Redis官方推荐的Java连接开发工具。下面总结下使用相关API。比较粗糙,主要是copy总结网上的一些资料,有时间再重新整理好了。 参考API文档:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jed 阅读全文
摘要:
今天就先从网上摘写总结下这个基础类,后续再加上实战总结补充进来,所以排版可能比较乱。。 在编写一个项目时,我们会时常修改一些配置变量来适应不同的运行环境,同时也让用户能够脱离程序去修改相关的变量设置。通常我们将这些变量定义在后缀名为properties的文件中,文件内容的格式为“键=值”,文本用“# 阅读全文