自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 数据结构与算法目录-复习专用

数据结构和算法目录表 CC++Java线性结构1. 数组、单链表和双链表2. Linux内核中双向链表的经典实现 数组、单链表和双链表 数组、单链表和双链表 栈 栈 栈 队列 队列 队列树形结构  二叉查找树 二叉查找树 二叉查找树 A

2017-07-03 01:02:35 517

原创 SpringSecurity过滤器链汇总

SpringSecurity过滤器链认证过程 

2019-01-05 20:57:38 2082

原创 Rabbit官方文档翻译之Publish Subscribe(三)

Publish/Subscribe 订阅模式 (using the Java Client)In the previous tutorial we created a work queue. The assumption behind a work queue is that each task is delivered to exactly one worker. In this p

2017-12-13 00:22:17 552

原创 位运算实现整数的加减乘数运算

用位运算实现加法也就是计算机用二进制进行运算,32位的CPU只能表示32位内的数,这里先用1位数的加法来进行,在不考虑进位的基础上,如下1 + 1 = 01 + 0 = 10 + 1 = 10 + 0 = 0很明显这几个表达式可以用位运算的“^”来代替,如下1 ^ 1 = 01 ^ 0 = 10 ^ 1 = 10 ^ 0 = 0这样我们就完成了简单的

2017-08-16 18:05:57 862

原创 SpringMVC通过工具类获取Request域

当DispatcherServlet在调用doDispach对请求处理之前,在doService方法中会对请求request进行一些处理,会在它的域中添加一些属性,供后面的操作使用。我们可以通过以下两种方式来快速获取request域对象中保存的属性,不管是dispatchServlet放置的,还是我们自己保存的1.RequestContextHolderRequestCon

2017-08-01 13:46:39 2026

原创 终止线程的2种方法。标记法和中断

引言在原来的jdk版本中: 提供了暂停,恢复,终止线程的方法,分别是suspend(),resume(),stop(); 但是它们都存在缺陷,比如暂停suspend()方法在调用后,线程不会释放资源(比如:锁),而是占有着资源进入睡眠状态。stop()方法在调用后,通常不能保证线程的资源正常的释放,因为他根本没有给予线程释放资源的机会。 正因为这些方法带来的不良影响,使得它们被废除。替代然而聪

2017-07-27 19:21:34 4490 1

原创 Spring 下默认事务机制中@Transactional 无效的原因

Spring中 @Transactional 注解的限制 1. 同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效If you use (default) Spring Proxy AOP, then all AOP functionality provided by Spring (like @Transational) will on

2017-07-26 01:34:35 3041

转载 java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题

一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候

2017-07-17 18:40:22 437

转载 通过Servlet3.0添加对异步的支持实现后台推送

本例参考:http://blog.csdn.NET/chenxiang0207/article/details/14054681/http://blog.csdn.net/u010497228/article/details/43387575   感谢上面的两位大佬,转载只是为了方便浏览。我按照上面博文的思路重新走了一遍项目结构如下图

2017-07-16 20:48:23 1061

原创 java.lang.Object.clone()分析

文章来源:http://www.cnblogs.com/gw811/archive/2012/10/07/2712252.html 要点总结 1.要使用object的clone方法的前提: a)子类要实现Cloneable接口,否则调用clone()方法,会抛CloneNotSupportedException b)子类要重写clone()方法,然后修改包访问权限为public

2017-07-16 20:44:26 299

原创 【java神操作】java竟然还可以能执行Javascript代码!!

引入:闲着没事想研究下学校查成绩的接口,然后自己写程序查。但是查成绩首先必须登录,所以必须先研究学校网站的登录接口,抓包后发现传到后台的学号密码是经过加密的,研究其加密方法成为必经之路 发现学校网站改造升级后并没有以前想的那么破烂了。登录的账号和密码都通过js进行了编码,所以想通过程序模拟登录,必须弄清楚进行编码操作的js代码,然后最重要的是还要把它翻译成java代码,但是由于js和java的语

2017-07-02 20:23:30 12902 1

转载 【JAVA集合详解】HashMap

之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想:(1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢(2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。

2017-07-02 03:08:54 480

转载 【JAVA集合详解】Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.ConcurrentMod

2017-07-02 02:31:33 367

转载 【JAVA集合详解】Vector与ArrayList与CopyOnWriteArrayList区别

1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%

2017-07-02 02:02:21 769 1

转载 【JAVA集合详解】LinkedList

上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元的地址),每次查

2017-07-02 01:29:10 344

转载 【JAVA集合详解】ArrayList

前言这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtable)就只讲一个,突出它们之间的区别即可。最后,要指出一点,对于集合,我认为关注的点主要

2017-07-02 01:23:15 394

转载 【JAVA集合详解】并发容器之CopyOnWriteArrayList

原文链接:  http://ifeve.com/java-copy-on-write/    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOn

2017-07-02 01:19:00 375

原创 4种方法让SpringMVC接收多个对象

问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理?第1种方法:表单提交,以字段数组接收;第2种方法:表单提交,以BeanListModel接收;第3种方法:将Json对象序列化成Json字符串提交,以List接收;第4种方法:将表单对象序列化成Json字符串提交,以List接收; 第

2017-06-30 22:28:07 330

原创 正则表达式里面(+?)

+ 匹配一次或更多次的重复+?匹配一次或更多次的重复,但是在能使整个匹配成功的前提下使用最少的重复相关知识点:查阅贪婪匹配与懒惰匹配

2017-06-08 23:23:46 316

转载 正则前面的 (?i) (?s) (?m) (?is) (?im)

