如何得到一个对象真实的内存大小

2016-10-16
阅读 4 分钟
5.5k
如何得到一个对象真实的内存大小 介绍一款工具(memory-measurer)可方便的测量一个对象真实占用内存大小 如有这么一个User对象 {代码...} 先看一个空User对象的内存占用量 {代码...} 可知一个对象 三个引用 共占了24字节 逐个赋值后占用内存是多少呢? {代码...} 一个Integer对象占用16字节 于是给id赋值后 user对象变成...

如何得到Mysql每个分组中的第N条记录

2016-10-15
阅读 2 分钟
3.4k
问题背景 1) 限制:每个用户在一个类目下,最多享受4单满送优惠。 即统计享受了满送优惠的订单数时需要排除掉同一类目下第四单以后的订单 如何得到每个用户同一类目下第四单ID呢? {代码...} 可惜Mysql并没有分组函数可以方便的得到每组中第四个id。但可以有变通方案, 如有如下的表 {代码...} 如何得到每个用户第二次...

开发经验得失 -- 关于表设计 字段是否为空

2016-10-05
阅读 1 分钟
2k
由线上空指针问题想到的 商品有个标签字段(tag_id): INT DEFAULT NULL 下单时报了空指针异常 原因是tag_id = 0 但又不存在id为0的标签 经验得失 如果一开始商品标签字段定义为:INT NOT NULL DEFAULT 0 是不是就可以避免此问题了呢 因为太容易导致商品标签为0了 如 下拉列表中的请选择 实体的属性为基本类型(int)时...

使用JMH对比BeanUtils和BeanCopier

2016-09-25
阅读 3 分钟
3.5k
但这样的做法非常不严谨, 因为当独立频繁运行这一小块代码时,Jvm可能会针对性的做一些优化工作, 而在实际的生产环境中是不会有此优化的。 如一个Jvm优化的例子

关于比较字段使用不同字符集导致的索引失效问题

2016-09-23
阅读 1 分钟
3.5k
最近遇到这么一个问题,两个表通过user_id关联 {代码...} 且两个表中user_id均加了索引 {代码...} 但实际查询很慢, 约3605ms。为什么这么慢呢? 通过explain extended命令可知未走索引 id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE b ALL 3533678 1 SIMPLE a ref user_id user_id 162...

执行批量curl请求脚本注意事项

2016-09-20
阅读 1 分钟
11.8k
通过shell生成curl请求 然后批量执行 如下所示 {代码...} 解决方法 给url加上双引号即可 {代码...} 总结 批量执行curl请求 url需要用引号括起来

BeanCopier 与 BeanUtils 及 人工setter之间的比较

2016-09-17
阅读 7 分钟
13.3k
同事通过Jmeter压测领券中心接口时发现了查询店铺券的一个性能瓶颈, 定位到瓶颈位于将entity list转成model list处。因为领券中心需展示推荐店铺的店铺券,如一个100个店铺每个店铺的可领店铺券10个的话, 共有1000个店铺券。这个数量级情况下 通过BeanUtils.copyProperties的方式来自动转化相比人工setter的话, 性能...

抽奖大转盘设计演化

2016-09-17
阅读 3 分钟
6.2k
刚开始只有一个抽奖大转盘活动 有如下抽奖规则 每个用户每天可以抽3次 新客第一次抽奖100%中奖 新客接下来抽奖只能中红包奖品 中了优惠券一个月内只能中红包 中了实物半年内只能中红包 对应的数据库表设计为 {代码...} 但是后面又有开宝箱活动需要复用抽奖大转盘的玩法 而开宝箱与已有的抽奖大转盘又有所不同 如下所示 ...

单元测试最佳实践示例汇总

2016-09-17
阅读 3 分钟
4.8k
想校验优惠券实际发放情况 如满200减100发了两张, 满100减50发放了一张, 但是优惠券编码是随机生成的, 没办法在单元测试中得知券和编码的对应关系。

