随笔分类 -  java

things about java
【翻译】java logging api
摘要:想深入学习一下java logging api。网上资料不多。于是翻译了一下jdk的文档。4级都没有过的人的处女翻译作品。轻拍。如果无法忍受。请移步原文。http://docs.oracle.com/javase/6/docs/technotes/guides/logging/overview.html一、概述控制流概述应用程序向记录器(Logger)对象发起logging请求。记录器按照命名空间被组织成层级关系,子记录器可以从他们的祖先记录器中继承一些logging属性。记录器对象向每一个可见的处理器(Handler)对象分发日志记录(LogRecord)。记录器和处理器都可以用日志级别(L 阅读全文

posted @ 2012-05-08 20:15 咖啡不苦 阅读(645) 评论(0) 推荐(0) 编辑

【东东学数据结构】冒泡排序
摘要:冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序对个项目需要O()的比较次数,且可以原地排序。尽管这个算法是最简单了解和实作的排序算法之一,但它对于少数元素之外的数列排序是很没有效率的。冒泡排序是与插入排序拥有相等的执行时间,但是两种法在需要的交换次数却很大地不同。在最坏的情况,冒泡排序需要次交换,而插入排序只要最多交换。冒泡排 阅读全文

posted @ 2012-03-11 18:35 咖啡不苦 阅读(568) 评论(0) 推荐(0) 编辑

