摘要:
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言里,类型的加载、链接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销。但是会为Java应用程序提 阅读全文
摘要:
一个优秀的构建系统必须足够灵活,他应该能够让项目在不同的环境下都能成功地构建。Maven为支持项目的灵活性,内置了三大特性,即属性、Profile和资源过滤。 Maven属性 通过<properties>元素用户可以自定义一个或多个属性,然后在POM中通过${属性名称}的方式进行引用,这中做法的最大 阅读全文
摘要:
版本管理 版本管理是指项目整体版本的演变过程管理。版本控制是指借助版本控制工具(如Subversion)追踪代码的每一个变更。 为了方便团队合作,项目开发过程中,大家应该使用快照版本,快照版本机制促进团队内部的交流,但是当项目需要对外发布时,我们显然需要提供非常稳定的版本, 使用该版本应当永远只能定 阅读全文
摘要:
持续集成的作用、过程和优势 简单说,持续集成就是快速且高频率地自动构建项目的所有源码,并为项目成员提供丰富的反馈信息。 快速:集成的速度要尽可能地快,开发人员不希望自己的代码提交半天之后才得到反馈。 高频率:频率越高越好,例如每隔一个小时就是不错的选择,这样问题才能尽早地被反映出来。 自动:持续集成 阅读全文
摘要:
IO SequenceInputStream,允许链接多个InputStream对象。在操作上该类从第一个InputStream对象进行读取,知道读取完全部内容,然后切换到第二个InputStream 知道最后一个InputStream对象的末尾文职。到达每个文件末尾是,与之关联的流就会被关闭。 O 阅读全文
摘要:
集合框架 SortedSet接口,声明了以升序进行排序的行为。 Queue接口,声明了队列行为,队列通常是先进先出的列表 Deque接口,扩展了Queue接口,声明了双端队列的行为。双端队列可以像标准队列那样先进先出,也可以像堆栈那样后进先出。 LinkedHashSet,维护组中条目的一个链表,链 阅读全文
摘要:
Lambda表达式 lambda表达式本质上就是一个匿名方法。但是这个方法不是独立执行的,而是构成了一个函数式接口定义的抽象方法的实现,该函数式接口定义了它的目标类型。 只有在定义了lambda表达式的目标类型的上下文中,才能使用该表达式。当把一个lambda表达式赋给一个函数式接口引用时,就创建了 阅读全文
摘要:
类型提升规则 Java定义了几个应用于表达式的类型提升规则:所有byte、short和char类型的值都被提升为int类型。如果有一个操作数是long类型,将这个表达式提升为 long 类型;如果有一个操作数是float类型,就将整个表达式提升为float类型;如果任何一个操作数为double类型, 阅读全文
摘要:
使用Maven测试 Maven的重要职责之一就是自动运行单元测试。它通过maven-surefire-plugin与主流的单元测试框架JUnit3、JUnit4以及TestNG集成,并且能够自动生成丰富的结果报告。 Maven所作的只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者 阅读全文
摘要:
聚合 为了要一次构建多个项目,而不是到每个模块目录下分别执行mvn命令。maven聚合这一特性就是为该需求服务的。为此我们需要创建一个额外的模块aggregator, 然后通过该模块构建整个项目的所有模块。aggregator本身作为一个maven项目,它必须要有自己的POM,不过,同时作为一个聚合 阅读全文