2008-04-30

Tomcat源码研究碎得(1)

关键字: initiation
1, System.getProperty(setProperty)是个好东东: 2, Tomcat源码研究与航空航天工程 3, File下的getCanonicalPath方法是干啥的? 4, Embeded.java类中的initNaming这个方法是干啥的?     它里面的javax.naming.Context.URL_PKG_PREFIXES这个是做什么用的?     还有一个javax.naming.Context.INITIAL_CONTEXT_FACTORY,这又是做什么的? 5, 那个D ...
Java中Interface与C++中相关概念的点点理解         今天查Tuple这个词在编程中的意义时不经意间看到了C++中头文件声明这个说法,好长时间没写C++代码了,现在把C++的头文件放到Java的语境里不由自主地就想到了Java中Interface的概念. 表面上有点像.         1,以"实现"角度来看,在Java中一个接口得有实现类不然没有实际意义;C++中,一个头文件声明若没有对应的类,这个头文件声明也没有什 ...
1, Collections.unmodifiableMap( new HashMap(0) );           看到了这样的语句,不知道个unmodifiableMap在实际中有什么用?          是说整个执行过程中,某一个变量所指向的Instance没有是不可modifiable的吧?而不是这个Map中的具体内容. 这样再结合应用的上下文就通了.   2,Hibernate中有个 ...
看项目中的StoredProcedure时,它是看到select @errReturn as cError这样的语句,那个@errReturn是定义的,可一直没见过cError的定义,于是想这样想. 这对吗?
2008-04-08

Derby源码初体验

关键字: derby, sysinfo.*
1,sysinfo.java类:    从最简单的一个command开始,也就是DERBY_HOME和PATH设置完成后,用来check settings的那个command.        1.1看bin\sysinfo.bat脚本文件:        1.1.1 @echo off是关闭cmd的显示.        1.1.2 @REM 是注释吧?看起来是.那光是"rem& ...
想研究Tomcat的源码,昨天在家试了试,只能看到静态的code,那样虽然可以看,但总觉得不够吸引人.毕竟看静态的Code时,只能自己看调用关系,跟着跟着就"迷路"了.于是想着能不能在Tomcat启动/运行时看具体的Code调用关系,那样就太爽了,一个是把Benz停在那让你看,一个是把钥匙给你,你可以看着Benz来感受.两者的感受真是天壤之别!!可昨晚没实现这个开Benz梦,今天早早地就到办公室了,想着趁上班之前把这个梦给实现了.在Eclispe里鼓捣了半天也没弄出来,还是那些静态代码.这怎么办呢?记得以前可以在Tomcat启动时看到它源码的,可一下子忘了怎么弄出来.后来快 ...
Source Code Study序言:有段时间了,心里总是抑制不住地研究些源代码,从最开始的MySql开始(想复习C++相关知识),后来发现了Sqlite这个"小鬼",很是惊喜!这两个都是与C++相关的.后来过了些日子,被Tomcat的配置折磨的不行了,就心想起想研究Tomcat源码的念头,心想研究这个要好的多,不仅仅是对Tomcat的配置会烂熟于心,另外的收获就是对Java EE相应规范的理解,再往深地想更大的收获就是对线程与PoolableDataSoucre与JNDI实现的理解,呵呵.这么多的精品知识,那不岂不美哉!又是数据库,Derby!那天无意中发现可以下载De ...
1.3 Persistence layers and alternatives   In a medium- or large-sized application, it usually makes sense to organize classes by concern(这个by concern写的不错呀!). Persistence is one concern; others include presentation, workflow,and business logic. A typical object-oriented architecture include ...
2008-04-06

JavaPersistenceWithHibernate读书笔记(5)

关键字: data navigation
1.2.5 The problem of data navigation(数据navigation问题)    在Java里与relational database里数据navigation有很根本的不同.在Java世界里,当我们要想访问一个User里的billing information时,我们可以通过下面的方式就可以了:        aUser.getBillingDetails().getAccountNumber();    不过,很不幸的是,这并不是从SQL里取 ...
2008-04-06

