自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木小鱼的笔记

技术之海,顺势者昌;看问题,要看思路与问题实质

  • 博客(23)
  • 收藏
  • 关注

转载 java开源辅助类之org.apache.commons.lang.builder包分析

我们继续看org.apache.commons.lang.builder这个包。在这里面我们可以找到7个类,用于帮助我们实现Java对象的一些基础的共有方法。这7个类分别是: CompareToBuilder – 用于辅助实现Comparable.compareTo(Object)方法;EqualsBuilder – 用于辅助实现Object.equals()方法;HashCo

2007-05-31 19:57:00 5282

原创 Java正则表达式

1.简介:java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher

2007-05-24 15:22:00 753

转载 转帖十年积累

原文出处: http://blog.csdn.net/ljc3046/archive/2007/05/08/1600426.aspx 有天和朋友聊天,朋友是国内一家大型互联网企业的一位技术主管,朋友把他将近十年研发工作积累的心血总结成两点,这两点朋友刚一提出来我并没有马上明白,只是大约有这么一个概念,我还没达到朋友在技术领域的那种高度,不能彻底领悟他深刻的思想。但我想与众多刚刚踏入IT技术研发

2007-05-23 16:53:00 985

转载 Spring 数据访问对象(Data Access Object,DAO)框架入门

摘要 J2EE 应用中的业务组件普遍采用 JDBC API 访问和修改关系型数据库的持久化数据。这样做常常会把持久化代码和业务逻辑混合在一起,实在太糟糕了。数据访问对象(Data Access Object,DAO)设计模式针对这一问题把持久化逻辑分离到数据访问类中,以达到分离目的。本文是基于 DAO 设计模式的入门文章,把它的优点和缺点都毫无偏颇的展现出来。接着将引入 Spring 2.0 JD

2007-05-19 16:31:00 1886

转载 转帖

 摘 要 本文介绍了Java访问数据库的原理及其存在的问题,提出了解决办法-数据库连接池,并对其关键问题进行了分析,构建了一个简便易用的连接池并结合当前热门技术Servlet说明了其如何在开发时使用。  关键词 JDBC,Jsp/Servlet,数据库连接池,多数据库服务器和多用户,多线程  引言  近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 

2007-05-18 10:31:00 994

转载 Java异常

Java中的异常情况都是继承自Throwable的类,所有的Throwable类的子孙类生成的对象都是异常。按一般规则,异常情况可以分为以下的几大类:    (1)Error:很严重的系统错误,由Java虚拟机生成并抛出,由系统而不是用户的Java程序来做处理。    (2)Runtime Exception:诸如被0除、数组下标越界之类的系统异常情况;由系统检测,用户的Java程序可不做处理,系

2007-05-17 15:12:00 754

转载 哲学家思考(多线程)

 该问题涉及到五个哲学家,他们交替地进行思考和进餐。他们分别坐在位于一个圆形餐桌周围的五把椅子上,圆桌中央是一碗米饭,餐桌上共有五根筷子,分别摆放在每两个相邻座位的中间。当哲学家思考时,他不与其他人交谈。当哲学家饥饿时,他将拿起和他相邻的两根筷子进行进餐,但他很可能仅拿到一根,此时旁边的另一根正在他邻居的手中。只有他同时拿到两根筷子时他才能开始进餐。完成进餐后,他将两根筷子分别放回原位,然后再次开

2007-05-17 14:28:00 1366 1

转载 java中文件操作大全

