2010-3-16

  平淡的一天~~
  睡前继续effective,不知不觉已经看了一大半了,真不不敢想像!这看来就是积累的力量!积土成山,积水成渊吧!
首先一点是在要用到精确数值的时候不能用float或者double这种类型,这个上学期的515课程里已经领教过了,每次都少一点或多一点,比如蛋糕价格是1,2,3,4,5……快钱一个,如果有十块钱,那么一个循环下来,将会只能买到1,2,3的蛋糕,4就买不起了,因为剩下来的钱可能是3.9999999了,悲剧。。。这种情况就要用到BigDecimal,用到它的add,subtract等方法来代替primitive type中的+,—什么的。代价嘛,当然就是速度变慢,然后就是没有那么方便。
第二点是当有int和Integer选择时,应该尽量用primitive。原因当然是效率问题了,还有就是boxed primitive不支持==操作,就是说Integer(10)==Integer(10)是返回false的,所以有点error prone嫌疑。还有原因就是boxed的可以为null,转换的时候会抛出Exception。当然,有的时候不得不用的时候还是没办法,比如说collection的时候,总不能添加一个primitive进去了。momo
第三点就是不用习惯去用String来代替任何东西作为返回值,我好像有点这个毛病,嗯,改改!

  早上八点多起来,相当于昨天的七点多呀,,,嗨,得一步步适应了~吃饭,照计划进行!
  上午先看了java对XML的解析,
JDK1.6中可以为:SAXSimple API for XML,DOM(Documen t Object Model)以及sun自己提供的StAXstreaming API for XML)。
  
SAXStAX都是基于事件的,既将xml文件当成来处理,当parser遇到Element_A,就会产生一个事件,然后将事件发送给处理类。特点就是与上下文无关,速度快! 
        DOM,顾名思义,会建立一个对象模型。对每个节点以及节点之间的关系在内存中生成一个树形结构。与SAX截然相反。
    然后看了concurrent类,看了1.6中它有什么更新:      java.util.concurrent包分成了三个部分,分别是java.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.lock。内容涵盖了并发集合类、线程池机制、  同步互斥机制、线程安全的变量更新工具类、锁等等常用工具
.
中间的executor还是很有用的,signal代替notify,signalAll代替notifyAll等等,知道个大概,要用的时候再去查好了。
对变量的读写操作都是原子操作(除了long或者double的变量),但像数值类型的++–操作不是原子操作,像i++中包含了获得i的原始值、加1、写回i、返回原始值,在进行类似i++这样的操作时如果不进行同步问题就大了。好在 java.util.concurrent.atomic为我们提供了很多工具类,可以以原子方式更新变量。
AtomicInteger为例,提供了代替++ —getAndIncrement()incrementAndGet()getAndDecrement() decrementAndGet()方法,还有加减给定值的方法、当前值等于预期值时更新的compareAndSet()方法。
  中午炒了包心菜+肉,那个失败,忘记先请教爸妈了,教训!
  吃完饭困,睡,起床,侍魂,五点多开始看hibernate。真正开始了解对象 持久化。根据我的理解,应该就是让程序员能够像操作对象一样操作关系型数据库,这也是在这个关系数据库流行的大环境下不得不这样的,如果有对象数据库多好!大概就是把数据库中的表映射成类,bean类。这样,列可以对应到bean的属性名!那么就可以把数据库的tuple映射成一个个的bean了,想法很好!实施起来应该有很多麻烦,因为如果都是一一映射,那好办,可关系型数据库是相当复杂的,那么多的映射,关系,key等等一堆。long way to go呀,一步一步学,看看hibernate是怎么创造性的解决这些问题的,今天只是学了些皮毛。一个最基本的ORM。晚上在myEclipse里面调,居然没有成功,说slf4j不能load,google了一下居然是hibernate用的跟Myeclipse用的结构不一样,,,烦!明天再弄好了~
  嗯,好像比较充实,keep going!

 

ps:今天终于把短信禁了,阿拉伯人,,,go to hell。。。再没机会阴了,Hoho!看看短信,勾起好多记忆…………

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s