<Java.JavaEE面试整理>(12) 对Collections FrameWork的理解(二)

关键字: concurrentmodificationexception
<Java.JavaEE面试整理>(12) 对Collections FrameWork的理解(二) ++++++++++++++++++++++++++++++++++++++++++真是抱歉,没有把那个<Java.JavaEE面试整理>(11) 对Collections FrameWork的理解(一)(以下简称"理解一")这样核心部分的内容放到频道首页来让更多的朋友看到,而只是把个英文原文放到这里.应该说"理解一"更为值得关注.为了答谢大家的支持,鄙人会将这段时间对这个Collection Framework的理解心 ...
Q 16:谈谈你对Java Collections Framework的理解? LF DP FAQQ 16:     collections framework对外提供的接口是List,Set and Map.List和Set继承自Collection接口.不要把Collection这个接口和Collections这个类搞混了,这个Collections类与Arrays类似,也是一个工具类.        Set(HashSet,TreeSet):     &nbs ...
写博一月后的收获与反思开始安下心来写博到现在,细想一下也有一个来月了,期间几乎是都有博客粘上去.从刚开始的开场白, Tomcat折磨心得,憔悴的一天及其疗法,还有母鸡孵出小鸭子这个有些怪诞的Log,blissfully ignorant of the goings-on of the outside,再到Eclipse里配置Ant 组织的Project(3)Eclipse中配置Tomcat的JNDI至到现在的一系列读书心得,其间很有追名逐利的浮躁,不过有一点成功对我的帮助很大,那就是在这种追名逐利的浮躁的牵引下,我很清楚地发现了我的写作能力很是有限,极需提高;有些话,心里很是明白,可写出来后总 ...
2008-04-04

JUnit In Action读书笔记(7) -- Managing resources with

关键字: managing resources with a fixture
2.6.1 Managing resources with a fixture    有时,一些tests是需要外部资源的,而这些资源的配置却很麻烦.这方面很典型的例子就是数据库的连接.而有时为了一个测试,我们得需要很复杂的data stuctures或一长串的随机输入.            要是把这些很典型的setup代码也写进tests里的话,那可就显得有些傻了.毕竟我们要测试的不是搭建资源的能力--我们仅仅是需要一个稳定的测试环境.这里的测试环境set在JUnit里称 ...
Q 13: Java中为什么有些接口里并没有定义任何方法? LF FAQA 13:Java中的那些没定义任何方法的接口当做Marker来用的,利用它可以告诉编译器对这类接口的实现类另行对待.Java中像java.io.Serializable,java.lang.Cloneable,java.util.EventListener等这些接口也称为"tag"接口,因为用它们可以将其实现类基于某种特性再分类.Q 14: 谈谈你对Java里覆盖与重载的理解?它们有什么不同?Q 14:    Method Overloading:   ...
2008-04-03

<Java.JavaEE面试整理>(9)--抽象类与接口有什么区别?以及如何选择?

关键字: abstract class, interface, or ?, 抽象类与接口有什么区别?以及如何选择?
"abstract class" or "interface"?Q 12: 抽象类与接口有什么区别?以及如何选择? LF DP DC FAQ A 12: In design, 我们想让基类只为其子类提供一个调用的接口,这样做我们并不想将此类实例化,我们只是在运行时将子类upcast to it(这样就可以获得多态特性了).我们可以用Java里的abstract关键字来将些基类定义为abstract class.    Java里的Interface又将这个概念进一步地抽象了,利用它编译器将阻止对接口中展现的方法实现.这样我们 ...
2008-04-03

<Java.JavaEE面试整理>(8) --基于什么考虑,Java 1.4中引入Assert???

关键字: what is design by contract? explain the assertion construct?
Q 11: What is design by contract? Explain the assertion construct? DC(基于什么考虑,Java 1.4中引入Assert???) A 11: Design by contract specifies the obligations of a calling-method and called-method to each other. Design by contract is a valuable technique, which should be used to build well-defined interfaces ...
2008-04-03

JavaPersistenceWithHibernate读书笔记(4)

