自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 MySQL选择合适的数据类型及优化Schema设计

“良好的逻辑设计和物理设计是高性能的基石,应该根据将要执行的查询语句来设计schema,这往往需要权衡各种因素”。适合的数据类型MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。 更小的通常更好:更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 简单就好:简单数据类型的操作通常需要更少的CPU周期。...

2018-03-20 11:50:30 538 1

原创 突破微信小程序模板消息限制,实现无限制主动推送

需求背景基于微信的通知渠道,微信小程序为开发者提供了可以高效触达用户的模板消息能力,在用户本人与小程序页面有交互行为后触发,通过微信聊天列表中的服务通知可快捷进入查看消息,点击查看详情还能跳转到下发消息的小程序的指定页面。 微信小程序允许下发模板消息的条件分为两类:支付或者提交表单。通过提交表单来下发模板消息的限制为“允许开发者向用户在7天内推送有限条数的模板消息(1次提交表单可下发1条

2018-02-07 16:44:33 4700 4

原创 开放API接口签名验证,让你的接口从此不再裸奔

接口安全问题请求身份是否合法? 请求参数是否被篡改? 请求是否唯一?AccessKey&SecretKey (开放平台)请求身份为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。 防止篡改参数签名按照请求参数名的字母升序排列非空请求参数(包含AccessKey),使

2018-02-03 18:16:01 43071 12

原创 Spring IoC源码分析

IoC容器系列的设计与实现:BeanFactory和ApplicationContext实现BeanFactory接口的简单容器系列,只实现了容器的最基本功能ApplicationContext应用上下文,作为容器的高级形态存在IoC容器的设计IoC容器的接口系统以BeanFactory和ApplicationContext为核心。而BeanFactory又是IoC容器的最基

2018-01-17 17:05:54 280

原创 BloomFilter(大数据去重)+Redis(持久化)策略

BloomFilter(大数据去重)+Redis(持久化)策略背景之前在重构一套文章爬虫系统时,其中有块逻辑是根据文章标题去重,原先去重的方式是,插入文章之前检查待插入文章的标题是否在ElasticSearch中存在,这无疑加重了ElasticSearch的负担也势必会影响程序的性能!BloomFilter算法简介:布隆过滤器实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索

2017-11-10 15:43:06 27706 7

原创 getInputStream/getReader() has already been called for this request

getInputStream/getReader() has already been called for this request一、背景定义了一个安全校验过滤器,现在要获取请求参数。通过request.getParameter获取请求参数,然而这种方式只能获取POST方式中的Content-Type: application/x-www-form-urlencoded。通过request.

2017-11-07 18:35:52 18117 1

原创 【Java集合类源码分析】Hashtable源码分析

Hashtable是JDK1.0引入的,同样是基于哈希表(拉链法)实现的,每个元素都是一个key-value对,其内部通过单链表解决冲突,容量不足(超过了阈值)时,同样会进行扩容。

2017-05-09 18:56:00 321 1

原创 【Java集合类源码分析】LinkedHashMap源码分析

LinkedHashMap是HashMap的一个子类,但它加入了一个双向链表的头结点,将插入的记录串成了一个双向循环链表,因此保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,取得的记录的顺序是插入次序或者是最近最少使用(LRU)次序。

2017-05-08 10:24:14 338

原创 【Java集合类源码分析】HashMap源码分析二

HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。

2017-05-06 17:31:19 277

原创 【Java集合类源码分析】HashMap源码分析一

HashMap是基于哈希表(拉链法)实现的,每个元素都是一个key-value对,其内部通过单链表解决冲突,容量不足(超过了阈值)时,同样会进行扩容。

2017-05-05 17:01:16 438

原创 【Java集合类源码分析】Vector源码分析

Vector是JDK1.0引入的,基于动态数组实现的,其容量能够动态增长。

2017-05-03 15:55:05 287

原创 【Java集合类源码分析】LinkedList源码分析

LinkedList是基于双向链表实现的,除了可以当作链表来操作外,也可以当作栈、队列和双端队列进行操作。

2017-05-02 16:01:41 361

原创 【Java集合类源码分析】ArrayList源码分析

ArrayList是基于动态数组实现的,其容量能够动态增长。

2017-05-01 19:28:38 436

原创 【Java集合类源码分析】Java集合框架介绍

Java集合是Java提供的工具包,位于java.util包下,包含了常用的数据结构:数组、链表、栈、队列、集合、哈希表等。学习Java集合框架主要可以划分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。

2017-05-01 10:55:09 362

转载 提高MySQL千万级大数据SQL查询优化30条经验

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fro

2017-03-17 13:53:53 337

原创 IDEA搭建Mybatis Generator逆向工程

一、pom.xml增加插件 org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 true true 二、配置generator.propertitesjdbc.driverLocation=D:\\maven_repository\\mysql\\

2017-03-08 18:01:35 335 1

原创 Mybatis批量插入更新数据

注解(@Mapper中)@Insert("" + "INSERT INTO lhy_user_rank(user_id, account_id, total_rank, count_date)" + "VALUES" + "" + "(#{userRank.userId}, #{userRank.accountId}, #{userRank.totalRank}, #{userRa

2017-02-07 10:20:30 476

原创 Spring在工具类中使用注解注入Bean

public class LogUtil { @Autowired private LogService logService; private static LogUtil logUtil; @PostConstruct public void init() { logUtil = this;

2017-02-07 10:03:27 2895

原创 Spring的编程式事务管理和声明式事务管理

事务管理对于企业应用特别是金融产品而言至关重要,它确保用户的每一次数据操作都是可靠的,即便出现了异常情况,也不至于破坏后台数据的完整性。在Spring中,事务是通过TransactionDefinition接口来定义的:public interface TransactionDefinition { //事务的传播行为 int PROPAGATION_REQUIRED =

2016-12-22 23:19:33 577

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除