自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jzhf2012的专栏

不管遇到什么困难,都不应该成为我放弃的理由!

  • 博客(44)
  • 资源 (7)
  • 收藏
  • 关注

原创 Java垃圾回收

1 引言    Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但

2013-01-05 10:49:04 1323

原创 java的8大排序

1, 直接插入排序   (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 package com.test; public class insertSort {public insertSort(){ inta[]={49,

2013-01-04 22:59:26 1867

原创 hibernate缓存机制

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。基本信息  缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓

2013-01-04 16:53:52 1885

原创 Spring MVC 3.0 深入及对注解的详细讲解

核心原理1.       用户发送请求给服务器。url:user.do2.       服务器收到请求。发现Dispatchservlet可以处理。于是调用DispatchServlet。3.      DispatchServlet内部,通过HandleMapping检查这个url有没有对应的Controller。如果有,则调用Controller。4、    Control

2013-01-04 11:33:59 57167 7

原创 基于spring3.0注解实现的spring MVC项目

我们采用sprng MVC开发项目时,通常都会采用注解的方式,这样可以大大提高我们的开发效率。实现零配置。下面我们从零开始重新做一个spring MVC的配置。这个项目完全采用注解的方式开发。前面的建立项目导入jar包不再叙述。1、 修改web.xml,文件内容如下:<web-app version="2.5" xmlns="http://java.sun.com/xml/n

2013-01-04 11:17:33 7897

原创 基于spring3.0的采用XML配置的spring MVC项目

Spring MVC 框架Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iTex

2013-01-04 11:06:55 9544 1

原创 Spring Security详解

简介Spring Security是一个能够为基于Spring的企业应用系统提供描述性安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(依赖注入,也称控制反转)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。Spring Security 的前身是

2013-01-04 09:58:20 1776

原创 Spring中Quartz开发指南

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写一个被调度的类:public class QuartzJob{ public void work() { System.out.println("Quartz的任务调度!!!"); }}

2013-01-04 09:35:39 1022

转载 java实现简单的单点登录

摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何

2013-01-02 13:23:24 1610

原创 哈希表(HashMap)分析及实现(JAVA)

探讨Hash表中的一些原理/概念,及根据这些原理/概念,自己设计一个用来存放/查找数据的Hash表,并且与JDK中的HashMap类进行比较。我们分一下七个步骤来进行。 一。 Hash表概念二 . Hash构造函数的方法,及适用范围三. Hash处理冲突方法,各自特征四. Hash查找过程五. 实现一个使用Hash存数据的场景--Hash查找算法,插入算法六. JDK中

2013-01-31 16:43:01 4934 1

原创 java动态代理(JDK和cglib)

JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为

2013-01-30 14:45:22 1413

原创 java源码分析之TreeMap深入篇

TreeMap有Values、EntrySet、KeySet、PrivateEntryIterator、EntryIterator、ValueIterator、KeyIterator、DescendingKeyIterator、NavigableSubMap、AscendingSubMap、DescendingSubMap、SubMap、Entry共十三个内部类。Entry是在TreeMap中用于

2013-01-25 09:59:16 6281 2

原创 java源码分析之TreeMap基础篇

常见的数据结构有数组、链表,还有一种结构也很常见,那就是树。前面介绍的集合类有基于数组的ArrayList,有基于链表的LinkedList,还有链表和数组结合的HashMap,今天介绍基于树的TreeMap。     TreeMap基于红黑树(点击查看树、红黑树相关内容)实现。查看“键”或“键值对”时,它们会被排序(次序由Comparable或Comparator决定)。TreeMap的

2013-01-25 09:57:21 13155 6

原创 java源码分析之HashSet及LinkedHashSet

Java容器类的用途是“保存对象”,分为两类:Map——存储“键值对”组成的对象;Collection——存储独立元素。Collection又可以分为List和Set两大块。List保持元素的顺序,而Set不能有重复的元素。     本文分析Set中最常用的HashSet类,并简单介绍和对比LinkedHashSet。     首先对Set接口进行简要的说明。      存

2013-01-25 09:54:45 5517 1

原创 java源码分析之LinkedHashMap

LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点;而在迭代访问时反而更快,因为它使用链表维护内部次序(HashMap是基于散列表实现的,相关HashMap的内容可以看《Java集合类》和《HashMap源码分析》)。1 public class LinkedHashMap exte

2013-01-25 09:53:01 4711

原创 java源码分析之HashMap

在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。    在看HashMap源码之前先复习一下数据结构。    Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表

2013-01-25 09:50:05 6400 7

原创 java源码分析之LinkedList

LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。    除此之外,LinkedList还提供了一些可以使其作为栈、队列、双端队列的方法。这些方法中有些彼此之间只是名称的区别,以使得这些名字在特定的上下文中显得更加的合适。

2013-01-25 09:28:45 35404 13

原创 java源码分析之ArrayList

ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素、灵活的设置数组的大小......    认真阅读本文,我相信一定会对你有帮助。比如为什么ArrayList里面提供了一个受保护的removeRange方法?提供了其他没有被调用过的私有方法?    首先看到对ArrayList的定义:public class Arr

2013-01-25 08:52:19 30432 16

原创 java serializable深入了解

一、串行化的概念和目的 1. 什么是Serialization?串行化(Serialization)是计算机科学中的一个概念,它是指将对象存储到介质(如文件、内在缓冲区等)中或是以二进制方式通过网络传输。之后可以通过反串行化从这些连续的位数据重新构建一个与原始对象状态相同的对象,因此在特定情况下也可以说是得到一个副本,但并不是所有情况都这样。Java有Serializati

2013-01-24 17:13:33 9144 1

原创 Java数组与内存控制

一、Java数组初始化           Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值。(文章来源于李刚老师的《突破java程序员的16课》)1:基本类型数组的两种初始化方式静态初始化:初始化时由程序员显式指定每个数组元素的初

2013-01-24 16:47:00 1739

原创 Java 动态代理机制分析及扩展

简介: 本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java 动态代理运作过程,希望能帮助读者加深对 Java 动态代理的理解和应用引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调

2013-01-23 15:09:52 975

原创 Java动态代理

没事的时候翻看lang.reflect包下的代码,发现有两部分内容:涉及反射和动态代理。 很多地方都可以看到动态代理的影子,只是一直没仔细看下。 在学习之前,先提出几个问题,带着问题来看代码: 1.什么是动态代理? 2.为什么使用动态代理? 3.使用它有哪些好处? 4.哪些地方需要动态代理? 熟悉设计模式的人对于代理模式可 能都不陌生。 代理对象和被代理

2013-01-23 14:50:22 1018

原创 JAVA中静态数组与动态数组

前面我们学习的数组都是静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数据,要动态添加数据必须要用到动态数组,动态数组中的各个元素类型也是一致的,不过这种类型已经是用一个非常大的类型来揽括—Object类型。    Object类是JAVA.LANG包中的顶层超类。所有的类

2013-01-23 14:27:35 2952

原创 整合Struts2+JasperReport Web报表应用示例

整合Struts2+JasperReport Web报表应用示例JasperReports作为一种优秀且开源的报表引擎,不利用太可惜了。同时,借助开源的JasperReports模板设计利器iReports,可以可视化的设计报表模板。基于Web的报表在很多项目中都是需要的。而随着Struts2的流行,就应该研究一下在Struts2下如何利用JasperReports进行报表输出。本示例比较

2013-01-23 10:41:27 2138

原创 Hibernate+Spring+Struts2整合开发中的一个分页显示方案

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流。    1、DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface M

2013-01-23 10:35:02 1919

原创 解析xml的4种方法详解

1. 介绍1)DOM(JAXP Crimson解析器)         DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几

2013-01-23 10:25:24 83600 8

原创 Java堆和栈的区别

堆和栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不

2013-01-23 10:17:23 1531 2

原创 深度解析Java内存的原型及工作原理

本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、java虚拟机内存原型寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等永久存储空间。二、常量池(const

2013-01-22 12:08:48 1262

原创 Java内存溢出详解及解决方案

内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码。更严重的是内存溢出与数据库锁表在系统开发和单

2013-01-22 12:05:07 3738

原创 公司的Java框架应具备的通用功能

以前在学校的时候自己以为是不是每个做JAVA开发的公司每次做项目的时候都要搭建一个SSH框架呢,工作之后才发现每个公司都有自己的一套框架,要不是在SSH基础上,要不是在SSI基础上进行了符合自己公司需求的封装,并且随着自己公司的框架被应用到各个实际系统的过程中,这个框架会越来越成熟,会使该公司的开发效率越来越高。根据笔者接触过的几个公司的框架,笔者发现要想实现高效的开发,每个公司的框架应该

2013-01-22 11:16:41 1379

原创 Struts2请求处理流程及源码分析

Struts2请求处理流程及源码分析1.1 Struts2请求处理1. 一个请求在Struts2框架中的处理步骤:a) 客户端初始化一个指向Servlet容器的请求;b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMes

2013-01-22 11:12:37 1010

原创 Java枚举的七种常见用法

DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color {    RED, GREEN, BLANK,

2013-01-22 11:06:04 1061

原创 Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理

一、cookie机制和session机制的区别  具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。  同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。二、会话cookie和持久cookie的区别

2013-01-12 16:36:30 9396

原创 String、StringBuffer与StringBuilder之间区别

最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下  1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String

2013-01-12 09:43:57 1407 1

原创 ORACLE 删除重复数据

比如现在有一人员表 (表名:peosons)  (1)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来  select p1.*  from persons p1,persons p2  where p1.id  and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address

2013-01-09 16:52:40 1283

原创 java多线程概念和原理

多线程是程序员面试时常常会面对的问题,对多线程概念的掌握和理解水平,也会被一些老鸟用来衡量一个人的编程实力的重要参考指标。不论是实际工作需要还是为了应付面试,掌握多线程都是程序员职业生涯中一个必须经过的环节。其实当你把“多线程”和你的“职业生涯”联系在一起考虑的时候,就会觉得“多线程”是多么的渺小,对,没有跨越不过的山。不过就算它很渺小,但也有可能改变你的人生轨迹。不用担心,如果你对多线程还不太熟

2013-01-07 15:39:47 1761

原创 java RMI远程方法调用详解

RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。简单地说,这样使原先的程序在同一操作系统的方法调用,变成了不同操作系统之间程序的方法调用,由于J2EE是分布式程序平台,它一RMI机制实现程序组件在不同操作系统之间的通信。比如,一个EJB可以通过RM

2013-01-07 14:43:27 4458

原创 学习java必知的概念

1、java面向对象的特征 1)封装:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。        面向对象程序设计中,一个非常重要的技术便是封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。这样做的好处在于可以使类内

2013-01-05 11:24:42 1620

原创 Java中反射机制(Reflection)学习

首先看下基本概念:  (一)在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能:       ①:在运行时判断任意一个对象所属的类。       ②:在运行时构造

2013-01-04 22:39:39 1247

原创 JAVA中集合map,set,list详解

在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:            java.util        +Collection 这个接口extends自 --java.lang.Iterable接口           +List 接口               -ArrayList 类              -LinkedL

2013-01-04 18:41:30 2149 2

java模板模式

用代码诠释原理,将深奥的东西更加容易理解

2014-10-30

java原型模型

用代码解释其原理,理解设计模式,完美解读

2014-10-30

java工厂模式

用代码理解设计模式的内涵,简单易懂。代码中解释了关于设计模式的内涵。

2014-10-29

java策略模式

java策略模式,用代码讲述了其真实原理

2014-10-26

简单工厂模式

设计模式中的工厂模式源代码,供大家学习用

2014-10-26

Java并发编程学习笔记

Java并发编程学习笔记,很不错的东西,

2013-04-18

CAS实现单点登录(SSO)经典完整教程

CAS实现单点登录(SSO)经典完整教程

2013-01-24

空空如也

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

TA关注的人

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