关键字: 1.2.4 problems relating to associations
1.2.4 Problems relating to associations    在我们的E-Co实例中的Domain model里,实例对象的关系是用associations表示的,这样User Address和BillingDetials就可以关联起来.不过,BillingDetails与Address不同的是,在BD中这个类有自己表存放数据.        实例对象间的关联及其管理是ORM中的核心内容.        OO中,关联关系是 ...
2008-04-02

JavaPersistenceWithHibernate读书笔记(3)

关键字: subtypes and identity
1.2.2 The problem of subtypes    Java world: parent class and child class. 父类和子类.    Sql world:  要是有supertables和subtables就好了,那样我们就可以在新建一个表时从一个父表中继承来一些列,可是RDBMS里并没有提供这种机制.    对于如何来沟通这两个世界里的就subtypes这方面的联系,本书将在第五章第一节的"Mapping class inheritance&quo ...
2008-04-02

JUnit In Action读书笔记(6)

关键字: observing results with testlistener(design patterns in actio
2.5 Observing results with TestListener(Design patterns in action: Observer)    利用此设计模式,在对象之间 ,我们可以定义一种"一对多"的依赖,那样当一个对象的state发生变化时,依赖于此的对象都得到通知并相应地自动更新.在JUnit里,把TestRunner作为一个TestListener注册到TestResult上的.(The  TestRunner registering as a  TestListener with the  ...
2008-04-02

<Java.JavaEE面试整理>(7) --Polymorphism之深入理解(二)

关键字: composition or inheritance
Q. Why would you prefer code reuse via composition over inheritance?  Both the approaches make use of olymorphism and gives code reuse (in different ways) to achieve the same results but:  ƒ    1,The advantage of class inheritance is that it is done statically at compile-tim ...
Q 10:请谈谈你对多态,继承,封装和动态绑定(dynamic binding)的理解?A 10:    多态:是指对于一个给定类型的引用可以指向不同类型的对象,并在其方法调用时会自动地选择其真正指向对象的特定方法.换个角度来说,多态是一种从上底到上的方法调用形式(in a nutshell,polymorphism is a bottom-up method call).Java里的用多态的好处是,我们可以在不修改调用代码(当然这个调用代码本身使用了具有多态特性的类和接口)的情况下,很容易地添加新的实现类.多态背后的机制就是我们说的动态绑定. &nbs ...
2008-04-01

JUnit In Action读书笔记(5)

关键字: rolling your own test suite, collecting parameters with testr
2.3.2 Rolling your own test suiteThe default TestSuite goes a long way toward keeping the simple things simple.But what happens when the default suite doesn’t meet your needs? You may want to combine suites from several different packages as part of a master suite. If you’re working on a ...
2008-04-01

java.sql.Timestamp转为相应字符串的问题及解答

关键字: java.sql.timestamp的to string.
工作中用到了java.sql.Timestamp这个类,先不说这个类别的方面(现在不大明白的是它与java.sql.Date和java.sql.Time这两个类有什么不同?这个Timestamp有了对nanos的支持后就更精准了吗?),用这个类自身的toString()方法时就有些不舒服,因为它返回的字符串都是"yyyy-mm-dd hh:mm:ss:nnnnn......."格式的,而且那个小尾巴总是一个数字0,抹不掉了,这怎么办呢?为了这个小尾巴的问题总不至于再写一个自己的MyTimestamp来覆盖它吧?知道可以用Format这样的一些手段format掉,可查了些后也 ...
2008-04-01

<Java.JavaEE面试整理>(5)

关键字: 'is a' vs 'has a', composition vs aggregation
Q 09: 请谈谈你对'is a'和'has a'的理解?也就是继承与组合的理解?组合与聚合又有什么不同?A 09: 'is a'的关系描述的OO中的继承,而'has a'描述的是OO中的组合方式.通过继承与组合,我们都可以在新类中使用已有代码.这里我们也说下,在OO中通常有两种主要的代码重用的方式:类的继承与对象的组合.    继承是单向的.例如,Hourse is a Building.而我们并不能说一个Building就一定是House.在Java中,我们用extends来表达继承.    组合:我们还用上面的例子来说,我们可说 ...