随笔 - 2228  文章 - 4  评论 - 371  阅读 - 1109万

随笔分类 -  effective java笔记

Effective java笔记8--序列化
摘要:对象的序列化(object serialization)API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象。一、谨慎地实现Serializable 要想使一个类的实例可被序列化,非常简单,只要它的声明中加入"implementsSerializable"即可。正因为太容易了,所以普遍存在这样一种误解:程序员只需要做极少的工作就可以支持序列化了。 因为实现Serializable而付出的最大代价是,一旦一个类被发布,则”改变这个类的实现“的灵活性将大大降低。当一个类的序列化形式Serialized form变成了它的导出的API的一部分。一旦 阅读全文
posted @ 2013-11-15 19:17 duanxz 阅读(531) 评论(0) 推荐(0) 编辑
Effective java笔记7--线程
摘要:一、对可共享数据的同步访问 synchronized关键字可以保证在同一时刻,只有一个线程在执行一条语句,或者一段代码块。正确地使用同步可以保证其他任何方法都不会看到对象处于不一致的状态中,还能保证通过一系列看似顺序执行的状态转变序列,对象从一种一致的状态变迁到另一种一致的状态。迟缓初始化(lazy initialization)的双重检查模式(double-check idiom)://The double-check idiom for lazy initializaation -broken!private static Foo foo = null;public statc Foo g 阅读全文
posted @ 2013-11-15 19:16 duanxz 阅读(487) 评论(0) 推荐(0) 编辑
Effective java笔记5--通用程序设计
摘要:一、将局部变量的作用域最小化 本条目与前面(使类和成员的可访问能力最小化)本质上是类似的。将局部变量的作用域最小化,可以增加代码的可读性和可维护性,并降低出错的可能性。使一个局部变量的作用域最小化,最有力的技术是在第一次使用它的地方声明。几乎每一个局部变量的声明都应该包含一个初始化表达式。在循环中经常要用到最小化变量作用域这一个规则。for循环使你可以声明循环变量(loop varialbe),它们的作用域被限定在正好需要的范围值内(这个范围包括循环体,以及循环体之前的初始化、测试、更新部分)。因此,如果在循环终止之后循环变量的内容不再被需要的话,则for循环优于while循环。例如,下面是. 阅读全文
posted @ 2013-11-15 13:24 duanxz 阅读(458) 评论(0) 推荐(0) 编辑
effective java 笔记1--序言
摘要:一、序言程序设计的几条基本原则:1、清晰性和简洁性最为重要,模块的用户永远也不应该被模块的行为所迷惑,所以写良好的注释是必需的。2、模块要竟可能小,但也不能太小,好一个深奥的哲学问题。3、代码应该被重用,而不是应该被拷贝,拷贝的代码哪天就是你的灾难。4、模块的依赖性应该尽可能地降到最小,低耦合是必须... 阅读全文
posted @ 2013-11-15 11:14 duanxz 阅读(361) 评论(0) 推荐(0) 编辑
Effective java笔记4--方法
摘要:一、检查参数的有效性 极大多数方法和构造函数都会对于传递给它们的参数值有某些限制。 对于公有的方法,使用Javadoc @throws标签(tag)可以使文档中记录下“一旦针对参数值的限制被违反之后将会被抛出的异常”。典型情况下, 这样的异常为IllegalArgumentException、IndexOutOfBoundException或者NullPointException。看一个例子:/** * @param m the modulus,which must be positive. * @return this mod m. * @throws ArithmeticException 阅读全文
posted @ 2013-11-13 21:31 duanxz 阅读(424) 评论(0) 推荐(0) 编辑
Effective java笔记3--类和接口2
摘要:三、接口优于抽象类 java提供两种机制,可以用来定义一个允许多个实现的类型:接口和抽象类。由于java只允许单继承,所以,抽象类作为类型定义受到了极大的限制。 已有的类可以很容易被更新,以实现新的接口。你所需要做的是:增加要求的方法,如果这些方法原先还不存在的话;然后在类的声明上增加一个imple 阅读全文
posted @ 2013-11-13 10:47 duanxz 阅读(454) 评论(0) 推荐(0) 编辑
Effective java笔记3--类和接口1
摘要:一、使类和成员的可访问能力最小化要想区别一个设计良好的模块与一个设计不好的模块,最重要的因素是,这个模块对于外部的其他模块而言,是否隐藏了内部的数据和其他的实现细节。一个设计良好的模块会隐藏所有的实现细节,把他的API与实现清晰的隔离开来。模块之间只能通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况。这个概念被称为信息隐藏(information hiding)或封装(encapsulation),是软件设计的基本原则之一。信息隐藏的优点:1、可以有效地解除一个系统中各个模块之间的耦合关系,使得这些模块可以被独立地开发、测试、优化、使用、理解和修改。可以加速系统的开发速度,因 阅读全文
posted @ 2013-11-05 21:58 duanxz 阅读(423) 评论(0) 推荐(0) 编辑
Effective java笔记2--创建于销毁对象
摘要:一、创建对象的两种方式1、提供公有的构造器。2、提供一个返回类实例的静态方法。二、使用静态方法创建对象优势:1、静态工厂方法的一个好处是,与构造函数不同,静态工厂方法具有名字。产生的客户端代码更易于阅读。//例如,构造函数BigInteger(int,int,Random)返回的BigInteger可能是素数,BigInteger.probalePrime()的静态工厂方法,表达显然更为清楚2、静态工厂方法的第二个好处,与构造函数不同,它们每次被调用的时候,不要求非得创建一个新的对象。对于不可变类,可以预先使用构建好的实例,或将构建好的实例缓存起来,进行重复利用,从而避免创建不必要的重复对象。 阅读全文
posted @ 2013-11-04 11:03 duanxz 阅读(511) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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