【深入】java 单例模式
摘要:关于单例模式的文章,其实网上早就已经泛滥了。但一个小小的单例,里面却是有着许多的变化。网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头。企图把这个单例说透,说深入。但愿我不会做的太差。 首先来看一个典型的实现: 1 /** 2 * 基础的单例模式,Lazy模式,非线程安全 3 * 优点:lazy,初次使用时实例化单例,避免资源浪费 4 * 缺点:1、lazy,如果实例初始化非常耗时,初始使用时,可能造成性能问题 5 * 2、非线程安全。多线程下可能会有多个实例被初始化。 6 * 7 * @author laiche... 阅读全文

posted @ 2011-12-05 15:32 咖啡不苦 阅读(15571) 评论(8) 推荐(7) 编辑

@ResponseBody 乱码
摘要:显然,这个问题不是我第一个遇到。已经有一些人做了研究了。但我发现这种方式在spring 3.1.0依然不行。没有小心跟踪源码。也没能给出方案,自己还是换回3.0.5了。3.1.0返回的是Content-Type:text/plain;charset=ISO-8859-1。而3.0.5则能返回Content-Type:text/plain;charset=utf-8 阅读全文

posted @ 2011-10-26 14:26 咖啡不苦 阅读(1462) 评论(0) 推荐(0) 编辑

struts1.3执行流程分析
摘要:这是在去年9月份,读了一下struts1.3的源码,记录了一下执行流程。发出来和大家分享一下吧。这个流程还是很经典的吧。有空再读读struts2的^_^ 执行流程:1、ActionServlet处理.do的请求 不管是get还是post方式都将转到 protected void process(HttpServletRequest request, HttpServletResponse resp... 阅读全文

posted @ 2010-03-01 14:20 咖啡不苦 阅读(3673) 评论(0) 推荐(0) 编辑

hibernate学习(7)——一对一双向外键关联
摘要:无论是单向还是双向,在数据库里的形式都是一样的:用一个外键来建立两张表的联系。不同的是在程序中双向可以从任意一段得到另一端的引用。  Annotation方式:同样两端都使用@OneToOne,但需要注意在一端加上mapedBy参数。参数的值是另一端对应的属性名称。如果不加mapedBy,hibernate则会在数据库中生成两个外键关系。这是冗余的且在数据更新时会造成不必要的麻烦。一条规律是:凡是... 阅读全文

posted @ 2010-02-24 16:32 咖啡不苦 阅读(787) 评论(0) 推荐(0) 编辑

hibernate学习(6)——一对一单向外键关联
摘要:一对一,在对象模型里面就是一个对象持有对方的引用。在数据库里有三种方法。1、外键关联。2、主键关联。3、使用中间表。其中最常用的就是外键关联。  例如,husband和wife的对应关系。  Annotation方式:直接在字段上加上@OneToOne,可以使用@JoinColumn来指定外键字段的名称。husband Code highlighting produced by Actipro C... 阅读全文

posted @ 2010-02-23 13:59 咖啡不苦 阅读(399) 评论(0) 推荐(1) 编辑

hibernate学习(5)——savaOrUpdate,clear,flush
摘要:saveOrUpdate会根据数据库和对象的状态来决定执行save方法还是update方法。  在Session中有一个一级缓存。不论是load还是get方法在都会先在缓存中查找是否有对应的数据。如果有直接拿出来用。如果没有才会发出sql从数据库里拿。而clear方法就是清除Session中的缓存的。  flush方法会强制让Session的缓存和数据库同步。hibernate缓存和数据库自动同步... 阅读全文

posted @ 2010-02-23 13:37 咖啡不苦 阅读(609) 评论(0) 推荐(0) 编辑

hibernate学习(4)——update
摘要:update方法用于更新数据库内容。在hibernate API中的解释是可以把一个Detached状态的对象更新成Persistent对象。而通过实验发现,只要是有Id的对象(数据库有相应记录,包括手动指定id的Transient对象)都可以使用update方法进行更新。而对于Persistent对象来说,只要重新设置了对像的属性值,再Session提交的时候就会自动更新(隐式的调用update... 阅读全文

posted @ 2010-02-23 13:16 咖啡不苦 阅读(1390) 评论(0) 推荐(0) 编辑

java日期时间处理工具类封装
摘要:在日常的开发中经常会遇到时间的处理。比如格式化后打印出来,得到明天的日期等等。java中也提供了很多类来处理时间,比如Calendar,java.util.Date,java.sql.Timestamp,SimpleDateFormat等等。昨天晚上写了一个工具类,封装了一些常用的方法。比如拿到当前的年月日时分秒,昨天,明天,之前n天,之后n天,格式化,还有各种时间类型之间的互相转换等等。如果还有... 阅读全文

posted @ 2010-02-23 12:49 咖啡不苦 阅读(5504) 评论(0) 推荐(0) 编辑

hibernate学习(3)——get和load的区别
摘要:通过get和load都可以从数据库中取到数据组装成一个对象。但这两个方法间有一点区别:1、调用get方法的时候,会马上向数据库发出sql语句查询,返回对象。调用load方法则不会马上发sql语句,返回的是一个代理对象。当真正使用的时候才会发出sql。所以要求这时Session的transaction还没有提交,否则包延迟初始化异常。2、如果取的记录是数据库中不存在的,调get方法是马上会报错(找不... 阅读全文

posted @ 2010-02-10 13:46 咖啡不苦 阅读(236) 评论(0) 推荐(0) 编辑

hibernate学习(2)——对象的三种状态
摘要:hibernate中的对象有三种状态。Transient(瞬时的),Persistent(持久的),Detached(离线的)。下面从内存和数据库中是否存在与之对应的记录来说明这三种状态的区别:Transient:刚new出来的普通对象,在内存里有,Session的缓存里没有,没有ID,数据库里没有对应记录;Persistent:内存里有,Session的缓存里有,有ID,数据库里有对应记录;De... 阅读全文

posted @ 2010-02-10 13:17 咖啡不苦 阅读(279) 评论(0) 推荐(0) 编辑

hibernate学习(1)——核心接口
摘要:hibernate的核心接口主要涉及到Configuration,SessionFactory,Session三个类。  Configuration对应于配置文件。SessionFactory可以简单的理解为数据库连接池,是Session对象的工厂类。Session可以简单理解为一个数据库的链接,通过Session对象对数据库进行CRUD的操作。下面主要分析从SessionFactory获取Ses... 阅读全文

posted @ 2010-02-09 14:06 咖啡不苦 阅读(303) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示