自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AOP切入同类调用方法不起作用,AopContext.currentProxy()帮帮你解决

    今天翻看公司之前代码时,无意中看到了如下一段代码:(UserService)AopContext.currentProxy()).getWechatInfo()  心里在想,好好的方法为啥不通过this.getWechatInfo()调用,而是通过AopContext.currentProxy()这个aop方式调用,于是乎一顿查找,并了解到:当在Service中定义了一个方法并且...

2019-01-11 17:01:45 9633 5

原创 Spring事务传播机制

         Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁)概述        当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时...

2018-12-18 15:18:23 1188

转载 java多线程 ThreadPoolExecutor 策略及坑

无论是使用jdk的线程池ThreadPoolExecutor 还是spring的线程池ThreadPoolTaskExecutor 都会使用到一个阻塞队列来进行存储线程任务。   当线程不够用时,则将后续的任务暂存到 阻塞队列中,等待有空闲线程来进行。  当这个阻塞队列满了的时候,会出现两种情况   正在运行的线程数量小于 maximumPoolSize,那么还是要创建线程运行这个任务...

2018-10-12 17:35:50 1196 2

转载 Java线程安全之volatile关键字

一、前言我们知道在多线程的场景下,线程安全是必须要着重考虑的。Java语言包含两种内在的同步机制:同步块(synchronize关键字)和 volatile 变量。但是其中 Volatile 变量虽然使用简单,有时候开销也比较低,但是同时它的同步性较差,而且其使用也更容易出错。下面我们先使用一个例子来展示下volatile有可能出现线程不安全的情况:public class ShareD...

2018-07-12 19:06:10 214

原创 常见算法练习leetcode

https://leetcode.com/problemset/algorithms/

2017-04-11 18:07:13 280

原创 Jackson异常情况处理

1、空值转换-异常情况:      Can not instantiate value of type [map type; class java.util.HashMap, [simple type, class java.lang.String] -> [simple type, class java.lang.String]] from JSON String; no singl

2017-04-11 18:07:05 1358

原创 Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。         

2017-04-11 18:07:02 224

原创 java中HashSet的去重以及容量扩增原理

首先需要明白java中HastSet实际上是用散列表实现的,散列表的大小默认大小为16(也叫散列表元的数量),加载因子为0,75(下面会解释什么是加载因子)。         去重原理:当hashset add一个元素A的时候,首先获取这个元素的散列码(hashcode方法),假设散列码为400,然后将散列码对散列表元的数量取模,400%16=0;         0表示第一个元素,然后将元素

2017-04-11 18:06:57 1104

原创 深度优先和广度优先遍历及其 Java 实现

图的遍历,所谓遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略: 深度优先遍历 广度优先遍历 深度优先 深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结

2017-04-11 18:06:53 259

原创 控制台调试,mybatis sql打印

log4j2配置文件中,标签下,

2017-04-11 18:06:49 242

原创 jstat的使用方法 -- 分析JVM的使用情况

JDK自带VM分析工具jps,jstat,jmap,jconsole  关键字: jdk自带vm分析工具jps,jstat,jmap,jconsole  一、概述       SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装)  。           

2017-04-11 18:06:45 276

原创 ​VMware Workstation cannot connect to the virtual

1:  遇到的问题:打开虚拟机(VMware Workstation)时报如下提示:         VMware Workstation cannot connect to the virtual machine.          Make sure you have rights to run the program,          access all directories t

2017-04-11 18:06:40 320

原创 压力测试工具jmeter的使用

