pragmatic-java-engineer
  • 引言
  • 第一章 后端技术导言
    • 1.1 后端基础设施
    • 1.2 Java后端技术概览
    • 1.3 如何学习后端技术
  • 第二章 Java项目工程化
    • 2.1 项目构建
    • 2.2 代码版本控制
    • 2.3 代码质量保证
  • 第三章 开发框架
    • 3.1 依赖注入
    • 3.2 对象关系映射
    • 3.3 日志
    • 3.4 Web MVC
    • 3.5 总结
  • 第四章 Spring
    • 4.1 Spring核心组件
    • 4.2 Spring数据操作框架
    • 4.3 使用Spring Boot快速开发
    • 4.4 Spring常用组件
    • 4.5 总结
  • 第五章 数据存储
    • 5.1 关系型数据库-MySQL
    • 5.2 非关系型数据库
    • 5.3 缓存
    • 5.4 搜索引擎-Elasticsearch
    • 5.5 总结
  • 第六章 数据通信
    • 6.1 RESTful架构风格
    • 6.2 远程过程调用-RPC
    • 6.3 消息中间件
    • 6.4 总结
  • 第七章 Java编程进阶
    • 7.1 Java内存管理
    • 7.2 Java网络编程
    • 7.3 Java并发编程
    • 7.4 Java开发利器
    • 7.5 Java新版本特性
    • 7.6 总结
  • 第八章 性能调优
    • 8.1 调优准备
    • 8.2 性能分析
    • 8.3 性能调优
    • 8.4 总结
  • 第九章 安全技术
    • 9.1 Java加密
    • 9.2 安全HTTP - HTTPS
    • 9.3 Web安全
  • 附录A: 代码构建常用命令
  • 附录B: Git常用命令
  • 附录C: MySQL常用命令
  • 附录D: MongoDB常用命令
  • 附录E: Java调优常用命令
  • 附录F: 如何应对在线故障
  • 附录G: 架构简明指南
Powered by GitBook
On this page
  • 学习资料
  • 书籍
  • 资料
  1. 第七章 Java编程进阶

7.6 总结

Previous7.5 Java新版本特性Next第八章 性能调优

Last updated 1 year ago

本章主要讲述了Java开发中的一些高级特性,包括内存管理、网络编程、并发编程,并介绍了常用的Java工具库以及Java7、8、9一些值得使用的新特性。

了解并掌握这些,能够使得在构建Java应用时能够使用更高级的技能,从而可以提升编码效率和编码质量。

除此之外,在平时的Java开发中,还有一些容易被忽视的点也需要大家了解:

  • float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal。但是如果使用BigDecimal(double val)此构造方法那么由于小数的double底层存储是一个不确定的数字使得构造的BigDecimal也不是一个确定的数字,应该使用BigDecimal(String val)构造方法做精确计算。

  • 使用基于数组的集合时,如ArrayList、HashMap时必须指定初始化大小,否则大小不足时,会成倍扩容。

  • String自带的split方法是基于正则的,尽量避免使用。

  • DateFormat类以及子类是非线程安全的,在多线程环境下不能使用单例。

  • 能够避免使用正则表达式的地方尽量避免使用。正则运算对CPU的消耗是非常大的,而且会在某些偶然场景下触发死循环正则运算。

  • JSON的序列化和反序列化也都非常消耗CPU,除非必须得用,尽量避免使用,尤其只为了打印类的表示信息时。

  • 做时间差值相关的统计时为了防止时间调整带来的影响,推荐使用System.nanoTime()而不是System.currentTimeMillis()来记录时间值。其返回的是纳秒,来源于CPU时钟。但需要注意此值仅可用于测量同一台机器的时间差值,切忌用在不同机器上。

学习资料

书籍

  • :学习Java必备的黄皮书,入门推荐书籍

  • :黄皮书之高级特性

  • : 对Java并发库讲得非常透彻

  • :Java之父高司令都称赞的一本Java进阶书籍

  • :涵盖了Java8带来以及Java7中被略过的新的Java特性,值得一看

资料

Socket编程:

NIO:

序列化:

RPC框架:

并发编程:

《Java核心技术(卷1)》
《Java核心技术(卷2)》
《Java并发编程实战》
《Effective Java》
《写给大忙人看的Java SE 8》
http://ifeve.com/java-socket/
http://ifeve.com/java-nio-all/
http://ifeve.com/java-io-s-objectinputstream-objectoutputstream/
http://dubbo.io
http://ifeve.com/java-concurrency-constructs/