自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

转载 线程池的种类,区别和使用场景

newCachedThreadPool:public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, ...

2020-03-13 21:21:07 328

原创 elasticsearch query 查询总结!!!

GET /index_name/_search{ "query": { "term": { "from.keyword": { "value": "我的" } } }}GET /index_name/_search{ "query": { "bool": { "must": [ {...

2019-09-21 18:06:19 1176

原创 获取上一个自然周的、上一个自然月的起始时间范围

一般统计经常用的时间范围,在此提供两个经常用到,时间范围取每个月一号零时至下月一号零时之间例如:当前日期是 20190910 20190801 00:00:00 —— 20190901 00:00:00 public static List<Date> getLastMonth(){ Calendar calendar = Calendar.getInstan...

2019-09-10 21:36:39 1460

原创 微信小程序登录授权、获取用户敏感信息、解密手机号,javax.crypto.IllegalBlockSizeException: last block incomplete in decryption

//小程序的key和秘钥 private final String wechatAppId = ""; private final String wechatSecretKey = " "; private final String grantType = "authorization_code"; //根据微信登录返回的code获取解密的key的接口 ...

2019-07-23 18:14:49 3430

转载 在MySQL中阻止UPDATE语句没有添加WHERE条件的发生

如果在生产环境中使用UPDATE语句更新表数据,此时如果忘记携带本应该添加的WHERE条件,那么。。Oh,no…后果可能不堪设想。那么有没有什么办法可以阻止这样的事情发生,又不使用任何的审核工具呢。。。办法当然是有的sql_safe_updatessql_safe_updates这个MySQL自带的参数就可以完美的解决我们的问题,并且该参数是可以在线变更的哦~当该参数开启的情况下,你必须要...

2019-07-18 16:51:53 874

原创 java实现redis分布式锁,已经过实际线上环境测试

这两天重构之前的项目线上测试,发现线程池总是很快就满了,打印了线程池日志,发现报错提示数据库死锁,查看数据库日志定位到具体的sql和数据表,发现该表有五个地方修改,纠结之下暂时放弃了事务处理;然后上线,运行一段时间后仍然是会有部分线程长时间获取不到锁。仔细分析设计到这部分的代码,包括锁的实现,并简单修改了下,上线后未出现问题。今天打算重新整理下,偶然实现之前的代码和网上的部分博客完全一样!!!...

2019-07-11 18:07:41 286

原创 java采用三方工具包自动判断文件编码 两种方式

第一种我试过了不是很准,网上有人说是通过统计概率判断文件编码的再此处记录,UTF8的CSV文件用wps打开修改后保存,再用notepad打开显示为GB2312,该方法读取的编码格式为 UTF-16BE,按此格式读取文件出现乱码;用excel2013打开修改后保存,再用notepad打开,看见格式仍然是GB2312,该方法判断文件编码格式为Big5,按此格式读取文件出现乱码;jar包...

2019-07-01 18:04:52 1442

原创 idea 自动注释 param return

类注释很简单,网上教程也很多,在此仅截图记录下#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end/*** @description: ${description}** @author: hetao** @create: ${YEAR}-${MONTH}-${DAY...

2019-06-24 21:57:24 5797 1

原创 阿里云OCR接口前端 js ajax 调用(ocrEcommerce)无阿里云图片服务器直接将图片转为base64字符串

ajax接口调用function ocrutil1(img64){ obj = { img: img64, prob: false}, $.ajax({ url: "https://ocrapi-ecommerce.taobao.com/ocrservice/ecommerce", type: "post", async: fa...

2019-06-24 17:42:34 662

原创 多层for循环中空指针问题排查和思考

首先说下问题出现的背景,最近重构公司老项目老项目:spring+hibernate+dubbo+ehcache+mysql新项目:springboot+myBatis+dubbo+redis+mysql该项目完全是向外提供dubbo服务,因为没有页面,通过telnet测试dubbo接口;测试接口的时候,发现空指针问题,指向一个三目运算符,肉眼看半天没有找到问题,于是catch异常顺...

2019-05-31 19:47:05 1501

转载 MySQL 优化之 Covering Index

在网上随便搜搜,就能找到大把的关于 MySQL 优化的文章,不过里面很多都不准确,说个常见的: SELECT a FROM ... WHERE b = ... 一般来说,很多文章会告诫你类似这样的查询,不要在 “a” 字段上建立索引,而应该在 “b” 上建立索引。这样做确实不错,但是很多时候这并不是最佳结果。为什么这样说?这还得先从索引来说起。索引MySQL ...

2019-03-14 18:12:30 162

原创 mysql 聚集索引 非聚集索引

聚集索引索引是存储了表数据的物理地址聚集索引既存储了表数据key又存储了行值,物理地址的逻辑顺序和表存储的顺序一致!是唯一的对于Innodb,主键毫无疑问是一个聚集索引。但是当一个表没有主键,或者没有一个索引,Innodb会如何处理呢。请看如下规则 如果一个主键被定义了,那么这个主键就是作为聚集索引 如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引 如果没有主键也没有合适...

2019-03-06 18:43:56 1596

原创 volatile 底层实现 简要说明

当多个线程进行操作共享数据时,可以保证内存中的数据可见。其原理是它调用了计算机底层代码叫内存栅栏,它时时刻刻把缓存当中的数据刷新到主存当中,可以理解为它的操作就是在主存当中完成的。使用了Volatile关键字后效率也会相对低一些,因为JVM底层有个优化重排序,如果使用了Volatile关键字修饰后不能重排序了...

2019-03-06 13:58:46 225

转载 spring事物介绍

一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:    获取连接 Connection con = DriverManager.getConnection()    开启事务con.setAutoCommit(true/false);    执行CRU...

2019-02-17 15:35:11 242

转载 spring启动过程---简单概述--有错误望指出

web容器的初始化过程为web容器(如tomcat)读取web.xml, 读取文件中两个节点和 容器创建ServletContext,它是web的上下文,整个web项目都会用到它 读取context-param节点,它以 键值对的形式出现。将节点值转化为键值对,传给ServletContext 容器创建中的实例,创建监听器。监听器必须继承ServletContextListener 调...

2019-02-16 18:42:38 314

转载 mysql开发规范

1.避免使用NULL字段NULL字段很难查询优化,NULL字段的索引需要额外空间,NULL字段的复合索引无效,NULL非常影响索引的查询效率 建议用0,特殊值或空串代替NULL值age int NOT NULL DEFAULT 0; name varchar(30) NOT NULL DEFAULT '';在对该字段进行COUNT()统计时,统计结果更准确或者执行WHERE col...

2018-12-23 17:22:10 225

原创 mysql基本数据类型

一、int      tinyint 1字节 -128 - 127 unsigned无符号 0-255      smallint 2字节 -2^15 (-32,768) 到 2^15 - 1 (32,767) unsigned无符号0-65535      int 4字节 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)     ...

2018-12-23 16:03:48 959

转载 mysql-优化-避免全表扫描

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE INDEX (index_for_...

2018-05-29 10:37:34 2094 1

转载 DBCP连接池 poolpreparedstatements mysql

https://blog.csdn.net/luyaran/article/details/69397528http://www.360doc.com/content/14/1104/09/1073512_422357018.shtml

2018-05-18 10:04:05 869

转载 JS实现关闭当前子窗口,刷新父窗口及调用父窗口的方法

一、JS实现关闭当前子窗口,刷新父窗口JS代码如下:&lt;script&gt; function refreshParent() {  window.opener.location.href = window.opener.location.href;  window.close();   }              &lt;/script&gt; html页面代码如下:&lt;input t...

2018-05-15 15:48:19 3436

原创 linux_Redhat_6.5_64位_安装oracle_11g

https://download.csdn.net/download/chen1280436393/10309538

2018-03-26 17:30:49 251

原创 分库分表创建sql

use DBName;-- existsSQL 检查当前表是否存在-- createTableSQL 创建表的sql-- set @dbCount=5;--数据库数量-- set @recordStep=100000000;--自增id初始值-- set @tbCountPerDb=100;--每个库中表的数量-- set @tbNamePrefix='tbFile';-- 创建tba...

2018-03-05 18:27:31 1519

原创 jquery.ellipsis 使用,多行文字末尾显示省略号

自动计算内容宽度(不是字数)截断,并加上省略号,内容不受中英文或符号限制。如果根据字数来计算的话,因为不同字符的宽度并不相同,比如l和W,特别是中英文,最终内容宽度会有很大的差异。jquery.ellipsis.js 依赖jquery,使用方式$(dom).ellipsis({maxWidth:120,maxLine:2});maxWidth,最大宽度 maxLine,最大亮度,

2016-12-13 10:12:40 3894

原创 火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥

打开 about:config新建或修改以下4个布尔值为 false 即可(搜索dhe能找到):security.ssl3.dhe_dss_aes_128_shasecurity.ssl3.dhe_rsa_aes_128_shasecurity.ssl3.dhe_rsa_aes_256_shasecurity.ssl3.dhe_rsa_des_ede3_sha

2016-11-07 14:19:11 530

原创 VMware11+centos6.6+5.7.16 MySQL Community Server

初次安装mysql,登录时需要密码解决方法:#1.停止mysql数据库/etc/init.d/mysqld stop #2.执行如下命令mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库mysql -u root mysql #4.更新root密码(有的版本PA

2016-11-02 23:37:54 330

原创 Java反射:类名.class、class.forName()、对象.getClass区别 详解

1.Class a=A.class; 说明:JVM将使用类A的类装载器,将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的class的对象Java编程思想P319,建议使用“.class”的形式,以保持与普通类的一致性;当使用“.class”来创建对class对象的引用时,不会自动地初始化该class对象,初始化被延迟到了对静态方法(构造器隐式地是静态的)或者非

2016-07-21 18:48:21 676

转载 单例模式

/** * 一、懒汉,常用的写法 */class LazySingleton{ private static LazySingleton singleton; private LazySingleton(){ } public static LazySingleton getInstance(){ if(singleton==null){

2016-07-09 18:49:00 276

转载 简单工厂、工厂方法、抽象工厂

结合简单示例和UML图,讲解工厂模式简单原理。 一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放

2016-07-09 18:42:41 553

原创 面向对象七大设计原则

1:开闭原则(Open for Extension,Closed for Modification)    就是对程序修改关闭,对程序扩展开放。就是在不改变一个程序源码的情况下 改变程序的行为。如何做到既不修改,又可以扩展?    解决问题的关键在于抽象化:在Java语言里,可以给出一个或多个抽象Java类或Java接口,规定出所有的具体类必须提供的方法特征作为系统设计的抽象层。这个抽象层预见了所

2016-07-09 15:17:38 484

转载 Java类之间的关联关系

UML类图中的关系分为四种:泛化、依赖、关联、实现;关联关系又可以细化为聚合和组合。一、泛化(Generalization)泛化是父类和子类之间的关系,子类继承父类的所有结构和行为。在子类中可以增加新的结构和行为,也可以覆写父类的行为。一般用一个带空心箭头的实线表示泛化关系,UML图如下:泛化对应Java中继承关系,即子类继承父类中出private修

2016-07-09 10:12:54 537

转载 js函数——倒计时模块+无缝滚动

http://www.cnblogs.com/chenrf/p/5624204.html

2016-06-29 14:44:06 340

转载 java常量池概念,String,Integer等包装类对常量池的应用

在class文件中,“常量池”是最复杂也最值得关注的内容。  Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如:  类和接口的全限定名;  字段的名称和描述符;  方法和名称和描述符。  在C语言中,如果

2016-06-27 15:47:59 3974

转载 String放入运行时常量池的时机与String.intern方法解惑

运行时常量池概述Java运行时常量池中主要存放两大类常量:字面量和符号引用。字面量比较接近于Java语言层面的常量概念,如文本字符串、声明为final的常量值等。而符号引用则属于编译原理方面的概念,包括了下面三类常量:- 类和接口的全限定名(包名+类名)- 字段的名称和描述符- 方法的名称和描述符运行时常量池位置运行时常量池在JDK1.6及之前版本的JVM中

2016-06-27 15:37:26 1863 3

转载 触摸java常量池

java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论          小菜先拙劣的表达一下jvm虚拟内存分布:      程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。     本地方法栈是jvm调用操作系统方法所使用的栈。

2016-06-27 14:58:41 507

转载 float,double等精度丢失问题

问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么?来自MSDN的解释:http://msdn.microsoft.com/zh-cn/c151dt3s.aspx为何浮点数可能丢失精度浮点十进制值通常没有完全相同的二进制表示形式。 这是 CPU 所采用的浮点数据表示形式的副作用。 为此,可能会经历一些精度丢失,并且一些浮点运算可能会产生意外的结果。

2016-06-08 15:38:59 536

转载 正则表达式基本语法

两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;"notice":表示任何包含"notice"的

2016-05-12 21:14:53 277

原创 ibatis中的动态SQL:isNotNull,isPropertyAvailable,isNotEmpty,isGreaterThan等标签用法

[size=large]常用的几个关键字和属性: isNotNull 参数不为null时有效 sNotEmpty 参数不为null或“”时有效 isPropertyAvailable 如果参数有使用则查询条件有效 prepend    生成的语句不会有多余的and,因为dynamic有一个隐藏的属性:removeFirstPrepend="true", 所以一般要写上prepe

2016-05-11 15:24:01 5718

转载 Spring中@Transactional事务回滚(含实例详细讲解,附源码)

原文出处: 小宝鸽一、使用场景举例  在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用。下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员。但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了。这时候我们希望如果成

2016-05-10 15:42:59 544

转载 ORACLE时间日期星期(SYSDATE)相关处理

加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 sele

2016-04-29 18:50:01 693

转载 Oracle 使用MERGE INTO 语句更新数据

/*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 *//*语法:MERGE [INT

2016-04-26 17:11:50 526

java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

2019-07-01

linux_Redhat_6.5_64位_安装oracle_11g

linux_Redhat_6.5_64位_安装oracle_11g 有详细的步骤说明 图片解释

2018-03-26

java单例模式完全讲解.pdf

非常详细的Java单例模式讲解的文档,请求通过,已经上传过一次了

2016-07-21

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

TA关注的人

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