1.使用绿色版,双击jmeter.bat启动,如图: 2.启动界面 3.添加线程组: 4.添加http请求默认值 添加完成如下图: 5.添加http请求,如下图: 6.添加数据源(我们采用CSV Data Set Config) 数据源如下图所示: 内容:(每一列与上面的别名对应) 7.下面就可以添加查看结果的方式了(添加“聚合报告

2017-04-11 18:06:36 244

原创 Java中Properties类的使用

一、Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支 持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件 是.ini文件,同样,它也有自己读取配置文件的类ConfigParse

2017-04-11 18:06:31 636

原创 js脚本 处理js注入

function checkData(v) {        var  entry = { "'": "&apos;", '"': '"', '': '>' };        v = v.replace(/(['")-><&\\\/\.])/g, function ($0) { return entry[$0] || $0; });        return v;   

2017-04-11 18:06:27 1522

原创 大数据之数据库mysql优化实战之索引的使用

大家带着问题,去看下面的段落 索引在什么情况下使用 如何使用索引 索引在什么情况下使用 以下是不使用索引的情况 表行数少,使用查询次数少,update少 RESET QUERY CACHE; **#未创建索引:时间:0.227s/1W条 , 0.331s/5W条,0.516s/10W**#SELECT max(ObuID)

2017-04-11 18:06:22 189

原创 数据库优化方案

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注、描述、评论之类的

2017-04-11 18:06:18 164

原创 java synchronized详解

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。      二、然而,当一个线程访问object的一个synchroni

2017-04-11 18:06:08 204

原创 事务

javaweb学习总结(三十八)——事务 一、事务的概念   事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。   例如:A——B转帐,对应于如下两条sql语句     update from account set money=money+100 where name='B';     update from account set mone

2017-04-11 18:06:04 209

原创 微信公众号开发,代码自定义菜单

package com.wzqj.wsp.util;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import com

2017-04-11 18:06:00 347

原创 idea提示忽略大小写

Editor=>Code Completion里把Case sensitive completion设置为None 输入:sensitive 将右侧的 case sensitive completion 修改为NONE

2017-04-11 18:05:57 495

原创 idea问题(maven忽略版本)

-Dmaven.multiModuleProjectDirectory system properties is not set.check $M2_HOME environment variable and mvn script match 解决办法:(IDEA 14)File->setting->Build,Exe…->Build Tools->Maven->Runner->设置VM O

2017-04-11 18:05:53 1398

原创 java的IO性能调整

Java语言采取两种截然不同的磁盘文件结构。一个是基于字节流,另一个是字符序列。在Java语言中一个字符有两个字节表示,而不是像通常的语言如c语言那样是一个字节。因此,从一个文件读取字符时需要进行转换。这个不同在某些情况下是很重要的,就像下面的几个例子将要展示的那样。 低级I/O相关的问题: 缓冲 读写文本文件 格式化的代价 随机访问 高级I/O问题 压缩

2017-04-11 18:05:49 1249

原创 JSTL字符串处理函数

1。判断某字符串是否以某字串结束 引入JSTL: set比较值: 使用、判断:                                                         2。其他fn函数

2017-04-11 18:05:45 177

原创 Java反射 getFields()和getDeclaredFields()的区别

getFields()获得某个类的所有的公共(public)的字段,包括父类。  getDeclaredFields()获得某个类的所有申明的字段,即包括public、private和proteced,但是不包括父类的申明字段。  同样类似的还有getConstructors()和getDeclaredConstructors(),getMethods()和getDeclaredMet

2017-04-11 18:05:41 193

原创 java类的生命周期

首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域,这几个区域在java类的生命周期中扮演着比较重要的角色: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。 堆区:用于存放类的对象实例。 栈区:也叫java虚拟机栈,是由一个

2017-04-11 18:05:36 166

原创 java反射详解

下面开始正文。 【案例1】通过一个对象获得完整的包名和类名 1 2 3 4 5

2017-04-11 18:05:32 126

原创 提交中文数据乱码问题总结

1、如果提交方式为post,想不乱码,只需要在服务器端设置request对象的编码即可,客户端以哪种编码提交的,服务器端的request对象就以对应的编码接收,比如客户端是以UTF-8编码提交的,那么服务器端request对象就以UTF-8编码接收(request.setCharacterEncoding("UTF-8"))   2、如果提交方式为get,设置request对象的编码是无效的,r

2017-04-11 18:05:26 213

原创 java web项目启动加载顺序

web.xml加载过程(步骤):       1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点:       和 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文. 3.容器将转化为键值对,并交给ServletContext. 4.容器创建中的类实例,即创建监听. 5.在监听中会有c

2017-04-11 18:05:22 289

原创 MySql四种存储引擎

前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。   存储引擎查看 MySQL给开发者提供了查询存储引擎的功能,我这里使用的是MySQL5.

2017-04-11 18:05:17 182

原创 MyBatis通用Mapper3

MyBatis通用Mapper3 极其方便的使用MyBatis单表的增删改查 3.3.3 - 2015-12-30 解决OGNL中的and,or大写导致的错误 解决SpecialProvider不支持insertable的bug#77 解决JDK6,7无法获取字段泛型类型的问题。 提供一个Spring Boot集成的示例: https://github.com/abel

2017-04-11 18:05:13 2726

原创 xml中Integer判空

一:问题的由来 业务需求在设置最小数量(minCount)时用到了Integer类型,发现设置为0时不能入库 二:解决问题过程 直接在*Mapper.xml中找到对应minCount判断语句 原写法如下: minCount != ''>,min_count = #{minCount} 三:解决方法 去掉and minCount != '' >,min_count = #{minCo

2017-04-11 18:05:08 1019

原创 比较全的pom.xml maven依赖

自行搜索地址:http://mvnrepository.com/tags/maven         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.

2017-04-11 18:05:05 1027

原创 mysql存储过程语法及实例

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不

2017-04-11 18:05:00 303

空空如也

空空如也

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

TA关注的人

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