随笔-59  评论-31  文章-0  trackbacks-0
06 2009 档案
JVM 调优 技巧 总结      摘要: 写了好几篇关于这个方向的文章了,但连自己都感觉写的有点乱,没有总结。所以现在把所有方法整理到一起,如果以后又发现新的,我继续补充到这篇文章里。

这篇是技巧性的文章,如果要找关于GC或者调整内纯的文章,看我其他几篇文章。因为是JVM 调优总结,所以废话少说。从各方面一共收集到以下几个方法:

  阅读全文
posted @ 2009-06-28 10:57 RoyPayne 阅读(423) | 评论 (0)  编辑
Hibernate延迟加载机制      摘要: 延迟加载:
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节。
  阅读全文
posted @ 2009-06-28 08:30 RoyPayne 阅读(195) | 评论 (0)  编辑
解读ClassLoader      摘要: ClassLoader一个经常出现又让很多人望而却步的词,本文将试图以最浅显易懂的方式来讲ClassLoader,希望能对不了解该机制的朋友起到一点点作用.
要深入了解ClassLoader,首先就要知道ClassLoader是用来干什么的,顾名思义,它就是用来加载Class文件到JVM,以供程序使用的。我们知道,java程序可以动态加载类定义,而这个动态加载的机制就是通过ClassLoader来实现的,所以可想而知ClassLoader的重要性如何。
  阅读全文
posted @ 2009-06-26 22:38 RoyPayne 阅读(255) | 评论 (0)  编辑
request.getParameter()和request.getAttribute()的区别      摘要: request.getParameter
是用来接受来自get方法或post方法的参数
只能接受java.lang.String
也就是说String hotel_id = request.getParameter("hotel_id");
request.getAttribute
是用来接受来自servlet的变量或Action(其实Action就是特殊的Servlet)
在Action中,request.setAttribute("ret",ret);
只能接受java.lang.Object
也就是说List ret = (List)request.getAttribute("ret");

一个是变量类型,一个对象类型



  阅读全文
posted @ 2009-06-25 22:01 RoyPayne 阅读(1157) | 评论 (0)  编辑
通通透透理解ThreadLocal      摘要: 概述

我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。

我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。

虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题,并非数据连接或会话的线程安全问题。

按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但Spring的DAO模板类并未采用线程同步机制,因为线程同步限制了并发访问,会带来很大的性能损失。

  阅读全文
posted @ 2009-06-23 09:30 RoyPayne 阅读(444) | 评论 (0)  编辑
java的浅复制和深复制      摘要: 1.浅复制和深复制概念
⑴浅复制(浅克隆)
被复制对象的任何变量都含有和原来的对象相同的值,而任何的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制他所引用的对象。  阅读全文
posted @ 2009-06-20 18:03 RoyPayne 阅读(166) | 评论 (0)  编辑