作品简介

作为最受欢迎的编程语言之一,Java已经走过了20个年头。从已经落寞的诺基亚到现在火热的电商系统,我们都能看到Java语言的身影。从1995年的第一个版本到现在的Java 1.8,我们甚至能从Java的版本迭代中看到不同时代编程语言关注的重点。经过了过去20年的发展,Java已经成为如今使用最为广泛的企业级语言。InfoQ专门发布一本迷你书,庆祝Java的第20个生日。

InfoQ(Information Queue)是一个在线新闻/社区网站,旨在通过促进软件开发领域知识与创新的传播,为软件开发者提供帮助。

作品目录

  • Java 20年:道路与梦想
  • 互联网与Java的诞生
  • Java的下一个五年
  • 在开源领域的巨大成功
  • 发展的生命周期
  • Java的未来二十年
  • Java 20岁生日快乐
  • Java 20年:转角遇到Go
  • 受访嘉宾介绍
  • Java 20年:历史与未来
  • 受访嘉宾介绍
  • Java 20年:JVM虚拟化技术的发展
  • 定义以及历史
  • 应用场景以及发展前景
  • Java语言的发展
  • 受访嘉宾介绍
  • 借助开源工具高效完成Java应用的运行分析
  • Jmap(借助JPM的一点帮助)
  • VisualVM
  • BTrace
  • EurekaJ
  • 图例
  • 注意性能干扰 – 让非热点区不受影响!
  • 建立完整的运行分析
  • 总结
  • 参考
  • 关于作者
  • 双重检查锁定与延迟初始化
  • 问题的根源
  • 基于volatile的双重检查锁定的解决方案
  • 基于类初始化的解决方案
  • 总结
  • 参考文献
  • Gradle在大型Java项目上的应用
  • 1. 多Module的项目
  • 1.1 配置子项目
  • 1.2 共享配置
  • 1.3 独享配置
  • 1.4 其他共享
  • 2. 环境的配置
  • 2.1 Properties配置
  • 2.2 替换
  • 2.3 更复杂的情况
  • 2.4 初始化数据库
  • 3. 代码质量
  • 3.1 CheckStyle
  • 3.2 FindBugs
  • 3.3 JDepend
  • 3.4 PMD
  • 3.5 小结
  • 4. 依赖
  • 4.1 Jar包依赖管理
  • 4.2 子项目之间的依赖
  • 4.3 构建脚本的依赖
  • 5. 其他
  • 5.1 apply其他Gradle文件
  • 5.2 project的目录
  • 5.3 使用Wrapper指定Gradle的版本
  • 5.4 使用gradle.properties文件
  • 参考文献:
  • 深入理解Java内存模型(五)——锁
  • 锁的释放-获取建立的happens before 关系
  • 锁释放和获取的内存语义
  • 锁内存语义的实现
  • concurrent包的实现
  • 参考文献
  • 关于作者
  • 深入分析ConcurrentHashMap
  • 术语定义
  • 线程不安全的HashMap
  • 效率低下的HashTable容器
  • 锁分段技术
  • ConcurrentHashMap的结构
  • ConcurrentHashMap的初始化
  • 定位Segment
  • ConcurrentHashMap的get操作
  • ConcurrentHashMap的Put操作
  • ConcurrentHashMap的size操作
  • 参考资料
  • 作者介绍
  • HotSpot虚拟机对象探秘
  • 对象的创建
  • 对象的内存布局
  • 对象的访问定位
  • 参考资料
  • Java字节码忍者禁术
  • 介绍ASM
  • 示例
  • 使用生成的类
  • 结论
  • 关于作者
  • DukeScript:随处运行Java的新尝试
  • 关于作者
展开全部