自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 IDEA使用笔记

常用命令 自动补全返回值 Eclipse对应Ctrl+2 + L,Idea对应Ctrl+Alt + V,为了方便我改成Ctrl+L Ctrl+F9 手动编译 只是修改方法内的代码,不需要重启应用,只需要ctrl+f9手动编译一下即可生效 Ctrl+Alt+L 一键格式化代码 Ctrl + ...

2019-03-25 20:08:22

阅读数 91

评论数 0

转载 MySQL索引优化分析(好文分享)

为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干! 案例分析 我们...

2019-02-19 15:14:21

阅读数 101

评论数 0

转载 MySQL 表锁和行锁机制(很详细)

MySQL 表锁和行锁机制 行锁变表锁,是福还是坑?如果你不清楚MySQL加锁的原理,你会被它整的很惨!不知坑在何方?没事,我来给你们标记几个坑。遇到了可别乱踩。通过本章内容,带你学习MySQL的行锁,表锁,两种锁的优缺点,行锁变表锁的原因,以及开发中需要注意的事项。还在等啥?经验等你来拿! ...

2019-02-19 15:08:30

阅读数 813

评论数 0

原创 LiquiBase数据库版本管理组件使用(带示例)

简介 LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。 LiquiBase的主要特点有: 支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Serve...

2019-01-31 15:48:08

阅读数 479

评论数 0

原创 mybatis-generator生成代码(可生成注释)完整示例

说明:在java项目开发中一般都用到mybatis框架,就会涉及到实体和表的映射,mapper的生成,mybatis-generator插件可以根据表结构自动生成实体和mapper,大大简化了开发的工作量 目前这个插件生成的原始实体没有字段注释,查找了一些资料找到了解决方法,通过实现mybatis...

2019-01-31 15:29:36

阅读数 2206

评论数 0

原创 遇到过的坑之tomcat bug——An invalid domain [cart.suzixxa.com] was specified for this cookie

报错信息,一套代码,部署在tomcat上,其他域名都没有问题,就这个域名有问题,一脸懵逼 网上查也没查到什么资料,然后只能自己翻tomcat 报错中Rfc6265CookieProcessor的源码,一看报错行跟我源码对不上,于是看了一下服务器上的tomcat版本: tomcat8.0...

2018-10-25 22:01:55

阅读数 650

评论数 1

原创 根据IP获取国家代码

pom.xml <dependency> <groupId>com.maxmind.geoip2</groupId> <artifactId>geoip2</art...

2018-10-25 21:35:52

阅读数 734

评论数 0

原创 SpringBoot 集成Redis Cluster和RedisTemplate

先看示例: // 将验证码放入缓存,并设置自动过期时间 CacheUtils.put(CacheKey.PHONE_VERIFY_CODE.key(phone), code, 1, TimeUnit.HOURS); // 从缓存中获取验证码 String code = CacheUtils....

2018-10-25 21:11:51

阅读数 1464

评论数 0

原创 BeanUtils对象复制(深度拷贝)终极工具类

对象复制工具类,实现方法如下: 复制对象(深度拷贝) 复制集合(深度拷贝) 复制对象到指定类(深度拷贝) 复制集合到指定类(深度拷贝) POM <!-- 对象拷贝 --> <dependency> <groupId>uk.com.robust-i...

2018-10-03 21:45:48

阅读数 1188

评论数 0

原创 Gzip压缩工具类

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util...

2018-10-03 21:28:25

阅读数 742

评论数 0

原创 大文件导出优化

在项目开发中,我们经常会遇到需要从数据库导出大量数据的情况,经常会因为数据量太大而难以导出。 下面介绍下我是怎么处理的: 1、用CSV代替POI导出,因为CSV格式比Eexcel同样数据量的情况下节省很多存储空间 2、分配导出,每次查询5万或者10万条,生成一个CSV文件 3、多文件打包,...

2018-10-03 21:25:39

阅读数 740

评论数 0

原创 Java多态机制在实际中的应用

在实际开发工作中,常常遇到一个功能有多种实现方式,比如支付方式,有分微信支付、京东支付、支付宝、银联等支付方式,不同支付方式的大概流程大抵相似,实现细节有所区别。这个时候就可以用到java的多态机制,先定义一个公共接口,接口定义支付流程的各个方法,具体的支付方式实现该接口的方法。在控制层,利用sp...

2018-04-23 14:35:14

阅读数 2700