Q:经常看见的正则前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思?A: 称为内联匹配模式,通常用内联匹配模式代替使用枚举值RegexOptions指定的全局匹配模式,写起来更简洁。  (?i) 表示所在位置右侧的表达式开启忽略大小写模式  (?s) 表示所在位置右侧的表达式开启单行模式。  更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之

2017-06-08 23:22:52 328

原创 mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用

我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢? 添加的作用是:指定字符的编码、解码格式。             例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEnc

2017-06-05 00:33:39 356

原创 【SpringMVC源码分析-1】MessageConverter和ArgumentResovler的区别

消息转换器: 是用来转换@RequestBody方法参数,和@ResponseBody返回值。参数解析器: 用来支持自定义控制器方法参数类型。意思是如过我们在控制器的方法中,要注入的参数类型不是springMVC所能支持的,需要我们自定义解析器来支持

2017-06-04 23:54:40 535

原创 静态代码块,构造代码块,构造方法的执行顺序

结论:a.父类的静态代码块 b.子类的静态代码块 c.父类的构造代码块 d.父类的构造方法 e.子类的构造代码块 f.子类的构造方法演示父类:package t1;/** * Created by Administrator on 2017/6/4. */public class ClassA { private static String name; private

2017-06-04 02:46:54 1028

原创 DispacherServlet默认加载配置文件名

2017-06-04 01:30:09 1015

原创 SpringMVC接受多个同类型对象最佳实践

1.复杂的javabean(1)javaBeanpublic class Spitter { private long id; @NotNull @Size(min = 5,max = 16,message = "{username.size}") private String username; @NotNull @Size(min = 5,max =

2017-06-03 01:06:39 991

原创 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种是:通过 在xml中定义init-method 和  destory-method方法第三种是: 通过bean实现InitializingBean和 DisposableBean

2017-06-02 22:29:13 1440

原创 SpringMVC上传组件Servlet3.0和Commons-fileupload优缺点

servlet3.0支持的StandardServletMultipartResolver 是原生支持的,没有其他的依赖,使用起来方便。commons-fileupload的CommonsMultipartResolver需要导入commons-fileupload包理论上来说第一种,servlet自带的更好,不要导入其他来依赖。但是在实际的表单上传测试中,表单中不仅有

2017-06-02 00:02:35 1218 1

原创 设置web.xml使用基于java的配置

web.xml添加contextClass参数,改写contextConfigLocation的值,为javaconfig的全名<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app>

2017-06-01 22:34:51 586

原创 Thymeleaf【第一篇】 结合springmvc

1.Maven配置 <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>3.0.6.RELEASE</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId>

2017-05-31 00:48:13 367

原创 Apache Tiles教程

Apache Tiles是表现层的布局引擎。 在通常我们用jsp页面做布局时,通常会用<jsp:include page=”“/>或者<%@include file=”“%>将多个页面组合在一起。但页面一多,而且需要每个页面都要使用上述的标签包含其他通用页面。这样不方便维护,而apache tile解决了这个问题。下面介绍一个使用Apache Tiles的示例Maven导入包<dependency

2017-05-27 18:30:46 2954

原创 java.net.URISyntaxException的解决办法

近日在用HttpClient访问抓取汇率时,为了省力,直接采用String url = "http://api.liqwei.com/currency/?exchange=usd|cny&count=1"; HttpClient client = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); HttpResponse

2017-05-16 01:37:12 5672

转载 Java finalize方法使用

《JAVA编程思想》:Java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。          (1).对象不一定会被回收。       (2).垃圾回收不是析构函数。       (3).垃圾回收只与内存有关。       (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它

2017-04-30 23:36:11 269

转载 Hash算法冲突解决方法分析

看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、

2017-04-30 14:23:30 283

转载 mybatis3 autoMappingBehavior

转载请注明:TheViper http://www.cnblogs.com/TheViperautoMappingBehavior是一个容易被忽略的属性可以看到,默认是PARTIAL,只会自动映射没有定义嵌套结果集映射的结果集。这句话有点拗口,意思就是映射文件中,对于resultMap标签,如果没有显式定义result标签,mybatis不会帮你把结果映射到mode

2017-04-29 00:37:04 5397

原创 MyBatis懒加载问题

在我们查数据时,mybatis会默认把关联的数据查出来,而关联查询比单表查询慢,并且我们有时候不需要那么多的数据。所以我们需要开启懒加载,关联的数据等需要的时候再查出来myBatis开启懒加载,需要在mybatis主配置文件的settings标签中配置lazyLoadingEnabled为true,aggressiveLazyLoading为false。lazyLoadingEnabled=true

2017-04-28 09:46:04 1767

转载 Java中的访问控制与修饰符

public :能被所有的类(接口、成员)访问。protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。friendly(缺省):访问权限与

2017-04-27 19:52:42 448

转载 使用Executors创建和管理线程

1. 类 Executors此类中提供的一些方法有:1.1 public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 1.2 public static ExecutorService new

2017-04-26 00:16:01 253

转载 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同

2017-04-26 00:12:06 282

转载 Java 内存管理白皮书,读完它,java 内存管理的问题完全 NO Problem!

说明  要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习。官网所给出的资料总是最权威最知道来龙去脉的。而Java中间,垃圾回收与内存管理是Java中非常重要的一部分。《Hotspot内存管理白皮书》是了解Java垃圾收集器最权威的文档。相比于其他的一些所谓翻译文章,本文的翻译更加准确,通顺和全面。在翻译的过程中如果出现一些问题,如果出现问题或者表述不清楚的地方,可以直接在评论

2017-04-25 13:04:50 846

翻译 RabbitMQ官方文档翻译之Remote procedure call(六)

RabbitMQ;RPC

2017-04-23 19:20:42 687

空空如也

空空如也

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

TA关注的人

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