数智图书馆-无锡数智政务 本次搜索耗时 5.715 秒,为您找到 952 个相关结果.
  • 14.1 模块化的驱动力:软件的推理

    14.1 模块化的驱动力:软件的推理 14.1.1 关注点分离 14.1.2 信息隐藏 14.1.3 Java软件 14.1 模块化的驱动力:软件的推理 学习Java模块系统的各种细节之前,如果你能理解Java语言设计者设计的初衷和背景将会大有裨益。模块化意味着什么?模块系统能解决什么问题?本书花了大量的篇幅讨论新语言特性如何帮助程序员编写更接近...
  • 14.2 为什么要设计Java模块系统

    14.2 为什么要设计Java模块系统 14.2.1 模块化的局限性 14.2.2 单体型的JDK 14.2.3 与OSGi的比较 14.2 为什么要设计Java模块系统 这一节里,你会了解为什么Java语言及其编译器需要一个全新的模块系统。首先,我们会介绍Java 9之前版本在模块化方面的局限性。接着,我们会聊聊JDK库的一些背景知识并解释为什...
  • 17.1 反应式宣言

    17.1 反应式宣言 17.1.1 应用层的反应式编程 17.1.2 反应式系统 17.1 反应式宣言 反应式宣言由Jonas Bonér、Dave Farley、Roland Kuhn和Martin Thompson在2013年至2014年间发起,它定义了一套开发反应式应用和系统的规范。该宣言指出了反应式应用的四个典型特征。 响应性——顾名思...
  • 前言

    前言 前言 起初 O'Reilly 公司让我写一本关于 Java 性能调优的书时,我还不确定是否值得写。我在想,难道 Java 性能调优我们做得还不够吗?事实上,虽然我日常的基本工作是 Java(和其他)应用程序的性能调优,但我宁愿将大多数时间都花在提高应用程序的算法效率以及处理外部系统的性能瓶颈上,而不是直接进行 Java 自身性能的调优。 但...
  • 2.4 原则4:尽早频繁测试

    2.4 原则4:尽早频繁测试 2.4 原则4:尽早频繁测试 这是第 4 条也是最后的原则。性能极客们(包括我)喜欢将性能测试作为开发周期不可或缺的一部分。理想情况下,在代码提交到中心源代码仓库前,性能测试就应该作为过程的一部分运行,如果代码引入了性能衰减,提交就会被阻止。 本章中,建议之间有些内在的冲突,而建议和现实之间也有冲突。好的性能测试包含...
  • 4.3 Java和JIT编译器版本

    4.3 Java和JIT编译器版本 4.3 Java和JIT编译器版本 各种测试的编译器之间是有差别的,我们来看下如何获得合适的编译器。在你下载 Java 时,需要选择版本,而最终的选择取决于你所用的平台。Java 版本的选择也会影响 JIT 编译器。到目前为止,我们讨论了 client 和 server 编译器,实际上 JIT 编译器有 3 种版...
  • 9.3 线程同步

    9.3 线程同步 9.3.1 同步的代价 9.3.2 避免同步 9.3.3 伪共享 9.3 线程同步 在理想的世界中,或者是在书本上的例子中,很容易避开对线程同步的需求。而在现实世界中,就未必那么容易了。 同步与 Java 并发设施 在本节中,当用到“同步”(synchronization)这个术语时,它指的是这样的代码:这段代...
  • 9.2 第一个例子:无索引条件下的数据搜索

    9.2 第一个例子:无索引条件下的数据搜索 9.2.1 基本类 9.2.2 第一种方式:基本搜索 9.2.3 第二种方式:高级搜索 9.2.4 本例的串行实现 9.2.5 对比实现方案 9.2 第一个例子:无索引条件下的数据搜索 在第8章中,你学会了如何实现一个搜索工具,使用倒排索引查找与输入查询相似的文档。该数据结构使搜索操作更加方便和快捷...
  • 6.2 为什么并行化如此重要

    6.2 为什么并行化如此重要 6.2 为什么并行化如此重要 过去我们可以指望CPU时钟频率会变得越来越快。1979年,英特尔公司推出的8086处理器的时钟频率为5 MHz;到了1993年,奔腾芯片的速度达到了60 MHz。在21世纪早期,CPU的处理速度一直以这种方式增长。 然而在过去十年中,主流的芯片厂商转向了多核处理器。在写作本书时,服务器通过几...
  • 第 8 章 设计和架构的原则

    第 8 章 设计和架构的原则 第 8 章 设计和架构的原则 软件开发最重要的设计工具不是什么技术,而是一颗在设计原则方面训练有素的头脑。 —— Craig Larman 通过前面的学习,我们认识到Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样。但是大多数Java代码都不是由开发JDK的程序员...