摘要:Java安装方法: 1、 登录官方网站 a) http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html b) 选择自己需要下载的版本进行下载 2、 下载完成后点击下载好的安装文件进行安装。 3、 在安装
阅读全文
摘要:今天领导要求使用枚举类型实现一些常量设置,在此记录下使用心得(还是一些比较简单的应用)。 首先定义了如下的枚举类 在此考虑的如何生成新的枚举类,因为是用来做比较。而且新的枚举类的参数是通过其他类传递的。 所以在如何生成新的枚举类时产生了困惑。先是使用了if后来改成swith,但是感觉都不太对劲,如果
阅读全文
摘要:在每个覆盖了equals方法的类中,也必须要覆盖hashcode方法。如果不这样做的话,就会违反Object.hashcode的通用约定,从而导致该类无法结合所有基于散列的集合一起正常运作,这样的集合包括HashMap、 HashSet、Hashtable. Object规范: 在应用程序的执行期间
阅读全文
摘要:实现高质量equals方法的诀窍: 1.使用==操作符检查“参数是否为这个对象的引用”。如果是,则返回true。这只不过是一种性能优化,如果比较操作有可能很昂贵,就值得这么做。 2.使用instanceof操作符检查“参数是否为正确的类型”。如果不是,返回false。一般说来,所谓“正确的类型”是指
阅读全文
摘要:过期引用:永远也不会再被解除的引用。 内存泄漏常见来源: 一、类自己管理内存时,程序员应该警惕内存泄漏问题。一旦元素被释放掉,则该元素中包含的任何对象引用都应该被清空。 二、缓存。一旦对象引用放到缓存中,就很容易被遗忘掉,从而使得对象不再有用之后的很长一段时间内仍然留在缓存中。实现缓存时,只要在缓存
阅读全文
摘要:一般来说,最好能重用对象而不是在每次需要的时候就创建一个相同功能的新对象。重用方式既快速,又流行。如果对象是不可变得,它就始终能被重用。 对于同事提供了静态工厂方法和构造器的不可变类,通常使用静态工厂方法而不是构造器,以避免创建不必要的对象。 对于一直不会被修改的可变对象,也可以重用。对比如下两个类
阅读全文
摘要:使类成为singleton会使它的客户端测试变得十分困难,因为无法给Singleton替换模拟实现,除非它实现一个充当其类型的接口。 在java1.5之前,有两种方法实现Singleton。两种方法都是要把构造器保持为私有的,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例。在单线程的条件
阅读全文
摘要:如果类的构造器或者静态工厂中具有多个参数,设计这样的类时,考虑使用Builder模式。尤其是大多数参数都是可选的时候,与使用传统的重叠构造器模式相比,使用 builder模式的客户端代码将更易于阅读和编写,构建器也比JavaBeans更加安全。示例如下
阅读全文
摘要:静态工厂方法优势: 一、静态工厂方法可以提供有意义的名称。当一个类需要多个带有相同签名的构造器时,考虑使用静态工厂方法代替构造器,并慎重地选择名称以便突出他们之间的区别。 二、静态工厂方法不用再每次调用他们的时候都创建一个新对象。对于经常请求创建相同的对象,且创建对象的代价很高情况,可以用该技术极大
阅读全文
摘要://连接MSSQL// static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// static String url = "jdbc:sqlserver://localhost;databasename=Proj
阅读全文
摘要:依赖倒置原则: a.高层模块不应该依赖于底层模块。两者都应该依赖于抽象 b.抽象不应该依赖于细节。细节应该依赖于抽象。 一个良好地面向对象的程序,其依赖程序结构相对于传统的过程方法设计的通常结构而言就是被“倒置”了。 程序中所有的依赖关系都应该终止于抽象类或者接口: 任何变量都不应该持有一个指向具体
阅读全文
摘要:定义:子类型必须能够替换掉它们的基类型 LSP可以得到一个重要的结论:一个模型,如果孤立地看,并不具有真正意义上的有效性。模型的有效性只能通过它的客户程序来表现。 在考虑一个特定的设计是否恰当时,不能完全孤立地来看这个解决方案。必须要根据该设计的使用者所做出的合理假设来审视它。 对象的行为方式才是软
阅读全文
摘要:软件实体(类、模块、函数)应该是可以拓展的,但是不可修改的。 遵循开放—封闭原则设计出的模块具有两个主要特征: 1、“对于拓展是开放的”。 这意味着模块的行为是可以拓展的。当应用的需求改变时,我们可以对模块进行拓展,使其具有满足那些改变的新行为。即是说,我们可以改变模块的功能。 2、“对于更改是封闭
阅读全文
摘要:内聚性:一个模块的组成元素之间的功能相关性。 就一个类而言,应该仅有一个引起它变化的原因。 在SRP中,把职责定义为“引起变化的原因”。如果能够想到多于一个的动机改变一个类,那么这个类就具有多于一个的职责。 SRP是所有原则中最简单的一个,也是最难正确运用的之一。我们会自然地把职责结合在一起。软件设
阅读全文
摘要:今天在做循环输出某段代码时,需要用到do...while循环,因为while循环中用到的是从控制台获取的值,该值得类型是String。因此用到的是String类型的比较。开始时使用双等号,一直无法实现。 之后考虑将从控制台获取的值转化为字符串,可以实现。代码如下:其中String转化为char需要对
阅读全文