自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(70)
  • 收藏
  • 关注

原创 Spring 注解(Annotation)之-组合注解与元注解

在项目开发中遇到一个问题,想取得组合注解的头部元注解,网上找了一遍都没有,先记录一下取得方式:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@RequestMapping(method = RequestMethod.POST)public @interface PostMapping {比...

2018-06-08 14:27:47 2871

转载 @SpringBootApplication注解

@SpringBootApplication则是一个组合注解,我们可以看看它的源码:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( e...

2018-05-03 10:59:31 268

原创 JVM参数设置

java -server -Xmx2g -Xms2g-Xmn700m -XX:PermSize=256m -Xss256k -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -XX:+UseParNewGC -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMS...

2018-05-03 10:54:11 253

转载 linux grep命令详解

简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re...

2018-03-19 12:15:12 269

转载 linux 下vim的使用(学习必看!!重要)

vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;因为程序简单,编辑速度相...

2018-03-19 12:13:59 218

转载 使用google guava做内存缓存

google guava中有cache包,此包提供内存缓存功能。内存缓存需要考虑很多问题,包括并发问题,缓存失效机制,内存不够用时缓存释放,缓存的命中率,缓存的移除等等。 当然这些东西guava都考虑到了。guava中使用缓存需要先声明一个CacheBuilder对象,并设置缓存的相关参数,然后调用其build方法获得一个Cache接口的实例。请看下面的代码和注释,注意在注释中指定了Cache的各...

2018-03-17 15:17:02 680

转载 分布式搜索和分析引擎对比

Elasticsearch简介Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。英国卫报使用Elasticsearch结合用...

2018-03-17 13:51:58 4306

转载 MySql查询不区分大小写解决方案(两种)

当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感。解决方案一:于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。通过查询资料发现需要设置collate(校对) 。 collate规则:*_bin: 表示的是binary case sensitive collation,也就是说是...

2018-02-28 14:38:51 2989

转载 JDK动态代理实现分析

代理是一种设计模式,目的是对外提供统一的接口(这样可以隐藏被代理类不想公开的方法),在此基础上,可以在代理类实现逻辑中加入一些附加操作,该方式不会影响被代理类的原实现。代理分为静态代理和动态代理两种,静态代理就是在代理类内部保存被代理类的属性,直接调用,这种方式很直接,但不易扩展,如果被代理类方法很多且不断增加,那么代理类也要跟着修改,不灵活。这里主要说动态代理,其实说动态代理的文章很多了,本文主...

2018-02-28 14:15:06 182

转载 细说JDK动态代理的实现原理

关于JDK的动态代理,最为人熟知的可能要数Spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。JDK从1.3开始支持动态代理。那么JDK是如何生成动态代理的呢?...

2018-02-28 14:13:24 1883

转载 java8 Stream中Spliterator的使用(二)

java8 stream 中Spliterator的使用(一)给出了Spliterator的两种使用,但是遗憾的是,代码并不正确。这篇说明下原因,并对Spliterator进行更深入的分析。1. 首先来看下sorted方法,将代码调用countNum处注释掉,改为如下方法:parallelStream.sorted().forEach(System.out::print);代码将报错。Except...

2018-02-24 16:32:48 1613

转载 java8 stream 中Spliterator的使用(一)

java8 stream大家用的比较多,但是发现,其实stream的底层构造函数中,还需要传入Spliterator。查了一下,竟然发现网上对这个类讲的几乎没有。唯一一篇文章写得Spliterator使用有问题的,其实他的并行流是没有用到的。因为,for (int pos = currentSize/2 + currentSize; pos < str.length(); pos++){.....

2018-02-24 15:49:40 3855 1

转载 Java 泛型 super 和 extends 有何不同

<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)”<? super T>:是指 “下界通配符(Lower Bounds Wildcards)”为什么要用通配符和边界?使用泛...

2018-02-24 10:06:16 243

转载 Java8:Lambdas(二)学习怎样去使用lambda表达式

原文链接  作者:Ted Neward   译者:赵峰Java SE 8的发布很快就到了。伴随着它来的不仅仅是新的语言lambda表达式(同样被称为闭包或匿名方法)——伴随着一些语言特性支持——更重要的是API和library的增强将会使传统的Java核心libraries变的更易于使用。其中大多数的增强和补充是在Collections API中,因为Collections API在整个应用中随处...

2018-02-23 17:43:16 152

转载 Java8:Lambdas(一)学习怎样去使用lambda表达式

原文链接  作者:Ted Neward  译者:赵峰了解Java8 中的lambda表达式对开发人员来说没有什么比自己选择的语言或平台发布新版本更令人激动了。Java开发者也不例外。实际上,我们更期待新版本的发布,有一部分原因是因为在不久前我们还在考虑Java的前途,因为Java的创造者——Sun在衰落。一次与死亡的擦肩而过会使人更加珍惜生命。但在这种情况下,我们的热情来源不像以前发布版本时那样,...

2018-02-23 17:42:31 258

转载 Java 8 特性 – 终极手册

原文链接,原文作者:Andrey Redko ,译者:Justin,校对:郭蕾1.简介毫无疑问,Java 8是自Java  5(2004年)发布以来Java语言最大的一次版本升级,Java 8带来了很多的新特性,比如编译器、类库、开发工具和JVM(Java虚拟机)。在这篇教程中我们将会学习这些新特性,并通过真实例子演示说明它们适用的场景。本教程由下面几部分组成,它们分别涉及到Java平台某一特定方...

2018-02-23 16:09:50 232

转载 Java8初体验(二)Stream语法详解

1. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行的对原Stream进行汇聚的操作;大家可以把S...

2018-02-23 14:48:58 215

转载 Java8 函数式编程详解

说起Java8,可能很多人都已经知道其最大的改进,就是引入了Lambda表达式与Stream,毕竟Java9都已近发布了,Java8发布了也已经近三年。那么,今天我们就先来讲一下Java8引入的Lambda表达式,以及由此引入的函数式编程,以及函数式接口。什么是函数式编程函数式编程并不是Java新提出的概念,其与指令编程相比,强调函数的计算比指令的计算更重要;与过程化编程相比,其中函数的计算可以随...

2018-02-22 17:14:40 270 1

原创 Java8 Stream原理深度解析

常用的流操作在深入原理之前,我们有必要知道关于Stream的一些基础知识,关于Stream的操作分类,如表1-1所示。表1-1 Stream的常用操作分类(表格引自这里)如表1-1中所示,Stream中的操作可以分为两大类:中间操作与结束操作,中间操作只是对操作进行了记录,只有结束操作才会触发实际的计算(即惰性求值),这也是Stream在迭代大集合时高效的原因之一。中间操作又可以分为无状态(Sta...

2018-02-22 15:51:21 454

转载 java8 :: 用法 (JDK8 双冒号用法)

JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。代码其实很简单:以前的代码一般是如此的:1234567891011121314151617public class AcceptMethod {     public static void  printValur(String str){        System.out.pr...

2018-02-22 13:43:15 10902

转载 JAVA8之collect总结

一,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)二,预定义收集器包括将流元素归约和汇总到一个值.如下工厂方法返回类型用于toListList<T>把流中所有元素收集到List中示例:List<Menu> menus=Menu.getMenus.stream().collect(Collectors.toList())toSe...

2018-02-22 13:41:03 3919

转载 java1.8 foreach

classic forclassic foreachList.forEach()List.stream().forEach()List.parallelStream().forEach  1.classic forfor(int i = 0, l = list.size(); i < l; ++i) { doIt(list.get(i));}2.classic foreachfor...

2018-02-22 10:53:09 792

转载 java1.8的几大新特性(一)

一、接口的默认方法与静态方法,也就是接口中可以有实现方法public class Test { public static void main(String[] args) { Formula a=new For(); a.calculate(1); System.out.println(a.sqrt(8)); } int...

2018-02-22 10:49:19 407

转载 java1.8的几大新特性(二)

七、Date APIJava 8 在包java.time下包含了一组全新的时间日期API。新的日期API和开源的Joda-Time库差不多,但又不完全一样,下面的例子展示了这组新API里最重要的一些部分:public class Test { public static void main(String[] args) { /** *(一) Clock 时...

2018-02-22 10:45:14 280

转载 Eclipse控制台中文输出乱码的解决办法

1、console控制台打印乱码2、右键: Run As --> Run Configurations3、找到common项,在“Encoding”栏,看到当前用的是默认“UTF-8”编码方式4、设置成“GBK”,不区分大小写5、点击“Run”,显示正常参考:http://blog.csdn.net/techzero/article/details/9455957...

2018-02-13 15:59:20 10359 3

原创 自定义MongoDB的ObjectId

MongoDB的ObjectId,由12位组成,其中前四位是一个UNIX的时间戳,精确到秒,这样就产生一个问题,如果按ObjectId排序的话,可能得到的顺序,和数据插入的顺序是有差别的。由此,需要自定义ObjectId生成器,也是12位组成,只是组成内容有差异,如下:12*8位: 时间戳(48位) + SEQ(8位) + 机器码(16位) + UUID(24位)1.时间戳改为48

2018-02-06 16:40:34 3057

转载 MongoDB中ObjectId的误区,以及引起的一系列问题

先来了解下ObjectId:TimeStamp 前 4位是一个unix的时间戳,是一个int类别,我们将上面的例子中的objectid的前4位进行提取“4df2dcec”,然后再将他们安装十六进制 专为十进制:“1307761900”,这个数字就是一个时间戳,为了让效果更佳明显,我们将这个时间戳转换成我们习惯的时间格式(精确到秒)$ date -d '1

2018-02-06 14:47:03 338

转载 byte&oxff到底为什么【java中的负数】

近日需要一个将字节数组转换为十六进制字符串输出的函数,于是开始编码如下://该代码存在问题public static String byteToHex(byte[] bt){ StringBuffer sb = new StringBuffer(); for(int i=0;i<bt.length;i++){ String tmpStr

2018-02-06 14:24:38 480

转载 java中,byte转为int为何要&0xff

第一,oxff默认为整形,二进制位最低8位是1111  1111,前面24位都是0;第二,&运算: 如果2个bit都是1,则得1,否则得0;第三,byte的8位和0xff进行&运算后,最低8位中,原来为1的还是1,原来为0的还是0,而0xff其他位都是0,所以&后仍然得0,

2018-02-06 14:23:32 545

原创 Spring MVC 自定义请求参数解析

1.spring-mvc.xml 配置                                                                                                                                      text/plain;charset=UTF-8

2018-01-23 09:04:56 693

转载 简单明了区分escape、encodeURI和encodeURIComponent

一、前言讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。 二、escape和它们不是同一类简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。编码之后的效果是%XX或者%uXXXX这种形式。其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码,其余的都会

2018-01-09 11:00:34 193

原创 WEB开发常用插件

1.datepicker : 日历控件2.dhtml403 : 前端JS开发框架-DHTMLX,有丰富的组件可以使用(开源- GPL允许您使用dhtmlxSuite标准版在GPL许可下免费的项目。)https://www.cnblogs.com/DemoLee/p/4006099.html3.easyui : JS开发框架http://www.jeasyui.net/4

2018-01-09 10:56:05 3574

转载 Spring MVC防御CSRF、XSS和SQL注入攻击

点击打开转载地址本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击)。说说CSRF对CSRF来说,其实Spring3.1、ASP.NET MVC3、Rails、Django等都已经支持自动在涉及POST的地方添加Token(包括FORM表单和AJAX

2018-01-08 16:08:19 172

原创 mysql 各种命令(解锁)

解锁第一种show processlist;找到锁进程,kill id ;第二种mysql>UNLOCK TABLES;锁表锁定数据表,避免在备份过程中,表被更新mysql>LOCK TABLES tbl_name READ;为表增加一个写锁定:mysql>LOCK TABLES tbl_name WRITE;查询是否锁表show

2017-07-06 09:51:19 3670

原创 easyui自定义优化

(function($){function initAcws(jq,t, myoption){myoption = myoption||null;jq["acws"+t](myoption);}//Acws组件初始化$.fn.parseAcwsOne=function(myoption){//Acws组件初始化try{var me=$(this);Acws.

2017-05-02 09:52:06 768

原创 jsp页面中js和css引用相关

String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>' target="_self"/>

2017-05-02 09:45:11 1217

转载 基于Tcp协议与基于Http协议的RPC简介笔记

转载自:http://blog.csdn.net/t894690230/article/details/50634855前言:之前对于RPC方面的学习多限于对RMI原理的学习,直到今天在看陈康贤前辈的《大型分布式网站架构-设计与实践》这本书的时候,才发现原来RPC可以基于TCP协议也可以基于HTTP协议(这里所说的TCP协议与HTTP协议更多的是指服务的消费者与远端的提供方的一种连接或消息

2017-04-24 10:29:55 243

转载 js中window.location.search的用法和作用。

转载自:http://blog.csdn.net/qq_27093465/article/details/50731087用该属性获取页面 URL 地址:window.location 对象所包含的属性属性描述hash从井号 (#) 开始的 URL(锚)host主机名和当前 URL 的端口号

2017-04-24 10:28:18 2778

原创 在log4j中,输出另一个日志文件的配置方式

<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> <!--org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)

2015-12-09 15:25:03 484

原创 springmvc-interceptor

Interceptor的接口定义如下:public interface HandlerInterceptor { boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception; void postHandle(Http...

2013-07-22 14:33:25 103

空空如也

空空如也

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

TA关注的人

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