自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Guus

梦想是要有的,万一实现了呢。

  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

原创 java 理解CAS

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volat

2015-10-27 09:13:24 1992 1

原创 spring mvc 的Controller类是单例?

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-10-16 14:16:34 3033 1

原创 防止浏览器缓存的几种方法

Cache-Control/Pragma这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和HTTP协议相关的缓存或代理服务器。 Cache-Control请求字段被各个浏览器支持得较好,而且它的优先级也比较高,它和其他一些请求字段(如Expires)同时出现时,Cache-Control会覆盖其他字段。Pra

2015-12-21 21:23:44 11418 1

原创 一个请求大体过程

当一个用户在浏览器里输入www.taobao.com这个URL时,将会发生很多操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器,向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。在服务器端实际上还有很复杂的业务逻辑:服务器可能有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;还有

2015-12-21 20:45:01 1423 1

转载 Redis学习手册(Set数据类型)

一、概述:      在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。      和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中

2015-11-04 22:35:30 644

转载 Redis学习手册(Hashes数据类型)

一、概述:      我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。二、相关命令列表:命令原

2015-11-04 22:22:17 541

转载 Redis学习手册(List数据类型)

一、概述:      在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4294967295。      从元素插入和

2015-11-04 22:05:31 442

转载 Redis手册(String数据类型)

一、概述:      字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。二、相关命令列表:命令原型时间复杂度命令描述返回值APPENDkey

2015-11-02 18:03:23 510

转载 Netty4.x中文教程系列 ChannelHandler

Netty4.x中文教程系列 ChannelHandler上一篇文章详细解释了Hello World示例的代码。里面涉及了一些Netty框架的基础。这篇文章用以解释ChannelHandler。笔者本身在以前写过文章 ChannelHandler改动及影响 和 ChannelInitializer 学习 对Netty的.ChannelHandler做过阐述。里面主要描述了4.x版本相对于3.x版本

2015-10-30 14:19:48 1390

原创 Java 悲观锁和乐观锁的实现

锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的“锁”,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hib

2015-10-30 10:58:20 10758 3

转载 Netty4.x中文教程系列 Hello World

1.下载并为项目添加Netty框架  1.Netty的包大家可以从Netty官网:http://netty.io/downloads.html 下载Netty提供了四个个主要版本的框架包给大家下载。 3.9版本Final 说明这个版本是3.x版本中最新的版本。final意味着功能不再继续添加更新。仅为修改bug等提供继续的更新。 5.x版本由于是开始。不能排除是否稳定运行等问题。加上5.x在4

2015-10-29 15:26:16 4127

转载 java多线程学习-java.util.concurrent详解(一) Latch/Barrier

Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者编写高效、易维护、结构清晰的Java多线程程序。从这篇blog起,我将跟大家一起共同学习这些新的Java多线程构件 1. CountDownLatch     我们先来学习一下JDK1.5 API中关于这个类的详细介绍: “一个同步辅助类,在完成一组正在其他

2015-10-27 16:24:15 1801

原创 Redis介绍以及安装(Linux)

redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存

2015-09-23 13:56:36 569

转载 jdk7和8的一些新特性介绍

本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容。官方文档:http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html在jdk7的新特性方面主要有下面几方面的增强:1.jdk7语法上 1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。

2015-08-14 15:09:25 1956

原创 MyBatis -- sql映射文件详解

MyBatis 真正的力量是在映射语句中。和对等功能的jdbc来比价,映射文件节省很多的代码量。MyBatis的构建就是聚焦于sql的。sql映射文件有如下几个顶级元素:(按顺序)cache - 配置给定命名空间的缓存。cache-ref – 从其他命名空间引用缓存配置。resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。

2015-08-11 21:34:29 5415

原创 MyBatis -- configuration配置详解

1、configuration有什么作用?configuration管理MyBatis的配置,MyBatis的所有配置信息都存放的在configuration中。下面我们看看configuration可配置的属性有哪些:1.1  properties属性实例: 这些都是外部化的,可替代的属性。其中的属性就可以再整个配置文件中使用,使用可替换的属性来实现动态配置,

2015-08-09 15:21:53 13051

原创 MyBatis -- 对表进行增删改查(基于注解的实现)

1、MyBatis对数据库表进行增/删/改/查前一篇使用基于XML的方式实现对数据库的增/删/改/查下面我们来看怎么使用注解的方式实现对数据库表的增/删/改/查1.1  首先需要定义映射sql的接口,代码如下:package org.guus.inter;import java.util.List;import org.apache.ibatis.annotations.D

2015-08-07 20:25:24 10544 2

原创 MyBatis -- 对表进行增删改查(基于XML的实现)

1、MyBatis对表中数据进行增/删/改/查操作在前一篇中已经知道怎么搭建环境并且查询数据库  MyBatis -- 一步步教你使用MyBatis接下来我们来看看怎么用MyBatis进行增/.删/改/查1.1  定义映射sql的xml文件文件内容如下:<!-- 在select标签中编写查询的SQL语句设置select标签的id属性为getUser,id属性值必须是

2015-08-06 22:38:37 5283 2

原创 MyBatis -- 一步步教你使用MyBatis

