自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鬼剑愁的专栏

Javaweb 应用程序开发者。

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

原创 mybatis高级映射多对多查询(二)

在这篇博客中,我来介绍下mybatis中的多对多查询的案例,在mybatis中,如何使用ResultMap来实现多对多的查询?案例:一个user可以有很多role,一个role可以有很多entitlement.一,数据库表的准备DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_

2016-03-20 13:52:55 543

原创 mybatis高级映射一对多查询(一)

最近一直在研究mybatis,查询是并不可少的研究内容。mybatis的一对多的查询,个人觉得比hibernate简单的很多。好了,废话不多说了,下面以一个简单的例子解释一下mybatis的一对多的查询。

2016-03-20 09:45:41 2236

转载 线性结构(三) - 队列的原理与实现

一、队列的介绍队列(Queue),是一种线性存储结构。它有以下几个特点:1、队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。2、队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。队列通常包括的两种操作:入队列 和 出队列。1. 队列的示意图2. 出队列3. 入队列二、队列的实现

2015-09-07 13:38:44 623

转载 线性结构(二) - 栈的原理与实现

注意:本文所说的栈是数据结构中的栈,而不是内存模型中栈。一、栈的介绍栈(stack),是一种线性存储结构,它有以下几个特点:1、栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的。2、向栈中添加/删除数据时,只能从栈顶进行操作。栈通常包括的三种操作:push、peek、pop。push -- 向栈中添加元素。peek --

2015-09-06 21:17:56 485

转载 线性结构(一) - 数组、单链表和双链表

一、概要       线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列。本文章介绍线性表的几个基本组成部分:数组、单向链表、双向链表以及双向链表的实现。二、数组数组有上界和下界,数组的元素在上下界内是连续的。存储10,20,30,40,50的数组的示意图如下:数组的特点是:数据是连续的;随机访问速度快。数组中稍微复杂一点的是多维数组和

2015-09-06 20:17:00 521

原创 maven仓库查询地址

第一个地址:  http://www.mvnrepository.com/第二个地址: http://search.maven.org/

2015-09-01 21:19:26 457

原创 相关网站地址

java网站:http://www.importnew.com/7099.htmlhttp://www.importnew.com/6931.html容器:http://www.importnew.com/15689.htmlNetty: http://ifeve.com/netty5-user-guide/http://my.oschina.net/imh

2015-09-01 11:52:29 797

转载 关于 hashCode() 你需要了解的 3 件事

在 Java 中,每一个对象都有一个容易理解但是仍然有时候被遗忘或者被误用的 hashCode 方法。这里有3件事情要时刻牢记以避免常见的陷阱。一个对象的哈希码允许算法和数据结构将对象放入隔间,就象打印机类型案件中的字母类型。打印机将所有的“A”类型放到一个房间,它寻找这个“A”的时候就只需要在这个房间进行寻找。这种简单的系统让他在未排序的抽屉中寻找类型的时候更快。这也是基于哈希的集合的想法,

2015-08-29 22:23:03 304

转载 JVM垃圾回收机制

