`

Java优化编程(第二版)

    博客分类:
  • java
阅读更多

Java优化编程(第二版)

第1章  Java程序设计风格...... 1

1.1  Java文件名与文件组织结构..... 3

1.2  Java文件注释头..... 3

1.3  包的声明与引用..... 5

1.4  类与接口的声明..... 6

1.5  Java源文件编排格式..... 7

代码行长度与折行规则..... 7

1.6  程序注释..... 9

1.7  变量的声明初始化与放置..... 11

1.7.1  变量声明..... 11

1.7.2  变量初始化..... 12

1.7.3  变量放置..... 12

1.8  Java程序语句编写规则..... 12

1.8.1  简单语句..... 13

1.8.2  复合语句..... 13

1.9  空格与空行的应用规则..... 17

1.9.1  空格的应用规则..... 17

1.9.2  空行的应用规则..... 18

1.10  方法、变量与常量的命名规则..... 19

1.10.1  方法的命名规则..... 19

1.10.2  变量的命名规则..... 19

1.10.3  常量的命名规则..... 20

1.11  Java编程实践..... 20

1.11.1  访问实例与类中变量的规则..... 20

1.11.2  引用类中的静态变量与方法的规则..... 20

1.11.3  变量赋值规则..... 21

1.11.4  综合规则..... 21

小结..... 22

第2章  内存管理...... 23

2.1  垃圾回收..... 24

堆内存..... 26

2.2  JVM中对象的生命周期..... 27

2.2.1  创建阶段..... 27

2.2.2  应用阶段..... 29

2.2.3  不可视阶段..... 32

2.2.4  不可到达阶段..... 33

2.2.5  可收集阶段、终结阶段与释放阶段..... 33

2.3  Java中的析构方法finalize.. 33

2.4  数组的创建..... 37

2.5  共享静态变量存储空间..... 37

2.6  对象重用与GC... 39

2.7  瞬间值..... 42

2.8  不要提前创建对象..... 43

2.9  JVM内存参数调优..... 43

2.10  Java程序设计中有关内存管理的其他经验..... 48

小结..... 49

第3章  表达式、语句与保留字...... 50

3.1  表达式..... 51

3.1.1  括号规则..... 51

3.1.2  简单规则..... 52

3.1.3  单一意图规则..... 52

3.1.4  方法返回值比较规则..... 53

3.1.5  字符串比较规则..... 54

3.2  Java语言中的保留字..... 55

3.2.1  静态的(static)..... 56

3.2.2  超类(super)..... 58

3.2.3  最终的(final)..... 58

3.2.4  同步(synchronized)..... 64

3.2.5  实例识别(instanceof)..... 65

3.3  判断语句与循环语句..... 67

3.3.1  判断语句..... 67

3.3.2  循环语句..... 68

3.4  正则表达式..... 73

小结..... 74

第4章  Java核心类与性能优化...... 75

4.1  散列表类与性能优化..... 76

4.1.1  线程同步散列表类..... 76

4.1.2  设置ArrayList初始化容量..... 80

4.1.3  ArrayList与LinkedList. 81

4.2  String类与性能优化..... 84

4.2.1  字符串累加与性能优化..... 84

4.2.2  字符串的length()方法与性能优化..... 86

4.2.3  toCharArray()方法与性能优化..... 87

4.2.4  字符串转化为数字..... 88

4.3  系统I/O类..... 89

4.3.1  Java语言中输入/输出流..... 89

4.3.2  通过系统缓冲流类提高I/O操作效率..... 91

4.3.3  通过自定制缓冲区提高I/O操作效率..... 93

4.3.4  通过压缩流提高I/O操作效率..... 97

4.3.5  通过非阻塞I/O优化应用性能..... 100

4.4  其他..... 104

4.4.1  数据格式化与性能优化..... 104

4.4.2  获取文件信息与性能优化..... 106

小结..... 107

第5章  JNI程序设计与性能优化...... 108

5.1  JNI技术架构..... 109

5.2  创建带有本地方法的Java应用..... 110

5.3  创建C端代码..... 111

5.3.1  创建C端代码头文件..... 111

5.3.2  创建C端代码主文件..... 113

5.4  JNI技术中数据类型与处理方法..... 114

5.4.1  JNI技术中的本地数据类型..... 115

5.4.2  访问JNI本地数据类型的方法..... 117

5.4.3  在JNI本地方法中访问数组..... 120

5.4.4  JNI中的主要方法..... 123

5.5  JNI中的重要技术..... 125

5.5.1  局部引用与全局引用..... 125

5.5.2  处理本地方法引起的Java错误..... 128

5.5.3  线程与本地方法..... 129

5.6  JNI数学计算与性能优化..... 130

5.7  处理好JNI中的中文问题..... 131

小结..... 133

第6章  类与接口...... 134

6.1  类的构造器..... 135

6.1.1  构造器编写规则..... 136

6.2  类的继承规则..... 141

6.2.1  单线继承规则..... 142

6.2.2  包内部继承规则..... 143

6.2.3  逻辑包含继承规则..... 144

6.3  抽象类与接口..... 146

6.4  继承与组合的应用时机..... 148

6.5  接口与抽象类的应用时机..... 151

6.6  内部类..... 153

6.7  与性能相关的建议与经验..... 155

小结..... 155

第7章  JSP与Servlet性能优化...... 156

7.1  提升JSP应用性能..... 157

7.1.1  优化jspInit()方法..... 157

7.1.2  通过优化_jspService()方法提高系统性能..... 161

7.1.3  JSP高级知识..... 167

7.2  提升Servlet应用性能..... 168

7.2.1  提高Servlet应用性能的七个方法..... 169

7.2.2  合理缓冲静态数据与动态数据..... 170

7.2.3  改善Servlet应用性能的方法..... 171

7.2.4  Filter Servlet与Listener Servlet. 172

小结..... 177

第8章  开发高性能的EJB应用...... 178

8.1  采用EJB技术的必要性..... 179

8.1.1  EJB技术的优势特性..... 179

8.1.2  EJB技术体系具有清晰的架构层次..... 179

8.1.3  EJB与传统Bean相比的性能优势..... 181

8.2  EJB的类型..... 182

8.2.1  EJB的生命周期..... 183

8.2.2  三种EJB的特点与适用场合..... 187

8.2.3  本地EJB与远程EJB的性能比较..... 189

8.2.4  有状态会话EJB与HttpSession.. 190

8.2.5  EJB 3.0规范中的EJB... 191

8.3  优化无状态会话EJB性能..... 194

8.3.1  如何控制无状态会话EJB的生命周期..... 195

8.3.2  通过调节无状态会话EJB实例池的大小来优化系统性能..... 196

8.3.3  无状态会话EJB资源的缓冲与释放..... 197

8.4  优化有状态会话EJB性能..... 197

8.4.1  控制有状态会话EJB生命周期..... 197

8.4.2  优化有状态会话EJB的主要途径..... 198

8.5  优化实体EJB的性能..... 200

8.5.1  如何控制实体EJB的生命周期..... 200

8.5.2  通过调节实体EJB实例池的大小来优化系统性能..... 201

8.5.3  控制好实体EJB中的事务..... 202

8.5.4  提高实体EJB应用性能的其他知识..... 207

8.6  优化消息EJB性能..... 210

8.6.1  如何控制消息EJB的生命周期..... 210

8.6.2  如何缓存释放系统资源..... 212

8.7  几种EJB的结合应用规则..... 212

8.8  提高EJB应用性能的其他途径..... 214

小结..... 215

第9章  JMS性能优化...... 216

9.1  JMS消息收发模式及其各自适用场合..... 218

9.2  发送与接收JMS消息..... 221

9.3  优化JMS中的会话对象..... 224

9.4  优化连接对象..... 226

9.5  优化消息目的地Destination及消息生产者与消费者..... 228

9.6  优化消息对象及合理使用事务机制..... 233

9.7  影响JMS性能的其他因素..... 234

小结..... 237

第10章  JDBC与性能优化...... 238

10.1  选择最优的驱动程序优化应用性能..... 240

10.2  优化JDBC连接..... 242

10.2.1  设置合适的预取行值..... 242

10.2.2  采用连接池技术..... 244

10.2.3  合理应用事务..... 245

10.2.4  选择合适的事务隔离层与及时关闭连接..... 247

10.3  优化Statement对象..... 248

10.4  优化ResultSet对象..... 252

10.4.1  通过缓冲数据行提高系统性能..... 252

10.4.2  通过设置合适的处理数据行的方向提高系统性能..... 253

10.4.3  通过采用合适的getXXX()方法提高系统性能..... 254

小结..... 255

第11章  软件结构、设计模式与性能优化...... 256

11.1  模式简介..... 257

11.2  常用模式的Java实现与结构优化..... 258

11.2.1  单态/单件模式的结构优化..... 259

11.2.2  抽象工厂模式的结构优化..... 261

11.2.3  适配器模式的结构优化..... 266

11.2.4  代理模式的结构优化..... 271

11.2.5  桥接模式的结构优化..... 273

11.2.6  命令模式的结构优化..... 275

11.2.7  观察者模式的结构优化..... 278

11.2.8  职责链模式的结构优化..... 281

11.2.9  中介者模式的结构优化..... 285

11.2.10  访问者模式的结构优化..... 288

11.2.11  任务分配中心模式的结构优化..... 291

11.3  J2EE中的模式与性能优化..... 296

11.3.1  服务定位模式与性能优化..... 297

11.3.2  会话门面模式与性能优化..... 300

11.3.3  消息门面模式与性能优化..... 302

11.3.4  返回值打包模式与性能优化..... 303

11.3.5  返回值包装工厂模式与性能优化..... 305

11.3.6  值列表处理器模式与性能优化..... 306

11.3.7  复合实体模式与性能优化..... 308

小结..... 309

第12章  Java多线程技术与应用性能优化...... 310

12.1  Java多线程技术..... 311

12.1.1  进程与线程..... 311

12.1.2  线程的生命周期..... 311

12.2  并行任务与性能..... 313

12.2.1  并行任务与多线程..... 313

12.2.2  并行任务与死锁..... 313

12.3  线程池技术与应用性能优化..... 315

12.3.1  线程池..... 315

12.3.2  调优线程池的尺寸..... 315

12.4  通过线程池技术优化套接字网络编程..... 316

小结..... 322

第13章  Java泛型与应用优化...... 323

13.1  认识泛型..... 324

13.1.1  使用泛型的收益..... 324

13.1.2  泛型与JDK 5.0中的集合类..... 325

13.2  使用泛型..... 327

13.2.1  创建支持泛型的类..... 327

13.2.2  泛型的自动解包装与自动包装的功能..... 328

13.2.4  限制泛型中类型参数的范围..... 329

小结..... 330

第14章  Ajax技术与Web应用性能优化...... 331

14.1  了解Ajax.. 332

14.2  通过Ajax技术改善Web应用性能..... 332

14.2.1  Ajax技术实现..... 332

14.2.2  Ajax技术性能优化实例..... 335

小结..... 340

第15章  其他优化话题...... 341

15.1  用WeakHashMap屏蔽内存泄漏..... 342

15.2  优化Java应用大小..... 344

15.3  通过RandomAccess接口优化迭代列表..... 346

15.4  合并Java中的多进程与系统优化..... 351

小结..... 356

附录A  Together工具的使用简介...... 357

附录B  J2SE 5.0的新特性与性能的提升...... 370

附录C  编排代码的精美工具JxBeauty... 399

<!---->
分享到:
评论

相关推荐

    Java优化编程(第二版PDF)

    一本经典的关于java优化编程的书。通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做...

    [精通Java网络编程(第二版)]源文件

    《精通Java网络编程(第二版)》是一本深入探讨Java在网络编程领域的专著,它涵盖了Java网络编程的基础到高级主题,旨在帮助读者掌握利用Java进行网络应用开发的关键技能。本书的源文件可能包括了教材的代码示例、...

    java网络编程第四版pdf

    第二章“流”是Java网络编程的核心概念。Java中的I/O流提供了处理输入和输出的强大工具,无论是处理文件、网络连接还是其他资源,流都扮演着关键角色。本章详细阐述了字节流和字符流的区别,以及如何使用InputStream...

    Java servlet 编程第二版

    **Java Servlet 编程第二版** Java Servlet 技术是Java平台上的服务器端编程模型,用于构建动态Web应用程序。Servlet接口定义了服务器如何与HTTP客户端交互,并提供了处理HTTP请求和生成响应的能力。这本书《Java ...

    JAVA优化编程(part2)

    一本不错的书,会对你的JAVA编程水平有很大提高

    Java网络编程 (第二版

    《Java网络编程(第二版)》是一本深入探讨Java在互联网环境下的编程技术的专业书籍。本书全面覆盖了Java网络编程的基础知识和高级技巧,旨在帮助读者掌握如何利用Java语言进行网络应用开发。以下是对其中主要知识点...

    java 并发编程的艺术pdf清晰完整版 源码

    《Java并发编程的艺术》这本书是Java开发者深入理解并发编程的重要参考书籍。这本书全面地介绍了Java平台上的并发和多线程编程技术,旨在帮助开发者解决在实际工作中遇到的并发问题,提高程序的性能和可伸缩性。 ...

    JAVA并发编程艺术pdf版

    《JAVA并发编程艺术》是Java开发者深入理解和掌握并发编程的一本重要著作,它涵盖了Java并发领域的核心概念和技术。这本书详细阐述了如何在多线程环境下有效地编写高效、可靠的代码,对于提升Java程序员的技能水平...

    侯捷-java编程思想.pdf

    《侯捷-Java编程思想》是一本深受Java开发者喜爱的经典著作,尽管是繁体版本,但其中也包含英文内容,方便不同语言背景的读者理解。这本书深入浅出地讲解了Java编程的核心概念和技术,旨在帮助读者掌握Java编程的...

    一本经典的多线程书籍 Java并发编程 设计原则与模式 第二版 (英文原版)

    《Java并发编程 设计原则与模式 第二版》是一本深受程序员喜爱的经典书籍,由Addison Wesley出版。这本书深入探讨了Java平台上的多线程编程技术,为开发者提供了丰富的设计原则和模式,帮助他们理解和解决并发环境中...

    Java虚拟机(第二版)PDF高清电子书下载

    《Java虚拟机(第二版)》是一本深入探讨Java虚拟机(JVM)技术的经典著作。这本书详尽地阐述了JVM的工作原理、内存管理、类加载机制、字节码执行以及性能优化等多个核心主题,对于Java开发者和系统架构师来说,是不...

    Head First Java.第二版.中文完整高清版.pdf

    “第二版”说明了这是该教材的更新版本,通常意味着作者根据Java的发展和读者的反馈对第一版的内容进行了修订和增强,增加了新的信息和教学方法,以提供更加完整和及时的学习体验。 “中文完整高清版”表明这本书...

    Java程序设计第二版习题答案

    在《Java程序设计(第二版)》一书中,作者深入浅出地介绍了Java编程语言的基本概念和核心特性。这本书的习题旨在帮助读者巩固理论知识,提升实践技能。以下是针对该书习题答案的详细知识点解析: 1. **Java基础...

    Java并发编程实践.pdf

    #### 二、Java线程安全问题及解决方案 ##### 2.1 线程安全问题分析 在多线程环境下,如果不加以控制,可能会出现数据竞争、死锁等问题。其中,数据竞争指的是多个线程同时访问并修改同一变量的情况,而死锁则是指两...

    【经典】Java数据库编程 JAVA跟数据库连接源代码

    综上所述,Java数据库编程涵盖的内容广泛,从基础的数据库连接到高级的事务处理和性能优化。掌握这些知识点,对于Java开发者来说至关重要,能够有效地实现与数据库的交互,开发出高效、稳定的数据库应用。通过实践和...

    《java开发实战经典》第二版李兴华课后习题答案

    以上知识点详细阐述了《java开发实战经典》第二版中李兴华提供的课后习题答案所涉及的Java编程基础内容,覆盖了Java语言的核心概念和编程实践。这些知识点不仅适用于理解书本上的习题答案,而且对于深入学习Java语言...

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 实战讲解 全套PPT课件 共10个章节.rar

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第04章 用Hibernate优化宠物分类展现DAO类(共33页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第05章 宠物分类展现模块的第一个动态...

    疯狂java讲义 第二版 源码

    第二版在第一版的基础上进行了更新和优化,更贴近现代Java开发环境和最佳实践。随书源码是学习过程中不可或缺的部分,它提供了实例代码,使读者能够亲手实践并理解书中讲解的概念。 本书的知识点涵盖了以下几个方面...

    疯狂Java讲义第二版配套光盘

    《疯狂Java讲义第二版配套光盘》是一个包含大量Java编程学习资源的压缩包,它为读者提供了书中各个章节的实战代码示例。这个光盘的内容丰富多样,旨在帮助Java初学者和进阶者深入理解Java语言的核心概念,提高编程...

Global site tag (gtag.js) - Google Analytics