自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aty

虽有嘉肴,弗食,不知其旨也;虽有至道,弗学,不知其善也。是故学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 hibernate的查询缓存和二级缓存的配合使用

只开启查询缓存,不开启二级缓存是没有意义的。上一篇博客可以看出,不开启二级缓存,iterate()方法存在N+1次数据库查询问题,list方法最多只能命中id,也需要N次数据库查询,无论是哪儿种情况,查询缓存已经失去了意义。通过开启查询缓存和二级缓存,同样的sql查询可以直接使用查询缓存中的id和二级缓存中的实体对象,能够有效的减少重复的数据库查询,能够提高查询效率。也就是说:同时开启查询缓存和二级缓存是有意义的,也是实际使用hibernate的最佳配置。

2014-04-25 23:55:16 1529

原创 Hibernate缓存体系之查询缓存(query cache),以及list和iterate方法的区别

什么是Hibernate的查询缓存呢?想一下这样的情况:如果A用户向hibernate发出了一个select * from student where name='aty',过了一会儿B用户也发出了同样的查询语句,而在这期间student表数据没有任何的改动,也就是说A用户和B用户需要获取的数据都是相同。如果对A的查询结果进行了缓存,B用户就不用直接查数据库了,直接从缓存中获取数据即可。

2014-04-25 21:46:17 4276 1

原创 使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识

学习java的程序员,没有不知道Eclipse的,这个强大的IDE极大的提高我们的开发效率。编写好代码后,我只需要简单的run as就能运行程序了。这种方式很简单快捷,但是让我们对于IDE的依赖更加严重了,甚至不能离开IDE了,以至于很多程序员在linux都不会运行自己的java程序了。这里简单介绍下JDK的2个命令javac和java,来手动编译和运行我们的程序。      首先我们用Ecl

2014-04-24 08:23:41 2911

原创 java中使用try-catch-finally一点值得注意的事

我们知道,try负责圈定可能会出异常的代码;catch负责处理try中可能异常的处理,如记录错误日志,使业务能够正常运行;finally负责资源释放等善后工作,无论有无异常都必须要执行的代码,一般都是放在finally中的。如果catch和finally也会出现异常,那么会是什么效果呢? try { // java.lang.ArithmeticExce

2014-04-22 17:13:52 2049 3

原创 使用注解风格学习Hibernate和JPA的4种主键生成策略

Hibernate内置了很多主键生成策略,这些策略可以分为两类:一类是JPA标准的主键生成策略,一类是Hibernate框架特有的主键生成策略。JPA标准策略有4种:auto策略、table策略、sequence策略、identity策略;余下的都是hibernate自己的策略,包括我们常用的native、uuid、assigned、sequence等。

2014-04-19 23:15:47 2219

原创 使用工具分析java heap dump文件

通过上一篇博客linux/windows下利用JDK自带的工具获取thread dump文件和heap dump文件,我们知道如何获取到java应用程序的heap dump文件。现在我们使用一些图形化工具,来帮助我们分析文件中的信息,有效地定位问题。使用JDK自带的jhat命令jhat是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等

2014-04-19 13:59:04 3618

原创 linux/windows下利用JDK自带的工具获取thread dump文件和heap dump文件

在上一篇博客http://blog.csdn.net/aitangyong/article/details/24009283中介绍了dump的一些基本概念,这一篇博客介绍如何在windows/linux平台下获取dump文件,为后续的学习打下基础。我们使用的JDK工具在JDK_HOME/bin/目录下,使用到jmap和jstack这2个命令。获取heap dump文件windows下切换到

2014-04-18 14:11:54 13829

原创 java程序性能分析用到的文件thread dump和heap dump入门

在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore,或java dump)。我们可以这么理解:heap dump记录内存信息的,thread dump是记录CPU信息的。heap d

2014-04-18 13:12:35 7250

原创 session.clear()与session.flush的区别

session.clear()方法负责清空session缓存中的实体对象,不管缓存中数据是否与数据库记录一致;session.flush()方法负责同步session缓存中的实体对象与数据库记录,保持数据的一致性。

2014-04-17 16:33:15 2431

原创 通过测试用例和执行结果,让你正确推测和理解Session中Load和get的区别,不再困惑

