04 2019 档案

摘要:Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(叫“编译器的前段”更准确)——把*.java文件转变成*.class文件的过程; 也可能是虚拟机的后端运行期编译器(JIT)把字节码转变成机器码的过程;还可能是指静态提前编译器(AOT编译器)直接把*.java文件 阅读全文
posted @ 2019-04-29 16:36 青青子衿J
摘要:动态类型语言 动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期。 举例子解释“类型检查”,例如代码: 假如这行代码是在Java语言中,并且变量obj的静态类型为java.io.PrintStream,那么变量obj的实际类型就必须是PrintStream的子类才是合法。否则,ob 阅读全文
posted @ 2019-04-27 22:54 青青子衿J
摘要:“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上,而虚拟机的执行引擎是 由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 运行栈帧结构 栈帧,是用于支持 阅读全文
posted @ 2019-04-26 16:12 青青子衿J
摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言里,类型的加载、链接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销。但是会为Java应用程序提 阅读全文
posted @ 2019-04-25 19:25 青青子衿J
摘要:一个优秀的构建系统必须足够灵活,他应该能够让项目在不同的环境下都能成功地构建。Maven为支持项目的灵活性,内置了三大特性,即属性、Profile和资源过滤。 Maven属性 通过<properties>元素用户可以自定义一个或多个属性,然后在POM中通过${属性名称}的方式进行引用,这中做法的最大 阅读全文
posted @ 2019-04-09 10:29 青青子衿J
摘要:版本管理 版本管理是指项目整体版本的演变过程管理。版本控制是指借助版本控制工具(如Subversion)追踪代码的每一个变更。 为了方便团队合作,项目开发过程中,大家应该使用快照版本,快照版本机制促进团队内部的交流,但是当项目需要对外发布时,我们显然需要提供非常稳定的版本, 使用该版本应当永远只能定 阅读全文
posted @ 2019-04-08 15:28 青青子衿J
摘要:持续集成的作用、过程和优势 简单说,持续集成就是快速且高频率地自动构建项目的所有源码,并为项目成员提供丰富的反馈信息。 快速:集成的速度要尽可能地快,开发人员不希望自己的代码提交半天之后才得到反馈。 高频率:频率越高越好,例如每隔一个小时就是不错的选择,这样问题才能尽早地被反映出来。 自动:持续集成 阅读全文
posted @ 2019-04-08 11:24 青青子衿J