一.获得控制台用户输入的信息/** *//**获得控制台用户输入的信息     * @return     * @throws IOException     */    public String getInputMessage() throws IOException...{        System.out.println("请输入您的命令∶");        byte buff

2007-05-16 14:19:00 756

原创 基于继承实现的状态依赖并发控制

1> 由非公共方法来定义功能,由公共方法来定义并发控制的策略。2> 可以使子类能够独立地对执行功能的代码或者执行并发控制的代码进行修改,从而使得子类无需修改所有父类的方法就可以得到所需的功能3> 避免为并发功能而存在的成员变量与为实现基本功能而存在的逻辑状态变量之间的混淆4>构建子类是对已有对象的拓展而非组合 协同操作定义: 一种原子的受保护方法,它包含的条件与操作是和多个不同

2007-05-14 15:58:00 881

转载 详细解析Java中抽象类和接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还

2007-05-13 21:52:00 701

原创 基于同步的遍历方法

遍历是对集合中的元素执行一些相应的操作或逐个使用。在多线程环境下,进行遍历的方法主要有三个: 聚集操作、索引化遍历和版本化迭代。1. 同步聚集操作    方法是: 把作用于每一个元素的操作提取出来,这样可以把他们作为synchronzied applyToAll方法的参数.   优点: 可以避免在遍历过程中增加或减少元素带来的干扰   缺点: 可能出现拥有锁时间太长的问题 2.

2007-05-13 09:28:00 1231

原创 JDK1.5学习笔记

1. Java1.5中新增了Queue(FIFO),注意使用的方法是: offer(), poll();  说明: 当offer()失败的时候,返回为false,当其为空,poll() 返回null 另外还新增基于优先级的Queue: PriorityQueue。其中提供了Comparator来定义其可用的比较方法2. 提供了对Override返回类型的支持,这个就是所谓的"协变返回"

2007-05-11 15:02:00 1064

原创 征服系统/程序复杂性的方法

以下是降低复杂性的基本方法:1. 在架构层将系统划分为多个子系统,以便让思绪在某段时间内能专注于系统的一个小部分2. 仔细定义类接口,从而可以忽略类内部的工作原理3. 保持类接口的抽象性,从而不必记住不必要的细节4. 避免全局变量,因为它会大大增加需要兼顾的代码比例5. 避免深层次的继承,因为这样会花费很大精力6. 避免深层嵌套或条件循环7. 以系统的观点对待内置的异常

2007-05-11 11:36:00 958

原创 Kind of Comments(注释种类)

注释的作用分为以下几种:1. 重复代码2. 解释代码3. 标记代码4.  概述代码5. 代码意图说明6. 传达代码无法表述的信息高效注释的方式:1. 注释代码段时,应注重" why",而不是"How"2. 不对代码做尾行注释,其仅用作数据说明3. 用注释为后面的内容做铺垫4. 避免使用缩略语

2007-05-11 11:14:00 1036

转载 设计模式之Visitor

板桥里人 http://www.jdon.com 2002/05/05(转载请保留)作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为.为何使用Visitor?Java的Collection(包括Vector和Hashtable)

2007-05-11 10:38:00 950

原创 软件开发杂记

1. 伴随代码需要完成的文档 主旨在于迫使你取认真思考你所要或已经完成的工作的内容。2. 配置管理是系统化地定义项目工具和处理变化,以使项目一直保持其完整性。其技术包括: 评估所提交的更改,追踪更改,保留系统在不同时间点的各个历史版本。其关注于程序的需求、源代码、文档和测试数据。3. 软件集成的顺序: 自顶向下,自下而上,三明治,功能导向,风险导向。软件集成的方式: 增量式或阶段式

2007-05-11 10:21:00 800

转载 Java中的HashTable和HashMap的区别

HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。 这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。(最主要的区别)2.HashTable不允许null值(key

2007-05-10 14:41:00 1726

转载 Thread.sleep(long)和object.wait(long)的共同点和不同点(zz)-

 共同点:  他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。不同点:  Thread.sleep(long)可以不在synchronized的块下调用,而且使用Thread.sleep()不会丢失当前线程对任何对象的同步锁(monitor);              object.wait(long)必须在synchronized的块下来使用,调用了之后失去对obj

2007-05-10 13:49:00 2509

转载 Java多线程笔记

  synchronized修饰符是不会被子类继承的。也就是说,一个线程安全的可继承类,有可在子类化时丧失安全性:P60当线程在写指定字段的值时,若这个字段不是volatile也没有用synchronized同步化时,其它线程可能看不到这种变化。这不是可不可以分割的问题,而是其它线程是否可见的问题。:P66涉及到线程之后,如果一个类是SharedResource角色,那么它里面的protect域和

2007-05-10 11:28:00 876

原创 代码优化中的优化项

 常见的代码优化项目:1. 输入、输出操作2. 通常的系统调用3. 未知的程序错误提高程序性能的若干方法:1.  修改程序需求2. 修改程序的设计3. 修改程序中类的设计4. 编译器的优化和设置5. 程序的数据结构的选择算法的设计6. 性能问题遵循:80/20原则,需要找出性能的瓶颈出来7.

2007-05-10 09:41:00 973

原创 子程序级重构的理由

以下是子程序在重构中需要考虑的内容:1. 提取子程序或者方法2. 将冗长的子程序转化为类3. 用简单的算法代替复杂算法4. 增加参数、删除参数5. 将查询操作从修改操作中独立出来6. 合并功能相似的子程序,通过参数区分他们的子功能7.  将行为取决于参数的子程序拆分开来8.  传递整个对象而非特定成员9. 包装向下转型的操作。系统级别的重构:1. 为无法

2007-05-09 16:40:00 758

转载 程序重构的理由

 以下是程序需要进行重构的理由:1. 代码重复冗余2. 冗长的子程序3. 循环过长或嵌套过深4. 内聚性太差的类5. 类的接口未能提供层次一致的抽象6. 拥有太多参数的参数列表7. 类的内部修改往往局限在某个部分8. 变化导致对多个类的修改9. 对继承体系的同样修改10.  case语句需要做相同的修改11.  同时使用的数据并未以类的方式进行组织1

2007-05-09 16:14:00 1189

原创 线程独占笔记

  线程同步中的双重检查:    在对一个非同步成员变量进行访问时,如果调用者发现读到了非法成员变量的时候,可以采取相应的措施。这样的措施之一就是在同步的环境下重新访问这个成员变量,判断一下它的最新值,然后采取恰当的行动。1. 独立的对象锁的声明是: 将该对象声明为final类型的对象实体。public class LinkedQueue ...{     protected 

2007-05-09 10:08:00 1062

空空如也

空空如也

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

TA关注的人

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