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

简介: 本章开始讲解面向对象思想,并以Java 为载体讲述面向对象思想在具体编程语言中的运用与实践。当前主流的编程语言有50 种左右,主要分为两大阵营:面向对象编程与面向过程编程。面向对象编程(Object-Oriented Programming,OOP)是划时代的编程思想变革,推动了高级语言的快速发展和工业化进程。OOP 的抽象、封装、继承、多态的理念使软件大规模化成为可能,有效地降低了软件开发成本、维护成本和复用成本。面向对象编程思想完全不同于传统的面向过程编程思想,使大型软件的开发就像搭积木一样隔离可控、高效简单,是当今编程领域的一股势不可......

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 收集器的优化。




相关文章
|
3天前
|
存储 Java 数据库连接
使用Java开发桌面应用程序
使用Java开发桌面应用程序
13 0
|
3天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
10 0
|
3天前
|
分布式计算 负载均衡 Java
构建高可用性Java应用:介绍分布式系统设计与开发
构建高可用性Java应用:介绍分布式系统设计与开发
8 0
|
3天前
|
前端开发 安全 Java
使用Spring框架加速Java开发
使用Spring框架加速Java开发
5 0
|
3天前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
8 0
|
3天前
|
设计模式 算法 Java
设计模式在Java开发中的应用
设计模式在Java开发中的应用
15 0
|
3天前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
22 0
|
4天前
|
存储 Java 开发者
探索Java开发中触发空指针异常的场景
作为一名后端开发者在Java编程的世界中,想必大家对空指针并不陌生,空指针异常是一种常见而又令人头疼的问题,它可能会在我们最不经意的时候突然出现,给我们的代码带来困扰,甚至导致系统的不稳定性,而且最可怕的是有时候不能及时定位到它的具体位置。针对这个问题,我们需要深入了解触发空指针异常的代码场景,并寻找有效的方法来识别和处理这些异常情况,而且我觉得空指针异常是每个Java开发者都可能面临的挑战,但只要我们深入了解它的触发场景,并采取适当的预防和处理措施,我们就能够更好地应对这个问题。那么本文就来分享一下实际开发中一些常见的触发空指针异常的代码场景,并分享如何有效地识别和处理这些异常情况。
19 1
探索Java开发中触发空指针异常的场景
|
4天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
45 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
12天前
|
Java 索引
Java String应用与开发
Java String应用与开发
21 0