码出高效:Java开发手册-第2章(2)

2.2 初识Java

面向对象编程思想把所有的有形或无形的事物都看作对象,并给对象赋予相应的属性和行为,建立对象之间的联系,使程序员更加立体、形象地解决编程领域的问题。面向对象语言的忠实代表是Java 语言,它是一门富有生命力的语言,在最受欢迎的语言排行榜上,多年位居第一。Java 语言是1995 年由Sun 公司首次发布的。次年Java 开发工具包发布,即Java Development Kit,简称JDK1.0,这是Java 发展的一个重要里程碑,标志着Java 成为一门独立的成熟语言。随后,Sun 公司再接再厉发布了Just-in-time 编译器,简称JIT,不断进步的JIT 技术使Java 的执行速度接近甚至超过其他高级语言。

JDK 随着时代不断往前发展。在众多版本中,最具划时代影响力的版本是JDK5,项目代号Tiger。Doug Lea 推出的并发包,使Java 如虎添翼,成为工业级语言,在企业服务端得到极为广泛的应用。随着后续版本的陆续推出,Java 的发展与时俱进,推出了diamond 语法、函数式、模块化、var 类型推断等新特性。最新的JDK 版本是JDK11。

JRE(Java Runtime Environment)即Java 运行环境,包括JVM、核心类库、核心配置工具等。其中JVM(Java Virtual Machine)即Java 虚拟机,它是整个Java 体系的底层支撑平台,把源文件编译成平台无关的字节码文件,屏蔽了Java 源代码与具体平台相关的信息,所以Java 源代码不需要额外修改即可跨平台运行。JVM 不仅支撑着Java 语言,还包括Kotlin、Scala、Python 等其他流行语言。其中Kotlin 是Jetbrains 开发的跨平台语言,其语法简洁、类型安全,可以编译成字节码运行在JVM上,与Java 语言非常方便地进行混合编程。1999 年,Sun 公司发布公开版本的HotSpot,它是当前主流的Java 虚拟机。2006 年,在JavaOne 大会上开源相关核心技术,启动OpenJDK 项目,逐步形成了活跃的OpenJDK 社区。在社区的带动下,Java 生态也随之繁荣,包括AJDK、Spring、Hadoop、Dubbo、JStorm、RocketMQ 等Java 相关解决方案,极大地提升了Java 语言的生产效率。

Java 语言拥有跨平台、分布式、多线程、健壮性等特点,是当下比较主流的高级编程语言。它的类库非常丰富、功能强大、简单易用,对开发者友好,不仅吸收了C++ 的优点,还摒弃了其难以掌控的多继承、指针等概念。Java 比较好地实现了面向对象理论,允许开发工程师以优雅的思维方式处理复杂的编程场景。

现在我们简要回顾和总结一下从JDK5 到JDK11 的重要类、特性和重大改变。

JDK5 新特性:foreach 迭代方式、可变参数、枚举、自动拆装箱、泛型、注解等重要特性。

JDK6 新特性:Desktop 类和SystemTray 类、使用Compiler API、轻量级HTTPServer API、对脚本语言的支持、Common Annotations 等重要特性。

JDK7 新特性:Switch 支持字符串作为匹配条件、泛型类型自动推断、try-withresources资源关闭技巧、Objects 工具类、ForkJoinPool 等重要类与特性。

JDK8 新特性:接口的默认方法实现与静态方法、Lambda 表达式、函数式接口、方法与构造函数引用、新的日期与时间API、流式处理等重要特性。

JDK9 新特性:Jigsaw 模块化项目、简化进程API、轻量级JSON API、钱和货币的API、进程改善和锁机制优化、代码分段缓存等重要特性。

JDK10 新特性:局部变量的类型推断、改进GC 和内存管理、线程本地握手、备用内存设备上的堆分配等重要特性。

JDK11 新特性:JDK11 于2018 年9 月与《码出高效:Java 开发手册》同期发布,JDK11 中删除了Java EE 和 CORBA 模块,增加基于嵌套的访问控制,支持动态类文件常量,改进 Aarch64 内联函数,提供实验性质的可扩展的低延迟垃圾收集器ZGC等重要特性。

JDK12 新特性:Shenandoah 低暂停时间的GC、Switch 表达式功能增强、G1 收集器的优化。




上一篇:码出高效:Java开发手册-第2章(4)


下一篇:双11数据大屏背后的秘密:大规模流式增量计算及应用