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

转载 数据结构与算法目录-复习专用
数据结构和算法目录表 CC++Java线性结构1. 数组、单链表和双链表2. Linux内核中双向链表的经典实现 数组、单链表和双链表 数组、单链表和双链表 栈 栈 栈 队列 队列 队列树形结构 二叉查找树 二叉查找树 二叉查找树 A
2017-07-03 01:02:35
572
原创 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
620
原创 位运算实现整数的加减乘数运算
用位运算实现加法也就是计算机用二进制进行运算,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
946
原创 SpringMVC通过工具类获取Request域
当DispatcherServlet在调用doDispach对请求处理之前,在doService方法中会对请求request进行一些处理,会在它的域中添加一些属性,供后面的操作使用。我们可以通过以下两种方式来快速获取request域对象中保存的属性,不管是dispatchServlet放置的,还是我们自己保存的1.RequestContextHolderRequestCon
2017-08-01 13:46:39
2081
原创 终止线程的2种方法。标记法和中断
引言在原来的jdk版本中: 提供了暂停,恢复,终止线程的方法,分别是suspend(),resume(),stop(); 但是它们都存在缺陷,比如暂停suspend()方法在调用后,线程不会释放资源(比如:锁),而是占有着资源进入睡眠状态。stop()方法在调用后,通常不能保证线程的资源正常的释放,因为他根本没有给予线程释放资源的机会。 正因为这些方法带来的不良影响,使得它们被废除。替代然而聪
2017-07-27 19:21:34
4567
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
3088
转载 java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候
2017-07-17 18:40:22
470
转载 通过Servlet3.0添加对异步的支持实现后台推送
本例参考:http://blog.youkuaiyun.com/chenxiang0207/article/details/14054681/http://blog.youkuaiyun.com/u010497228/article/details/43387575 感谢上面的两位大佬,转载只是为了方便浏览。我按照上面博文的思路重新走了一遍项目结构如下图
2017-07-16 20:48:23
1092
原创 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
326
原创 【java神操作】java竟然还可以能执行Javascript代码!!
引入:闲着没事想研究下学校查成绩的接口,然后自己写程序查。但是查成绩首先必须登录,所以必须先研究学校网站的登录接口,抓包后发现传到后台的学号密码是经过加密的,研究其加密方法成为必经之路 发现学校网站改造升级后并没有以前想的那么破烂了。登录的账号和密码都通过js进行了编码,所以想通过程序模拟登录,必须弄清楚进行编码操作的js代码,然后最重要的是还要把它翻译成java代码,但是由于js和java的语
2017-07-02 20:23:30
13039
转载 【JAVA集合详解】HashMap
之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想:(1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢(2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。
2017-07-02 03:08:54
509
转载 【JAVA集合详解】Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.ConcurrentMod
2017-07-02 02:31:33
403
转载 【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
869
1
转载 【JAVA集合详解】LinkedList
上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元的地址),每次查
2017-07-02 01:29:10
375
转载 【JAVA集合详解】ArrayList
前言这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtable)就只讲一个,突出它们之间的区别即可。最后,要指出一点,对于集合,我认为关注的点主要
2017-07-02 01:23:15
426
转载 【JAVA集合详解】并发容器之CopyOnWriteArrayList
原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOn
2017-07-02 01:19:00
409
原创 4种方法让SpringMVC接收多个对象
问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理?第1种方法:表单提交,以字段数组接收;第2种方法:表单提交,以BeanListModel接收;第3种方法:将Json对象序列化成Json字符串提交,以List接收;第4种方法:将表单对象序列化成Json字符串提交,以List接收; 第
2017-06-30 22:28:07
361
原创 正则表达式里面(+?)
+ 匹配一次或更多次的重复+?匹配一次或更多次的重复,但是在能使整个匹配成功的前提下使用最少的重复相关知识点:查阅贪婪匹配与懒惰匹配
2017-06-08 23:23:46
385
转载 正则前面的 (?i) (?s) (?m) (?is) (?im)
Q:经常看见的正则前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思?A: 称为内联匹配模式,通常用内联匹配模式代替使用枚举值RegexOptions指定的全局匹配模式,写起来更简洁。 (?i) 表示所在位置右侧的表达式开启忽略大小写模式 (?s) 表示所在位置右侧的表达式开启单行模式。 更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之
2017-06-08 23:22:52
360
原创 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
406
原创 【SpringMVC源码分析-1】MessageConverter和ArgumentResovler的区别
消息转换器: 是用来转换@RequestBody方法参数,和@ResponseBody返回值。参数解析器: 用来支持自定义控制器方法参数类型。意思是如过我们在控制器的方法中,要注入的参数类型不是springMVC所能支持的,需要我们自定义解析器来支持
2017-06-04 23:54:40
586
原创 静态代码块,构造代码块,构造方法的执行顺序
结论: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
1088
原创 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
1023
原创 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种是:通过 在xml中定义init-method 和 destory-method方法第三种是: 通过bean实现InitializingBean和 DisposableBean
2017-06-02 22:29:13
1482
原创 SpringMVC上传组件Servlet3.0和Commons-fileupload优缺点
servlet3.0支持的StandardServletMultipartResolver 是原生支持的,没有其他的依赖,使用起来方便。commons-fileupload的CommonsMultipartResolver需要导入commons-fileupload包理论上来说第一种,servlet自带的更好,不要导入其他来依赖。但是在实际的表单上传测试中,表单中不仅有
2017-06-02 00:02:35
1269
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
642
原创 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
402
原创 Apache Tiles教程
Apache Tiles是表现层的布局引擎。 在通常我们用jsp页面做布局时,通常会用<jsp:include page=”“/>或者<%@include file=”“%>将多个页面组合在一起。但页面一多,而且需要每个页面都要使用上述的标签包含其他通用页面。这样不方便维护,而apache tile解决了这个问题。下面介绍一个使用Apache Tiles的示例Maven导入包<dependency
2017-05-27 18:30:46
3044
原创 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
5718
转载 Java finalize方法使用
《JAVA编程思想》:Java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它
2017-04-30 23:36:11
306
转载 Hash算法冲突解决方法分析
看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、
2017-04-30 14:23:30
314
转载 mybatis3 autoMappingBehavior
转载请注明:TheViper http://www.cnblogs.com/TheViperautoMappingBehavior是一个容易被忽略的属性可以看到,默认是PARTIAL,只会自动映射没有定义嵌套结果集映射的结果集。这句话有点拗口,意思就是映射文件中,对于resultMap标签,如果没有显式定义result标签,mybatis不会帮你把结果映射到mode
2017-04-29 00:37:04
5514
原创 MyBatis懒加载问题
在我们查数据时,mybatis会默认把关联的数据查出来,而关联查询比单表查询慢,并且我们有时候不需要那么多的数据。所以我们需要开启懒加载,关联的数据等需要的时候再查出来myBatis开启懒加载,需要在mybatis主配置文件的settings标签中配置lazyLoadingEnabled为true,aggressiveLazyLoading为false。lazyLoadingEnabled=true
2017-04-28 09:46:04
1872
转载 Java中的访问控制与修饰符
public :能被所有的类(接口、成员)访问。protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。friendly(缺省):访问权限与
2017-04-27 19:52:42
473
转载 使用Executors创建和管理线程
1. 类 Executors此类中提供的一些方法有:1.1 public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 1.2 public static ExecutorService new
2017-04-26 00:16:01
281
转载 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同
2017-04-26 00:12:06
309
转载 Java 内存管理白皮书,读完它,java 内存管理的问题完全 NO Problem!
说明 要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习。官网所给出的资料总是最权威最知道来龙去脉的。而Java中间,垃圾回收与内存管理是Java中非常重要的一部分。《Hotspot内存管理白皮书》是了解Java垃圾收集器最权威的文档。相比于其他的一些所谓翻译文章,本文的翻译更加准确,通顺和全面。在翻译的过程中如果出现一些问题,如果出现问题或者表述不清楚的地方,可以直接在评论
2017-04-25 13:04:50
882
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人