每个Java程序员迟早都会碰到下面这个错误:java.lang.OutOfMemoryError这个时候一般会建议采用如下方式解决这个错误:增加MaxPermSize值增加最大堆内存到512M(-xmx参数)这篇文章会具体介绍Java堆空间和参数MaxPermSize的含义。这篇文章涉及下列主题,并采用Hotspot JVM:垃圾回收器(Garbage Collec

2015-08-26 23:26:49 311

转载 Java 面试题问与答:编译时与运行时

在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念。理解这几个概念可以更好地帮助你去了解一些基本的原理。下面是初学者晋级中级水平需要知道的一些问题。Q.下面的代码片段中,行A和行B所标识的代码有什么区别呢?public class ConstantFolding { static final int number1 = 5; static fina

2015-08-26 23:03:59 312

转载 不愿看到Java开发者再做的10件事

编者注:Andy是OSI(开发系统集成者)的CEO,同时也是位思想先锋及优秀博客作者。William F. Buckley.Jr 曾经说过,“保守主义者是那些逆着历史潮流不断喊停的人,其他人都不愿意这么做或者对他们这么做显得没有耐性”。虽然我对此了解不多,但是每次看到有Java开发人员做以下事情或者我自己被迫做这些事情时,总想跳出来叫停。0、遍历结果集并构造对象

2015-08-26 20:23:51 429

转载 记录异常日志的7条规则

最近一直在帮忙调试一些让人头大的bug问题,这才意识到如何记录异常日志对于简化调试的重要性,我总结了几点记录异常日志的最佳实践发表在此。1、记录技术性异常而不是用户异常 用户异常(如:“登录用户名已经存在”)除了显示给用户,要么什么都别管,要么根本就不是异常(“用户尚未认证”)。技术性异常(如:“文件存储不够,没法订阅此产品”)才是你需要调试而为此做出反应的,如果你记录所有事情很有可能因日

2015-08-26 20:13:58 2984

转载 Java多线程面试问题集锦

如果你即将去一家从事大型系统研发的公司进行Java面试,不可避免的会有多线程相关的问题。下面是一些针对初学者或者新手的问题,如果你已经具备良好的基础,那么你可以跳过本文,直接尝试针对进阶水平的Java多线程编程问题及解答。一个Java虚拟机的实例运行在一个单独的进程中,不同的线程共享Java虚拟机进程所属的堆内存。这也是为什么不同的线程可以访问同一个对象。线程彼此共享堆内存并保有他们自己独

2015-08-25 17:59:24 405

转载 探索 ConcurrentHashMap 高并发性的实现机制

本文转载自: http://www.importnew.com/16147.html简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所

2015-08-25 15:36:37 265

转载 ConcurrentHashMap原理分析

一.Java并发基础当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然j

2015-08-25 12:51:00 286

转载 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例

wait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视。本文对这些关键字的使用进行了描述。在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线程——即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓冲区中有内

2015-08-24 23:55:09 477

转载 Java内存

本文转载自:http://www.importnew.com/14086.html要了解Java垃圾收集机制,先理解JVM内存模式是非常重要的。今天我们将会了解JVM内存的各个部分、如何监控以及垃圾收集调优。Java(JVM)内存模型正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代(Young Generat

2015-08-24 22:12:48 324

转载 10个有关String的面试问题

1. 如何比较两个字符串?使用“==”还是equals()方法?简单来讲,“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。除非你想检查的是两个字符串是否是同一个对象,否则你应该使用equals()来比较字符串。如果你知道interning的概念的话,那就更好了。2. 为什么针对安全保密高的信息,char[]比String更好?因为S

2015-08-24 16:22:31 283

转载 阻塞队列实现生产者消费者模式

生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。这篇文章我们来看看什么是生产者消费者模式,这个问题也是多线程面试题中经常被提及的。如何使用阻塞队列(Blocking Queue)解决生产者消费者模式,以及使用生产者消费者模式的好处。真实世界中的生产者消费者模式生产者和消费者模式在生活当中

2015-08-24 13:04:32 531

转载 JVM栈

Java中的栈每当启用一个线程时,JVM就为他分配一个Java栈,栈是以帧为单位保存当前线程的运行状态。某个线程正在执行的方法称为当前方法,当前方法使用的栈帧称为当前帧,当前方法所属的类称为当前类,当前类的常量池称为当前常量池。当线程执行一个方法时,它会跟踪当前常量池。每当线程调用一个Java方法时,JVM就会在该线程对应的栈中压入一个帧,这个帧自然就成了当前帧。当执行这个方法时,它使用这

2015-08-13 18:01:57 292

转载 Spring MVC 之@RequestBody,@ResponseBody详解

简介:@RequestBody作用:       i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;      ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。使用时机:A) GET、POST

2015-08-13 17:41:38 349

转载 Servlet线程安全问题

Servlet容器默认采用单实例多线程的方式来处理请求,这样减少产生Servlet实例的开销,提升了对请求的响应时间Servlet 体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据 web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet

2015-08-13 16:30:16 335

转载 equals和==的区别

==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。    equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。    ==比较的是2个对象的地址,而equals比较的是2个对象的内容。    显然,当equals为true时,==不一定为true;

2015-08-13 16:25:00 262

转载 equals和hashcode的区别

equals()是用来判断两个对象或变量具体的值是否相等。基础类型判断是否相等时,使用“==”来判断,按java的说话,“==”当用来判断是基础类型是判断内容的,而引用对象是判断内存地址的。hashCode()是用来产生哈希玛的,该方法返回该对象的哈希码值,而哈希玛是用来在散列存储结构中确定对象的存储地址的,该方法主要支持java.util.HashMap,java.util.Hashtabl

2015-08-13 16:22:37 530

转载 hashcode()的作用

在一般的应用中你不需要了解hashCode的用法,但当你用到HashMap,HashSet等集合类时要注意下hashCode。     你想通过一个object的key来拿HashMap的value,HashMap的工作方法是,通过你传入的object的hashcode在内存中找地址,当找到这个地址后再通过equals方法来比较这个地址中的内容是否和你原来放进去的一样,一样就取出value。

2015-08-13 16:18:12 260

转载 重写equals 和 hashcode

1、 为什么要重写equal方法?因为Object的equals方法默认是两个对象的引用的比较,意思就是指向同一内存,地址则相等,否则不相等;如果你现在需要利用对象里面的值来判断是否相等,则重写equals方法。2、 为什么重写hashCode方法?一般的地方不需要重写hashCode,只有当类需要放在HashTable、HashMap、HashSet等等hash结构的集合时才会重写h

2015-08-13 16:09:33 393

转载 CocurrentHashMap和Hashtable的区别

集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。为什么我们需要Concurren

2015-08-13 13:07:19 477

转载 HashMap和HashSet的区别

本文转载自:http://www.importnew.com/6931.htmlHashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能

2015-08-13 12:54:49 327

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java

2015-08-13 12:42:45 305

转载 HashMap的工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入

2015-08-13 11:56:19 327

原创 Request Parameters and Header Values

你可以通过指定你的请求参数去精确匹配你的请求,例如像:"myParam", "!myParam", or "myParam=myValue"。

2015-08-12 23:07:25 436

原创 Producible Media Types

你可以指定producible media types去精确匹配你的请求,可接受的请求头里面只要匹配了你配置的值的里面的其中一个,该请求就会被匹配上。

2015-08-12 22:56:50 989

原创 Consumable Media Types

你可以通过指定特定的consumable media types去缩小你的匹配程度。请求头里面的Content-Type与你的media type匹配了,该请求才会有效的匹配。

2015-08-12 22:49:05 877

原创 Path Patterns 和 Patterns with Placeholders

@RequestMapping也支持 类似于${…}占位符,取自本地properties配置文件,system properties配置文件或者是environment variables。

2015-08-12 22:28:30 516

原创 URI Template Patterns with Regular Expressions

考虑这个URI:/spring-web/spring-web-3.0.5.jar,你怎么样去把它分隔成多个部分呢?

2015-08-12 22:06:56 690

原创 URI Template Patterns

URI 模板可以提供给@RequestMapping注解访问特定的url一个很方便的方式。URI模板是一个类似于URI的String,包含一个或者多个参数名字。例如,URI模板是以下的情况:http://www.example.com/users/{userId}包含了变量userId, 如果通过这样的一个URI去访问http://www.example.com/users/fred,那么userId的值就是fred。

2015-08-10 10:37:17 1958 1

原创 New Support Classes for @RequestMapping methods in Spring MVC 3.1

Spring 3.1 介绍了支持@RequestMapping注解的类和方法,

2015-08-08 19:58:27 447

原创 @Controller's and AOP Proxying

在某种情况下,控制器在运行的时间需要被AOP的代理装饰,一个很简单的例子就是你在控制器上直接加@Transactional的注解。

2015-08-08 18:58:36 473

原创 Mapping Requests With @RequestMapping

你可以使用@RequestMapping注解去映射URL类似/appointments到整个类或者处理器的方法上,通常情况下类级别的映射了一个特定的请求路径,而方法级别的注解

2015-08-08 18:49:24 293

原创 Defining a controller with @Controller

@Controller的注解表明这样的一个类就是控制器的角色,Spring并不要求你去继承任何控制器的基类或者去引用任何Servlet的API,然后根据你的需要,你仍然可以去引用这些API。

2015-08-08 12:11:10 321

空空如也

空空如也

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

TA关注的人

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