H5提交json格式的post请求失败原因一种及解决

2016-09-16
阅读 1 分钟
6.3k
For cross-domain requests, setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server. so if server does not allow it will throw errors.

Map容器大小影响key的索引

2016-09-03
阅读 2 分钟
2.1k
单元测试偶然发现的Map一个问题 {代码...} 可见如果显式指定了map容器大小 会影响key的索引。如下所示 默认大小 key index aaa 3 ccc 10 bbb 14 显式指定了大小3 key index aaa 3 ccc 2 bbb 2

匿名内部类测试注意事项

2016-08-14
阅读 2 分钟
9.4k
目的方法 {代码...} 测试方法 {代码...} 但是实际执行上面的测试用例 报错 {代码...} 似乎匿名内部类不能这样简答处理 修改测试方法 {代码...} 这时就能测试通过了。 参考文档[链接]

调用一个事务方法时如何显式指定为其开启一个新事务

2016-08-11
阅读 3 分钟
5.5k
However, in the case where an inner transaction scope sets the rollback-only marker, the outer transaction has not decided on the rollback itself, and so the rollback (silently triggered by the inner transaction scope) is unexpected. A corresponding UnexpectedRollbackException is thrown at that p...

maven命令行编译失败原因一种

2016-08-09
阅读 1 分钟
5.1k
开发完成后在命令行执行mvn clean test 想执行一下全部的单元测试 发现编译失败, 提示符号找不到。但在intellij idea中明明没有任何编译错误啊。

创建maven archetype工程记录

2016-07-17
阅读 1 分钟
3.3k
最近创建了一个Maven Archetype工程, 基于此archetype可以创建一个空白的spring + mybatis 工程,包含了一个DemoUser CRUD的示例以及单元测试(junit + Mockito)示例代码。省的每次copy一份已有的工程然后进行各种删除修改。

使用tshark捕捉本机发出的sql命令

2016-07-10
阅读 1 分钟
3.5k
开发使用的是测试服务器 但经常有查看实际执行的sql的需求 如 查看某一服务端接口涉及到哪些sql操作 定位问题 测试反映页面查询不到结果 看一下实际的sql中是否包含了什么隐式的查询条件 如is_publish=1 验证orm框架实际有没发出查询请求, 还是使用了本地的缓存。 等等 有没工具可以监控本地发出的sql呢? 就像使用Char...

服务端Http接口并发测试工具--siege使用介绍

2016-06-28
阅读 3 分钟
7.6k
同一用户同时进行兑奖和抽奖操作 可能会有数据紊乱的情况 如当前红包总额20元, 这时同时进行兑奖和抽奖操作, 假如抽奖中了10元, 那么最终结果可能会有如下的几种情形 正常情况 兑了一个20元的优惠券, 红包总额为10元异常情况一 兑了一个20元的优惠券 但红包总额为30元异常情况二 兑了一个20元的优惠券 但红包总额为0

关于Mysql索引与java数据结构的类比

2016-06-27
阅读 1 分钟
2.5k
有一个用户抽奖表 因为有如下的查询需求 查询用户今日抽奖次数查询用户是否中了实物奖品 故创建了如下的索引 {代码...} 对Mysql索引突然感到有点困惑, 是不是相当于Mysql内部维护了如下的两个Map {代码...} 查询的时候相当于执行下面的代码 {代码...} 是否可以这样类比Mysql的索引?

关于classpath中有多个同名类或一个接口有多个实现类Spring启动失败总结

2016-06-21
阅读 4 分钟
7.8k
存在同名类 工程中(含依赖jar包) 若有两个同名的类,Spring启动时会报错 如下所示 {代码...} 工程中含两个同名的FooService 启动时会报错 {代码...} 解决方法 给任一FooService取个别名即可 如 {代码...} 此时可以正常启动。并且注入(@Autowired)的时候 也无需显式指定别名 即正常注入即可 如下所示 {代码...} 上面...