评论数 4

转载 too many open files(打开的文件过多)解决方法

一、产生原因too many open files(打开的文件过多)是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可...

2018-04-23 14:25:06

阅读数 2671

评论数 0

原创 Java继承机制在实际中的应用

系统开发过程,最初只是实现基础功能,后面随着业务拓展,会增加了一些新功能,新功能和原来的功能有着一定相似的地方,但又有不同的逻辑,如果直接在原来的代码上修改,可能会影响原来的功能,重复写一套,代码的复用性和可维护性又很低。这个时候用java的继承机制来实现可以恰到好处,使得业务的升级和拓展非常方便...

2018-04-12 12:22:56

阅读数 705

评论数 0

原创 导出CSV文件工具类

 CSVUtils.java import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import j...

2018-04-12 11:31:51

阅读数 967

评论数 0

转载 java生成随机校验码图片

RandomValidateCode.javaimport java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.Buffe...

2018-04-12 11:25:28

阅读数 134

评论数 0

原创 LRU算法集合简单实现

场景:本地缓存实现LRU算法,即最新使用的数据排在前面,不常使用的数据自动踢出LRULinkedHashMap.javaimport java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; /** * ...

2018-04-12 11:13:21

阅读数 462

评论数 0

原创 固定长度List,超长自动删除队尾数据

FixSizeLinkedList.javaimport java.util.LinkedList; import com.alibaba.fastjson.JSON; /** * 固定长度List * 如果List里面的元素个数大于了缓存最大容量,则删除链表的顶端元素 * @autho...

2018-04-12 11:04:45

阅读数 3019

评论数 2

原创 Java自动过期本地缓存简单实现

实际项目中常常需要用到本地缓存,特别是一些固定不变的数据,不想频繁调接口,因为http请求本身需要耗时,下面几个类对本地缓存作了简单实现,支持自动过期功能LocalCache.javainterface LocalCache { public void refresh(); } LocalCa...

2018-04-12 10:59:20

阅读数 5407

评论数 0

原创 临时邮箱

http://24mail.chacuo.net/该网站可以提供有效期为24小时的临时邮箱,在开发测试中,非常实用,可以用临时邮箱进行网站注册,接收邮件拓展:其他临时邮箱地址:三十三个免费匿名临时邮箱服务申请临时手机号接收短信:www.pinger.com、textnow.com...

2018-04-12 10:25:31

阅读数 33207

评论数 0

原创 谷歌网页性能分析

https://developers.google.com/speed/pagespeed/insights/输入网址,谷歌可以对网站性能进行分析,得出综合评分,还会给出优化建议,可以参考建议对网站进行优化

2018-04-12 10:18:01

阅读数 1009

评论数 0

转载 延迟队列DelayQueue

原文链接:http://www.cnblogs.com/jobs/archive/2007/04/27/730255.html 我们谈一下实际的场景吧。我们在开发中,有如下场景 a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。 b) 缓存。缓存中的对象,超过...

2016-11-17 11:29:07

阅读数 2761

评论数 0

转载 Timer/TimerTask 学习

原文链接:https://my.oschina.net/u/138995/blog/193243 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。 1、添加一个任务,...

2016-11-17 10:20:59

阅读数 287

评论数 0

原创 excel导入导出通用工具类

前言 所做的事,统一了一下导入报表开发模板和导出报表开发模板 特性 导入模板具有以下特性: 1、列格式化和列值校验,是否允许空判断 2、可指定列提取 3、提供回调函数,进行额外字段填充和业务逻辑 4、报错机制,报错提示批量、准确 此套导入和导出开发模板简单易用,可读性强,维护方便,让程序员避开复杂...

2016-10-21 14:51:16

阅读数 4642

评论数 0

原创 架构资料

架构漫谈(八):从架构的角度看如何写好代码 http://kb.cnblogs.com/page/542725/ RESTful API 设计指南 http://www.ruanyifeng.com/blog/2014/05/restful_api.html 软件架构师培训-精华提炼 h...

2016-05-06 18:07:54

阅读数 324

评论数 0

转载 Linux学习文档

一、 linux文件系统  linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。  文件系统树状结构如下:  /  根目录  ┏━━━┳━━━┳━━━┳━━┳━━━┳━━┳━━┳━━┳━━━┳━━━━━┳...

2016-05-05 16:02:20

阅读数 3275

评论数 0

原创 Struts2注解Convention扫描jar中的Action的设置

首先在struts.xml中设置以下常量设置:     设置Convention插件是否从jar包中搜索Action类 [可选] 默认值为true     name="struts.convention.action.disableJarScanning" value=&q...

2016-05-05 15:17:35

阅读数 2179

评论数 0

转载 javascript对话框组件——artDialog

artDialog v 2.0.4 Beta 简介 artDialog是一个轻巧且高度兼容的javascript对话框组件,可让你的网页交互拥有桌面软件般的用户体验。 功能: 支持锁定屏幕(遮罩)、模拟alert和confirm、多窗口弹出、静止定位、支持Ese键关闭对话框、定时关闭、自定义...

2016-05-05 15:14:10

阅读数 1800

评论数 0

原创 SQL笔记

1、数据库有默认排序,尽量不使用order by MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作; 2、在Where、Having后面的过虑条件中不要使用字段的函数表达式,...

2016-04-22 14:21:58

阅读数 421

评论数 0

原创 六个月学会任何一门外语

五个原则 1、从跟你有重要关联的内容开始学习 2、把外语当成工具,每天说和用 3、用“可明白输入”,懂含义先 4、要学好外语就要练好功夫,记住学外语是一个生理训练过程 5、轻松好奇+忍耐歧义=学得快 七个行动 1、大量去听。解决因素过滤,练好语感,要懂外语的思维 2、注意先放在理解...

2016-02-29 21:54:11

阅读数 1013

评论数 0

原创 编写高质量代码——笔记

摘抄《编写高质量代码——改善JAVA程序的151个建议》,记录一下实用的一些知识点。 1、不要在常量和变量中出现易混淆的字母 包名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰明明法。字母i务必大写。 2、静态常量用接口实现 好处是不会被new interface Cons...

2016-02-21 13:56:04

阅读数 1258

评论数 0

转载 JVM性能参数调优实践,不会执行Full GC,网站无停滞

原文链接:http://bbs.csdn.net/topics/310110257 JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达...

2016-02-20 16:45:19

阅读数 1490

评论数 0

转载 如何安全地存储密码?

使用 bcrypt用 bcrypt、用bcrypt、用bcrypt、用bcrypt、用bcrypt、用bcrypt、用bcrypt、用bcrypt、用bcrypt (重要的话就是要多多地重复几次)……为什么不用 {MD5、 SHA1、 SHA256、 SHA512、 SHA-3 等加密算法}?这些...

2015-06-27 17:51:55

阅读数 480

评论数 0

转载 比较JS合并数组的各种方法及其优劣

本文属于JavaScript的基础技能. 我们将学习结合/合并两个JS数组的各种常用方法,并比较各种方法的优缺点. 我们先来看看具体的场景: var q = [ 5, 5, 1, 9, 9, 6, 4, 5, 8]; var b = [ "tie", ...

2015-06-27 17:36:36

阅读数 527

评论数 0

原创 2015年JS摘抄

事件绑定 不推荐的写法 Bar 缺点:这样做的结果就是html前端和js前端的工作混在了一起,原则上HTML代码只能体现网页的结构 建议写法 $(“#foo”).click(function(){}); 优点:jQuery是追加绑定的,绑多少执行多少,还解决了IE的不兼容问题。...

2015-06-27 17:22:02

阅读数 482

评论数 0

转载 一次非常有意思的 SQL 优化经历

我用的数据库是 Mysql 5.6,下面简单的介绍下场景 课程表: create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条 学生表: create table Stud...

2015-05-22 12:52:43

阅读数 847

评论数 0

原创 Java反射之注解的使用

Annotation(注解) 概述 Annotation 其实就是代码里的特殊标记, 它用于替代配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,开发人员可以通过注解告诉类如何运行。 三个基本的 Annotation: @Override: 限定重写父类方法, 该注...

2015-05-12 22:33:17

阅读数 543

评论数 0

转载 编写更好的jQuery代码的建议

当你准备使用jQuery,我强烈建议你遵循下面这些指南: 缓存变量 DOM遍历是昂贵的,所以尽量将会重用的元素缓存。 // 糟糕 h = $('#element').height(); $('...

2015-04-26 21:42:54

阅读数 492

评论数 0

转载 Nginx 战斗准备:优化指南

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Ng...

2015-04-24 18:29:36

阅读数 401

评论数 0

转载 Linux常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列...

2015-04-24 18:27:24

阅读数 414

评论数 0

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