随笔分类 -  读书笔记

摘要:第47条:了解和使用类库 [Top 100 Java Libraries on Github 2016]( https://docs.google.com/spreadsheets/d/19hO0L9WOC0XWXPnYX 216_Qbz705ajIAsSQFhGmgp9A/edit gid=0) 阅读全文
posted @ 2017-09-30 13:43 ITRoad 阅读(265) 评论(0) 推荐(0)
摘要:第2条:遇到多个构造器参数时要考虑用构建器 与构造器相比,builder的微略优势在于,builder可以有多个可变(varargs)参数。构造器就像方法一样,只能有一个可变参数。因为builder利用单独的方法来设置每个参数,你想要多少个可变参数,它们就可以有多少个,直到每个setter方法都有一 阅读全文
posted @ 2017-09-30 13:37 ITRoad 阅读(301) 评论(0) 推荐(0)
摘要:“将一个对象编码成一个字节流”,称作将该对象序列化(serializing); 相反的处理过程被称作反序列化(deserializing),一旦对象被序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一台虚拟机上,或者被存储到磁盘上,供以后反序列化时用。序列化技术为远程通信提供了标准的线路级(wire-level)对象表示法,也为JavaBeans组件结构提供了标准的持久化数据格式。 第7... 阅读全文
posted @ 2017-09-30 13:33 ITRoad 阅读(236) 评论(0) 推荐(0)
摘要:第66条:同步访问共享的可变数据 Java语言规范保证读或者写一个变量是原子的(atomic ) ,除非这个变量的类型为long或者double. [java中long和double类型操作的非原子性探究]( http://blog.csdn.net/zhaifengmin/article/details/46315003) 你可能期待这个程序运行大约一秒钟左右,之后主线程将stapR... 阅读全文
posted @ 2017-09-30 13:32 ITRoad 阅读(319) 评论(0) 推荐(0)
摘要:第58条:对可恢复的情况使用受检异常,对编程错误使用运行时异常 Java程序设计语言提供了三种可抛出结构(throwable) ;受检的异常(checked exception)运行时异常(run-time exception)和错误(error)。 受检的异常是潜在指示 在决定使用受检的异常或是未受检的异常时,主要的原则是:如果期望调用者能够适当地恢复对于这种情况就应该使用受检的异常。... 阅读全文
posted @ 2017-09-30 13:22 ITRoad 阅读(294) 评论(0) 推荐(0)
摘要:第30条:用enum代替int常量 将加班工资计算移到一个私有的嵌套枚举中,将这个策略枚举(strategy enum)的实例传到PayrollDay枚举的构造器中。之后PayrollDay枚举将加班工资计算委托给策略枚举: 以上,方法overtimePay()在每个枚举类示例中实现,对外提供一致的pay()方法。 第31条:用实例域代替序数 永远不要根据枚举的序数导出与它关联的值、而... 阅读全文
posted @ 2017-09-30 13:21 ITRoad 阅读(197) 评论(0) 推荐(0)
摘要:第38条:检查参数的有效性 对于公有的方法,要用javadoc的@throws标签(tag)在文档中说明违反参数值限制时会抛出的异常。这样的异常通常为IllegalArgumentException, IndexOutOfBoundsException或NullPointerException. 非公有的方法通常应该使用断言(assertion)来检查它们的参数,具体做法如下所示: ... 阅读全文
posted @ 2017-09-30 13:21 ITRoad 阅读(275) 评论(0) 推荐(0)
摘要:第23条:请不要在新代码中使用原生态类型 声明中具有一个或者多个类型参数( type parameter)的类或者接口,就是泛型(generic)类或者接口。 每种泛型定义一组参数化的类型(parameterized type),构成格式为: 先是类或者接口的名称,接着用尖括号()把对应于泛型形式类型参数的实际类型参数列表括起来。例如,List(读作“字符串列表”)是一个参数化的类型,表示元素... 阅读全文
posted @ 2017-09-30 13:20 ITRoad 阅读(197) 评论(0) 推荐(0)
摘要:第13条:使类和成员的可访问性最小化 第一规则很简单:尽可能地使每个类或者成员不被外界访问。换句话说。应该使用与你正在编写的软件的对应功能相一致的、尽可能最小的访问级别。 对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别:包级私有的(package-private)和公有的(public)。如果你用public修饰符声明了顶层类或者接口,那它就是公有。否则,它将是包级私有的。如果类或者接... 阅读全文
posted @ 2017-09-30 13:20 ITRoad 阅读(441) 评论(0) 推荐(0)
摘要:第8条:覆盖equals时请遵守通用约定 覆盖equals方法看起来似乎很简单,但是有许多覆盖方式会导致错误,并且后果非常严重。最容易避免这类问题的办法就是不覆盖equals方法,在这种情况下,类的每个实例都只与它自身相等。 那么,什么时候应该覆盖Object.equals呢?如果类具有自己特有的“逻辑相等”概念(不同于对象等同的概念),而且超类还没有覆盖equals以实现期望的行为,这时我们... 阅读全文
posted @ 2017-09-30 13:19 ITRoad 阅读(256) 评论(0) 推荐(0)
摘要:一、灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建。例如,典型的项目都会有开发环境、测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就需要能够识别所在的环境并使用正确的配置。 还有一种常见的情况是,项目开发了大量的集成测试,这此测试运 阅读全文
posted @ 2016-12-04 17:12 ITRoad 阅读(373) 评论(0) 推荐(0)
摘要:一、理想的发布版本,在项目构建时需要满足以下条件: 1、所有自动化测试应当全部通过; 2、项目没有配置任何快照版本的依赖; 3、项目没有任何快照版本的插件; 4、项目所包含的代码已经全部提交到版本控制系统中; 因此,将项目的快照版本更新至发布版本之后,应当再执行一次Maven构建,以确保项目状态是健 阅读全文
posted @ 2016-12-04 17:11 ITRoad 阅读(1197) 评论(0) 推荐(0)
摘要:一、Web项目结构 1、显式指定Web项目打包方式为war: 2、默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/resources,测试类和测试资源文件默认位置src/test/java和src/test/resources,W 阅读全文
posted @ 2016-12-04 17:11 ITRoad 阅读(515) 评论(0) 推荐(0)
摘要:一、持续集成的步骤: 1、持续编译 2、持续数据库集成 3、持续测试 4、持续审查 5、持续部署 6、持续反馈 <!--more--> 二、持续集成工具——Hudson 1、安装Hudson 2、准备Subversion仓库 正式建立Hudson持续集成任务之前,需要准备好版本控制系统,如CVS、S 阅读全文
posted @ 2016-12-04 17:10 ITRoad 阅读(361) 评论(0) 推荐(0)
摘要:一、基于Maven的测试 1、maven-surefire-plugin插件 该插件的test目标会自动执行测试源码路径(默认src/test/java)下符合以下命名模式的测试类: 以Test开头或结尾,或者以TestCase结尾的Java类。 <!--more--> 2、跳过测试类 要求Mave 阅读全文
posted @ 2016-12-04 17:08 ITRoad 阅读(233) 评论(0) 推荐(0)
摘要:除了坐标、依赖以及仓库外,Maven另外两个核心概念是生命周期和插件。 一、生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成。 三套生命周期: Maven拥有三套相互独立的生命周期,分别是clean、default和site。 clean生 阅读全文
posted @ 2016-12-04 17:07 ITRoad 阅读(240) 评论(0) 推荐(0)
摘要:一、聚合 假设有两个模块:account-email和account-persist; 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator; 通过account-aggregator构建整个项目的所有模块,而该模块本身也是Maven项目,有自己的Pom 阅读全文
posted @ 2016-12-04 17:07 ITRoad 阅读(682) 评论(0) 推荐(0)
摘要:一、依赖范围 Maven在编译项目主代码的时候,需要使用一套classpath——编译classpath; 在编译和执行测试的时候,使用另一套classpath——测试classpath; 实际运行Maven项目的时候,又会使用一套classpath——运行classpath。 【依赖范围】就是用来 阅读全文
posted @ 2016-12-04 17:06 ITRoad 阅读(393) 评论(0) 推荐(0)
摘要:一、Maven仓库的分类 1、本地仓库 一般来说,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。 要自定义本地仓库目录地址时,可以编辑文件~/.m2/setting.xml,设置localRepository元素的值。 注意:默认情况下~/.m2/settings.xml文件是 阅读全文
posted @ 2016-12-04 17:06 ITRoad 阅读(189) 评论(0) 推荐(0)
摘要:《Maven实战》徐晓斌 2011 机械工业出版社 一、介绍 1、名词 artifact:插件 极限编程XP 2、构建脚本: maven——pom.xml(Project Object Model) ant——build.xml <!--more--> 其基本结构是目标(target)、依赖(dep 阅读全文
posted @ 2016-12-04 17:05 ITRoad 阅读(928) 评论(0) 推荐(0)