spring单元测试异常回滚的简单总结

2016-06-18
阅读 6 分钟
12.7k
Spring 单元测试回滚总结 目的方法 {代码...} 测试类 {代码...} 1、 目的方法不含事务注解(//@Transactional) 执行过程中抛出异常 此时会插入成功 对应sql为: {代码...} 2、 目的方法含事务注解 若执行过程中抛了异常 会自动回滚 {代码...} 3、 目的方法含事务注解 但测试类显式指定不回滚 如下所示 {代码...} 此时实...

mysql distinct 使用注意事项

2016-06-14
阅读 1 分钟
14.4k
想查询最近N条订单记录中订单来源(order_from)有哪几种,刚开始使用的SQL命令是 {代码...} 发觉查询的记录很多 明显1000条外的数据也查出来了。 后面改成下面的SQL {代码...} 这时就对了。 演示上述现象 {代码...} 另外在5.7版本Mysql中第一种写法会报错 如下所示 {代码...}

Mac IntelliJ IDEA 使用 Subversion 问题解决记录

2016-06-10
阅读 1 分钟
26.7k
Mac使用了最新的IntelliJ IDEA, 使用svn的时候报错如下 {代码...} 似乎是系统的svn版本与IntellJ IDEA自带的Subversion版本不一致系统svn 版本 {代码...} IntelliJ IDEA Subversion 版本 {代码...} 解决方法 {代码...} 参考文档[链接]

如何正确的评估redis过期时间

2016-05-05
阅读 2 分钟
5k
业务 抽奖 奖品分红包和实物 每个用户只能中一个实物 初始代码是这样 {代码...} 现想使用redis来防同一用户并发抽奖时 存在中多个实物的可能加上如下的代码 {代码...} 设置过期10分钟原因 假如并发来了100个请求 有两个请求均中了实物 两个请求的处理时间应该不会超过10分钟吧 即请求1处理完了 等10分钟后 才处理请求2 ...

引入redis防超抽带来的问题

2016-05-05
阅读 2 分钟
4.8k
业务 抽奖 每天每个用户只能抽3次 想用redis来防同一用户并发超抽 极简代码如下 {代码...} 完善代码设置过期时间 {代码...} 捕捉redis操作异常 {代码...} 若redis操作失败 从数据库中查询已抽奖次数 {代码...} 考虑到数据库异常 抽奖次数还得减一 {代码...} 考虑到之前可能redis incr也失败了, 于是还得判断是否存在该k...

并发减库存 redis vs mysql

2016-03-12
阅读 4 分钟
8.2k
业务 商品有库存, 如10000 每买一个商品 库存就减一 减库存可以通过mysql来实现 如 {代码...} 也可以使用redis来实现 如 {代码...} 面对这种场景都说要使用redis 因为redis并发性能更好 想实际验证一下是否这样思路 设置较大的并发数去更新库存 执行10次 比较redis和mysql花费的时间 代码 {代码...} 输出结果 {代码...}...

Ubuntu编译jdk7记录

2016-03-06
阅读 2 分钟
2.6k
Ubuntu编译JDK7记录Ubuntu系统 {代码...} 经常需要debug jdk 源码(rt.jar), 虽然可以设置断点, 但不能查看变量信息。如 {代码...} 需要使用debug模式编译的jdk才可以看到变量信息。于是动手编译JDK 参考了周志明的深入理解Java虚拟机 以下为步骤 下载openjdk([链接] 安装依赖包 {代码...} 在解压后的openjdk目录下创...

一个简单抽奖算法的实现以及如何预防超中

2016-02-27
阅读 5 分钟
27.3k
每个用户每天有3次抽奖机会;抽奖奖池一共分为6档内容:现金红包1元,2元,3元,5元,iphone6s,谢谢参与;支持每天调整和配置抽奖的获奖概率;