搜书网 本次搜索耗时 0.017 秒,为您找到 232 个相关结果.
  • 12.7 在测试间共享代码

    12.7 在测试间共享代码 12.7 在测试间共享代码 在ScalaTest里,有两种方式可以在测试间共享代码。假设要为java.util.ArrayList 写多个测试,我们并不希望在每个方法中都创建一个实例,而是希望在一个公共的方法里创建——这可以保证代码的DRY⑩。下面逐一来看这两种方式,第一种跟JUnit的方式很像,第二种利用了闭包的优势...
  • 9.2.3 网络传输优化

    9.2.3 网络传输优化 9.2.3 网络传输优化 1.大任务分发优化 在任务的分发过程中会序列化任务的元数据信息,以及任务需要的jar和文件。任务的分发是通过AKKA库中的Actor模型之间的消息传送的。因为Spark采用了Scala的函数式风格,传递函数的变量引用采用闭包方式传递,所以当需要传输的数据通过Task进行分发时,会拖慢整体的执行速度...
  • 7.1 Trait

    7.1 Trait 7.1 Trait Trait是指可以混入或融入一个类层次结构的行为。比如说,先对Friend 建模,然后将其混入任何类:Man 、Woman 、Dog 等,而不用让它们都从一个公共的基类继承下来。 假定我们已经建模出Human ,现在,想让它成为朋友。朋友是能够倾听你说话的人。所以,我们要给Human 类增加一个liste...
  • 6.2 无关性的基石

    6.2 无关性的基石 6.2 无关性的基石 如果计算机的CPU指令集只有x86一种,操作系统也只有Windows一种,那也许Java语言就不会出现。Java在刚刚诞生之时曾经提出过一个非常著名的宣传口号:“一次编写,到处运行(Write Once,Run Anywhere)”,这句话充分表达了软件开发人员对冲破平台界限的渴求。在无时无刻不充满竞争的I...
  • 9.8 使用提取器进行匹配

    9.8 使用提取器进行匹配 9.8 使用提取器进行匹配 使用Scala提取器(Extractor),可以将模式匹配带到下一个阶段:匹配任意模式。正如其名字所示,提取器会从输入中提取出匹配的部分。假定我们在写一个服务,处理股票相关的输入。对我们来说,手头的第一个工作就是接收股票代码,返回这个股票的价格(为了演示,这里打印出结果)。如下例所示: S...
  • 2.4 动态语言支持

    2.4 动态语言支持 2.4.1 Java语言与Java虚拟机 2.4 动态语言支持 这节将要介绍的是Java 7中的一个重要的新特性。这个新特性的特殊之处在于它是对Java虚拟机规范的修改,而不是对Java语言规范的修改。从这个角度来说,这个改动会比之前介绍的Java 7新特性更加复杂,对Java平台的影响也更加深远。这个新特性增强了Java虚拟...
  • 9.2.4 序列化与压缩

    9.2.4 序列化与压缩 9.2.4 序列化与压缩 前面章节详细介绍了Spark的I/O机制,下面介绍I/O中的主要调优方向。 1.通过序列化优化 序列化的本质作用是将链式存储的对象数据,转化为连续空间的字节数组存储的数据。这样的存储方式就会产生以下几个好处。 1)对象可以以数据流方式进行进程间传输(包含网络传输),同样可以以连续空间方式存储到...
  • elevate

    elevate 分析词义 首先, "elevate" 是英语中的动词,它主要有两个含义,一种是“提高,升高,增加”,常用于抽象和物质的概念,另一种意思是"提升(地位、级别、品味、质量等)",用于指提升某人的地位或提升物品的品质等。例如,"Elevate your mind" (提升你的思维),"He was elevated to the positi...
  • 4.2 内嵌式DSL:元编程模式

    4.2 内嵌式DSL:元编程模式 4.2.1 隐式上下文和灵巧API 1. 评判DSL的表现力 2. 定义隐式上下文 3. 利用灵巧API改善表现力 4.2.2 利用动态装饰器的反射式元编程 1. Java中的装饰器 2. 改进Java实现 3. Ruby中的动态装饰器 4.2.3 利用buider的反射式元编程 1. Groovy bui...
  • 附录:C++和 Java 的优良传统

    附录:C++和 Java 的优良传统 附录:C++和 Java 的优良传统 在各种讨论声中,有一些人认为 C++是一种设计糟糕的语言。 我认为理解 C++和 Java 语言的选择有助于了解更大的视角。 也就是说,我几乎不再使用 C++了。当我使用它的时候,要么是用来检查遗留代码,要么是编写性能关键(performance-critical)部...