们知道Session是Hibernate框架的核心类,也是初学hibernate时最重要、接触最多的类,它提供了load()和get()方法,根据主键从数据库中查询记录。这2个方法存在一些特性和差别,需要开发者注意,否则很容易出错。网上有很多介绍load和get区别的帖子,虽然很多帖子介绍的都很好,但遗憾的是缺少对应单元测试和执行结果的佐证,而且有些博客之间还是相互矛盾的.

2014-04-17 01:27:51 2736 2

原创 Hibernate实体对象的三种状态以及困惑

Hibernate官方文档manaul中提到,hibernate实体有三种状态:Transient、Persistent、Detached。本文参考了官网手册和http://blog.csdn.net/hgd250/article/details/2775943这篇博客。1、Transient状态    An object is transient if it has just

2014-04-16 20:33:00 2418 3

原创 spring框架的XML扩展特性:让spring加载和解析你自定义的XML文件

Spring框架从2.0版本开始,提供了基于Schema风格的XML扩展机制,允许开发者扩展最基本的spring配置文件(一般是classpath下的spring.xml)。试想一下,如果我们直接在spring.xml中加入一个自定义标签,会发生什么呢?spring框架启动的时候会报错,因为spring根本不认识我们自定义的,这样对spring.xml的校验就会失败,最终结果就是框架不能启动。有什

2014-04-13 15:40:12 9298 1

原创 缓存框架Ehcache学习(二)多种创建CacheManager的方式

CacheManager是Ehcache框架的核心类

2014-04-12 21:14:18 11099

转载 linux下查看CPU个数、核数、运行模式以及是否支持超线程技术

查看物理CPU个数

2014-04-11 16:57:03 6818

原创 通过代码组织,让你更好的理解和使用JDK动态代理

最近在看jdk的动态代理和aop的一些概念,发现对于jdk动态代理的使用,网上的博客大多写的都很简单,基本都是基于Object类型使用的,代码相对来说不好理解, 使用容易出错,而且没有将JDK代码与AOP关联起来。我们知道:一个好的开发视图和目录结构,能够帮助我们更好的理解代码作者的意图。经常写JDK动态代理的就可以发现,创建代理对象的过程存在很多相似之处,为此按照个人的理解,重新组织了下代码结构

2014-04-08 21:57:02 1050

原创 java字节序、主机字节序和网络字节序扫盲贴

java程序员是幸福,因为xiang

2014-04-08 21:31:54 15347

原创 使用Spring中的aspect或advisor实现方法拦截,模拟缓存实现

AOP是一种将通用逻辑与具体业务分离的技术,能够弥补OO在横向代码复用不足的问题,很好的实现separation of concerns (SoC)。缓存是改善系统性能的一种常用技术,采取以空间换时间的策略。缓存就是与具体业务无关的,如果我们设计一个缓存框架,那么应该是可插拔的,对系统业务代码无侵入的,这很符合AOP的适用场景。我们的项目采用了Ehcache缓存框架作为底层支撑,采用Spring框

2014-04-03 22:05:14 2084

原创 缓存框架Ehcache学习(一)创建多个CacheManager抛出异常

最近在研究缓存框架Ehcache的配置和使用,我想根据多个ehcache.xml创建多个CacheManager对象,但是报了异常:Caused by: net.sf.ehcache.CacheException: Another unnamed CacheManager already exists in the same VM. Please provide unique names fo

2014-04-03 11:44:05 7291

原创 java并发编程实践学习(三)JVM的server模式和client模式

《java并发编程实践》作者讲述volatile关键字的时候,在书中的注脚提到了JVM的server模式和client模式。以前自己从来没有听说过这个东西,不得不感概自己知识面的狭窄,编程的世界浩瀚!于是上网上看一些别人的博客,扫个盲,这里记录下一些相关概念。       首先说下server模式和client模式的区别。Jvm有client和server两个版本,分别针对桌面应用程序和服务端

2014-04-01 20:36:05 2139

eclipse最常用的快捷键

这是我个人从网上整理出来的快捷键,日常很常用的列在这里。而且比较清晰,欢迎大家下载。在eclipse提高开发效率

2012-10-12

空空如也

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

TA关注的人

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