1、建立开发环境1.1  创建项目,java项目或者javaweb项目均可,如图:1.2  添加所需要的jar包到项目lib目录下一个MyBatis-3.2.4.jar包一个驱动包mysql-connector-java-5.1.6.jar包1.3  创建数据库和表create database mybatis;CREATE TABLE users(id INT

2015-08-05 21:19:09 5379

原创 设计模式 --外观模式(Facade)

什么是外观模式?外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。  简单点说:外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。概述 :在真实的应用系统中,一个子系统可能由很

2015-08-05 00:33:15 1960 1

原创 MyBatis --快速入门

什么是MyBatis?  MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC代码和参数的手工设置以及结果集的检索。 MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和 Java 的 POJOs( Plan OldJava Objects,普通的 Java对象)映射成数据库中的记录。  每一个mybati

2015-08-04 00:43:11 1616

原创 springMVC --拦截器详细,使用和自定义拦截器

看看拦截器都做些什么:1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面;3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间

2015-08-02 22:52:08 2601

转载 spring MVC --spring MVC原理

Spring MVC工作流程图图一图二 Spring工作流程描述      1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;      2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMappin

2015-08-01 23:21:24 1038

原创 springMVC --全局异常处理(两种方式)

首先看springMVC的配置文件: errors/error errors/err

2015-08-01 00:44:29 14527 2

原创 springMVC --@RequestParam注解(后台控制器获取参数)

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。获取tijiao

2015-07-31 00:30:26 5560 2

原创 springMVC --配置详细与注解说明

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.sprin

2015-07-31 00:09:04 2943 1

原创 设计模式--观察者模式(Observer)

什么是观察者模式?     定义了 一种一对多的关系,让多个观察对象(公司员工)同时监听一个主题对象(秘书),主题对象状态发生变化时,会通知所有的观察者,使它们能够更新自己。   解决什么问题?     将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察者就是

2015-07-29 23:56:39 868

原创 springMVC --DispatcherServlet详解

DispatcherServlet作用     DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派。DispatcherServlet主要用作职责调度工作,本身主要用于控制流程:1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;2、通过H

2015-07-28 17:31:47 5834

原创 设计模式--备忘录模式(Memento)

什么是备忘录模式?    在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以将以后的对象状态恢复到先前保存的状态。     我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除了几行代码),我们希望返回删除前的状态,便可以使用Ctrl+Z来进行返回。这时

2015-07-26 22:55:36 1014

原创 设计模式--适配器模式(Adapter)

什么是适配器模式?     Adapter模式使的原本由于接口不兼容而不能一起工作的那些类可以一起工作。     简单的说,就是需要的东西就在面前,确不能使用,而短时间又无法改造它,于是我们就想办法适配它。     适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。代码示例:/// /// 定义客户端期待的接口 ///

2015-07-25 00:22:45 1712

原创 jsoup解析的常见用法

1、解析attribute中值,如下面所示的serviceID和serviceName:String str="如下所示";解析方法: List> resultList = new ArrayList>(); org.jsoup.nodes.Document doc = Jsoup.parse(str); org.jsoup.select.Ele

2015-07-16 12:12:06 1776 1

原创 Java对象的序列化和反序列化

一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是

2015-07-13 09:44:43 1566

转载 Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2015-07-08 11:52:02 647

转载 Java IO最详解

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比

2015-07-08 11:39:10 524

原创 设计模式--迪米特法则(Lod/LKP)

迪米特法则:(Law of Demeter, LoD),也称最少知识原则(Least Knowledge Principle, LKP)理解:     如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个放发的话,可以通过第三者转发这个调用。  只和朋友交流(更准确来讲是:直接的朋友)每个对象都必然会与其

2015-07-06 17:29:49 1088

原创 EL表达式详解

1、作用:开发人员在无须java代码的情况下,可以方便的访问page、request、session、application作用域中的对象和其他对象。 2、EL 表达式语言 3、语法;例如:${user.id } 、${sessionScope.user.name}d点操作符  访问user对象的id属性[]操作符   ${user["id"

2015-07-06 15:19:22 669

原创 java注解

1、基本概念注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。 2、3个内建注解@Override:只能用在方法之上的,用来告诉别人这一个方法是

2015-07-06 15:16:43 489

原创 设计模式--代理模式(Proxy)

代理模式(Proxy) : 为其他对象提供一种代理以控制对这个对象的访问。下面实例说明://公共的抽象类public abstract class Subject { public abstract void Request();}//真实实体public class RealSubject extends Subject{ @Override public void

2015-07-06 15:07:15 1046

原创 java框架技术之hibernate核心类和接口

1、Configuraion类a)       负责管理hibernate的配置信息b)       读取hibernate.cfg.xmlc)       加载hibernate.cfg.xml配置文件中配置的驱动,url,用户名,密码,连接池。d)       管理*.hbm.xml对象关系文件。[html] view plaincopy

2015-07-06 12:51:51 486

原创 java框架技术之hibernate运行原理

1、什么是hibernatehibernate是一个orm框架(object relation     mapping  对象关系模型)属于持久层位置hiberbate是对jdbc的轻量级封装2、流程hibernate是处理数据库持久化的框架,获取加载hibernate.cfg.xml配置文件;根据配置文件建立对应的SessionFactory工厂;获得一个sess

2015-07-06 12:48:21 1133

jxcell.jar包破解版(不收费无时间限制)+demo

jxcell.jar包破解版(不收费无时间限制)+导出excel并加密的demo

2014-09-27

jEasyUI1.3.6_CHM

jEasyUI1 3 6版API中文版 Richie696 chm jEasyUI1 3 6版API中文版 Richie696 exe jquery easyui 1 3 6 zip

2014-09-26

html5必须知道的28个窍门

前端的发展如此之迅猛,一不留神,大侠你可能就会被远远地甩在后面了。如果你不想被HTML5的改变/更新搅得不知所措的话,可以把本文的内容作为必须了解的热身课程。

2014-09-23

空空如也

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

TA关注的人

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