上一页 1 2 3 4 5 6 7 ··· 27 下一页
摘要: 10、使接口变得更简洁易用 Rename Method(重新命名函数) 就是重命名而已。 Add Parameter(添加参数) 就是给函数添加一个参数。 但这个并不推荐,除非非得加一个参数,如果可以用其他方式,优先用其他方式。 Remove Parameter(移除参数) 如果一个参数没用,请移除 阅读全文
posted @ 2019-02-15 23:49 傲衣华少 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 简化条件表达式 Decompose Conditional(分解条件式) 你有一个复杂的条件(if-then-else)语句。 从if、then、else 三个段落中分别提炼出独立函数。 分解为多个独立函数,根据每个小块代码的用 途,为分解而得的新函数命名,并将原函数中对应的代码替换成「对新建函数的 阅读全文
posted @ 2019-02-15 17:14 傲衣华少 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 重新组织数据 Self Encapsulate Field(自封装值域) 自封装值域 就是 getter and setter,这就没啥好说的了。 Replace Data Value with Object(以对象取代数据值) 比如:不用字符串表示电话号码,而用一个电话号码的类表示。 好处:更容易 阅读全文
posted @ 2019-02-15 16:46 傲衣华少 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 7、在对象之间搬移特性 Move Method(搬移函数) 描述:有个函数与其所驻class之外的另一个class进行更多交流:调用后者,或被后者调用。在该函数最常引用(指涉)的class中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数(delegating method),或是将旧函 阅读全文
posted @ 2019-02-15 14:53 傲衣华少 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 6、重新组织你的函数 目的:处理 Long Methods(过长函数)。 6.1 提炼函数(Extract Method) 描述:你有㆒段代码可以被组织在㆒起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。 判断:看见㆒ 个过长的函数或者㆒ 段需要注释才能让人理解用途的代码 阅读全文
posted @ 2019-02-14 17:51 傲衣华少 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 收获颇多的一本书,非常值得细细品味。 1、所谓万变不离其宗,此书便是宗。读过此书后,发现以前看过的网上好多五花八门的文章,都是源自此书。 2、举一反三。此书中讲到的jvm用到的各种思想,在工作中其实经常用到,在C++及各种公共组件中也经常看到,在此处系统的看到系统的归纳,还是会对理解多有帮助。 3、 阅读全文
posted @ 2019-02-13 22:21 傲衣华少 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 1 概述 对于这部分的主题“高效并发”来讲,首先需要保证并发的正确性,然后在此基础上实现高效。 2 线程安全 《Java Concurrency In Practice》 的作者Brian Goetz对“线程安全”有一个比较恰当的定义: “当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下 阅读全文
posted @ 2019-02-13 18:44 傲衣华少 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 1、概述 摩尔定律:描述处理器晶体管数量与运行效率之间的发展关系。Amdahl定律:通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力。 从摩尔定律到Amdahl定律的转变,代表了近年来硬件发展从追求处理器频率到追求多核心并行处理的发展过程。 并发的好处: 1、计算机的运算速度与它 阅读全文
posted @ 2019-02-13 18:21 傲衣华少 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 1、概述 Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(Hot Spot Code)。 为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化 阅读全文
posted @ 2019-02-12 16:40 傲衣华少 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 1、概述 1.1、编译器的分类 前端编译器:Sun的Javac、 Eclipse JDT中的增量式编译器(ECJ)[1]。 把*.java文件转变成*.class文件 JIT编译器:HotSpot VM的C1、 C2编译器。是指虚拟机的后端运行期编译器 ,把字节码转变成机器码 AOT编译器:GNU 阅读全文
posted @ 2019-02-12 15:45 傲衣华少 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1、概述 在Class文件格式与执行引擎这部分中 : 用户不能控制的:Class文件以何种格式存储,类型何时加载、 如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为 用户能控制的:字节码生成与类加载器 2、Tomcat:正统的类加载器架构 还是双亲委托模型,继承关系如下图: 灰色背 阅读全文
posted @ 2019-02-12 15:14 傲衣华少 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 这章原名叫“虚拟机字节码执行引擎”,实际就是讲的函数如何调用和执行的。 1、概述 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力, 其区别是物理机的执行引擎是直接建立在处理器、 硬件、 指令集和操作系统层面上的, 而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引 阅读全文
posted @ 2019-02-11 17:25 傲衣华少 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 1、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、 转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2、类加载顺序 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、 验证(Verific 阅读全文
posted @ 2019-02-11 14:19 傲衣华少 阅读(108) 评论(0) 推荐(0) 编辑
摘要: http://imushan.com/categories/Java/ 编译优化手段。 阅读全文
posted @ 2019-02-03 19:46 傲衣华少 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 无关性 无关性的体现有两个方面: 1、平台无关性:可在不同的操作系统和机器指令集上执行,可在不同厂商的虚拟机平台上执行。 2、语言无关性:用不同编程语言写出的代码编译生成的文件都可以运行。 实现思想: 面向接口,定义虚拟机和编译器之间的接口规范。也就是编译后文件的存储格式——字节码(ByteCode 阅读全文
posted @ 2019-02-02 17:01 傲衣华少 阅读(211) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 27 下一页