具体描述
内容简介
Java经过多年发展,现在已经真正成长为严格的、主流的开发语言。本书的作者是国际知名的教育专家H.M.Deitel和P.J.Deitel。全书通过Deitel特有的“活代码”方式,详细讲解了如何使用Java开发数据库应用程序、多媒体应用程序、网络应用程序。本书还介绍了软件工程知识、界面设计知识、调试技巧、性能提示等方面的内容。另外,本书还配有实验手册,它提供了一个优秀的学习环境,学生们可以用所学概念解决精心设计的各种问题。教师也能更好地评估学生对教材的理解程度。该实验手册也可以作为开放式实验、家庭作业以及自学用。
本书的读者对象是各类编程人员,计算机相关专业的本科生和研究生。
作者简介
H.M.Deitel和P.J.Deitel是Deitel&Assocciates;公司的奠基人。Deitel&Associates;公司是一家国际认证的培训和出版公司,致力于Java、C++、C#、Visual Basic.NET、Visual C++.NET、XML、Python、perl、Internet、Web和对象技术的教学和相关产品的研发。Deitel父子俩编写了许多世界一流的程序设计语言教材,包括《无线因特网和移动商务编程金典》和《C++程序设计教程》等。
目录
目 录
第1章计算机.Internet和Web概述
1.1本章简介
1.2计算机是什么
1.3计算机的构成
1.4操作系统的演变
1.5个人计算.分布式计算和客户/服务器计算
1.6机器语言.汇编语言和高级语言
1.7C++发展简史
1.8Java发展简史
1.9Java类库
1.10FORTRAN.COBOL.Pascal和Ada
1.11BASIC.VisualBasic.VisualC++.C#和.NET
1.12Internet和WWW
1.13典型Java环境基础
1.14有关Java和本书的简要说明
1.15有关对象的思考:对象技术及统一建模语言简介
1.16设计模式初探
本章小结
第2章Java应用程序介绍
2.1本章简介
2.2第一个Java程序
2.3修改第一个Java程序
2.4在一个对话框中显示文本
2.5另一个Java应用程序:整数相加
2.6内存概念
2.7算术运算
2.8等式和关系运算符
2.9对象思想:问题陈述分析(选学)
本章小结
第3章Javaapplet介绍
3.1本章简介
3.2Java2软件开发工具包中的示范applet
3.3简单的Javaapplet:绘制一个字符串
3.4绘制字符串和直线
3.5浮点数相加
3.6网上资源
3.7对象思想:确定问题陈述中的类(选学)
本章小结
第4章控制结构(一)
4.1本章简介
4.2算法
4.3伪码
4.4控制结构
4.5if单选结构
4.6if…else选择结构
4.7while循环结构
4.8算法设计:案例分析1(计数器控制的循环)
4.9自顶向下.逐步求精的算法设计:案例分析2
4.10自顶向下.逐步求精的算法设计:案例分析3
4.11复合赋值运算符
4.12自增和自减运算符
4.13基本数据类型
4.14对象思想:确定类属性(选学)
本章小结
第5章控制结构(二)
5.1本章简介
5.2计数器控制的循环的本质
5.3for循环结构
5.4for结构应用举例
5.5do…while循环结构
5.6switch多重选择结构
5.7break和continue语句
5.8带标号的break和continue语句
5.9逻辑运算符
5.10结构化编程小结
5.11对象思想:确定对象的状态和活动(选学)
本章小结
第6章方法
6.1本章简介
6.2Java中的程序模块
6.3Math类的方法
6.4方法声明
6.5参数提升
6.6JavaAPI包
6.7随机数生成
6.8例子:概率游戏
6.9声明的作用域
6.10类JApplet的方法
6.11方法重载
6.12递归
6.13递归应用举例:斐波纳契数列
6.14递归与迭代
6.15对象思想:确定类操作(选学)
本章小结
第7章数组
7.1本章简介
7.2数组
7.3数组的声明和创建
7.4数组应用举例
7.5引用和引用参数
7.6把数组传递给方法
7.7数组排序
7.8数组查找:线性查找和二叉查找
7.9多维数组
7.10对象思想:对象间协作(选学)
本章小结
第8章基于对象编程
8.1本章简介
8.2用类实现抽象数据类型:Time
8.3类作用域
8.4成员访问控制
8.5使用this引用当前对象的成员
8.6初始化类对象:构造函数
8.7使用重载的构造函数
8.8使用Set和Get方法
8.9组合
8.10垃圾收集
8.11Static类成员
8.12final实例变量
8.13创建包
8.14包访问
8.15软件的重用性(softwarereusability)
8.16数据抽象和封装
8.17思考问题:开始编写电梯模拟器的类(选学)
本章小结
第9章面向对象编程:继承
9.1本章简介
9.2超类和子类
9.3protected成员
9.4超类与子类的关系
9.5案例分析:3级继承层次
9.6子类的构造函数和终结方法
9.7运用继承的软件工程
本章小结
第10章面向对象编程:多态性
10.1本章简介
10.2继承层次结构中对象间的关系
10.3多态性举例
10.4抽象类和抽象方法
10.5案例分析:继承接口和实现
10.6final方法和类
10.7案例分析:多态性在工资系统中的应用
10.8案例分析:创建和使用接口
10.9嵌套类
10.10基本类型的类型包装类
10.11对象思想:在电梯模拟器中结合继承(选学)
10.12三种设计模式的探索(选学)
本章小结
第11章字符串和字符
11.1本章简介
11.2字符和字符串的基本知识
11.3String类
11.4StringBuffer类
11.5Character类
11.6StringTokenizer类
11.7模拟洗牌和发牌
11.8正则表达式.Pattern类和Matcher类
11.9对象思想:事件处理(选学)
本章小结
第12章图形和Java2D
12.1本章简介
12.2图形环境和图形对象
12.3颜色控制
12.4字体控制
12.5绘制线条.矩形和椭圆
12.6绘制弧
12.7绘制多边形和折线
12.8Java2DAPI
12.9对象思想:利用UML设计接口(选学)
本章小结
第13章图形用户界面组件(一)
13.1本章简介
13.2Swing组件概述
13.3JLabel
13.4事件处理
13.5文本字段
13.6事件处理的工作机制
13.7JButton
13.8JCheckBox和JRadioButton
13.9JComboBox
13.10JList
13.11多选列表
13.12鼠标事件处理
13.13适配器类
13.14键盘事件处理
13.15布局管理器
13.16面板
13.17对象思想:用例(选学)
本章小结
第14章图形用户界面组件(二)
14.1本章简介
14.2JTextArea
14.3创建定制的JPanel子类
14.4能处理自身事件的JPanel子类
14.5JSlider
14.6窗口:特别注意
14.7通过框架使用菜单
14.8JPopupMenu
14.9插入式外观和感觉
14.10JDesktopPane和JInternalFrame
14.11JTabbe 前言/序言
精炼与创新:一览Java程序设计的现代风貌 本书并非一本面向初学者的Java入门读物,而是为那些已具备一定编程基础,渴望深入理解Java语言精髓、掌握其高级特性以及领略其在现代软件开发中强大生命力的读者精心打造。它将带您超越语法表面的学习,直接触及Java的核心设计理念、性能优化技巧以及在实际应用中的最佳实践。 核心设计理念的深度解析 Java之所以能够风靡全球,并持续在企业级应用、移动开发(Android)以及大数据处理等领域占据重要地位,离不开其在设计之初就确立的几个核心理念: “一次编写,到处运行”(Write Once, Run Anywhere - WORA):本书将深入剖析Java虚拟机(JVM)的工作原理,包括字节码的生成、类加载机制、内存管理(堆、栈、方法区)、垃圾回收(GC)的策略与调优,以及JIT(Just-In-Time)编译器的作用。理解JVM的运作,是真正掌握Java跨平台能力的基石,也为排查性能瓶颈提供了根本性的视角。我们将详细探讨JVM的各个组成部分,以及它们如何协同工作,确保Java程序在不同操作系统和硬件架构上都能获得一致的执行效果。 面向对象(Object-Oriented Programming - OOP)的极致运用:Java是纯粹的面向对象语言。本书将不再停留在简单的类、对象、继承、多态的概念讲解,而是聚焦于如何更有效地运用OOP原则来设计 robust(健壮)、maintainable(可维护)、scalable(可扩展)的软件。我们将探讨设计模式(Design Patterns)在Java中的实际应用,例如工厂模式、单例模式、观察者模式、策略模式等,分析它们解决的常见问题以及如何根据具体场景选择和实现。此外,本书还会深入研究接口(Interface)与抽象类(Abstract Class)的细微差别与最佳使用场景,以及如何通过组合(Composition)而非仅仅继承来构建更灵活的系统。 健壮性与安全性:Java在语言层面和运行时环境层面都内置了对健壮性和安全性的考量。本书将详细分析Java的异常处理机制,包括Checked Exception与Unchecked Exception的区别、自定义异常的创建、以及如何设计优雅的错误处理流程,从而避免程序崩溃,并提供有用的诊断信息。在安全性方面,我们将探讨Java的内存模型如何防止内存泄漏和数据损坏,以及Java的安全管理器(Security Manager)在限制代码访问权限方面的作用。 JVM与性能优化:释放Java的潜能 对于任何一个追求卓越的开发者而言,理解并能够优化JVM性能是必不可少的技能。本书将提供一系列深入的JVM性能调优指南: 垃圾回收(Garbage Collection - GC)深度剖析:我们将详细介绍JVM支持的多种垃圾回收算法,如Serial, Parallel, CMS (Concurrent Mark Sweep), G1 (Garbage-First), ZGC, Shenandoah等。重点分析它们的优缺点、适用场景以及如何通过JVM参数对其进行配置和优化,以达到低延迟、高吞吐量的目标。读者将学会如何使用JVisualVM, JProfiler等工具来监控GC活动,分析GC日志,找出潜在的性能瓶颈。 内存管理与分析:深入理解Java堆(Heap)的结构,包括Young Generation(Eden, Survivor Spaces)和Old Generation,以及它们如何影响GC的效率。我们将讲解内存溢出(OutOfMemoryError)的常见原因和排查方法,并演示如何使用堆转储(Heap Dump)工具来分析内存泄漏。 线程与并发编程的艺术:并发是现代软件的基石,Java提供了强大的并发支持。本书将深入探讨Java内存模型(JMM),理解`volatile`关键字、`synchronized`关键字、原子变量(`Atomic` classes)以及锁(Locks)的工作原理。我们将系统性地介绍`java.util.concurrent`包中的核心类,如`ExecutorService`, `ThreadPoolExecutor`, `Future`, `CompletableFuture`, `ConcurrentHashMap`, `BlockingQueue`等,并演示如何利用它们构建高效、可伸缩的并发应用程序。更进一步,我们将探讨并发编程中的常见陷阱,如死锁(Deadlock)、活锁(Livelock)、竞态条件(Race Condition)等,以及如何有效地避免和解决这些问题。 JIT编译器与性能加速:理解JIT编译器如何将Java字节码动态编译为本地机器码,以及它如何通过热点代码分析(Hot Spot Analysis)来优化程序执行。我们将探讨即时编译器的不同阶段(C1, C2)以及它们对性能的影响。 现代Java开发实践与高级主题 本书将带领读者进入现代Java开发的前沿: Lambda表达式与函数式编程:Java 8引入的Lambda表达式极大地简化了匿名内部类的编写,并为函数式编程风格奠定了基础。本书将深入讲解Lambda表达式的语法、捕获变量、以及如何在Stream API中使用Lambda来编写声明式的、更具表现力的代码。我们将展示如何利用Stream API进行集合的过滤、映射、规约等操作,并探讨其背后的延迟计算和短路求值等优化机制。 Stream API的深度运用:Stream API是Java处理集合数据的强大工具。本书将超越简单的使用,深入探讨Stream的惰性求值、并行流(Parallel Streams)的原理与适用场景,以及如何构建复杂的流管道。我们将分析Stream API在性能上的优势与潜在的陷阱,并提供实际的代码示例来展示其在数据处理、分析等场景中的应用。 模块化(Project Jigsaw):Java 9引入的模块化系统(JPMS)旨在解决Java SE平台的碎片化问题,并提高应用程序的可维护性和安全性。本书将详细介绍Java模块的概念、`module-info.java`文件的编写、模块间的依赖声明、以及如何将大型应用程序分解为更小的、可管理的模块。我们将探讨模块化对类加载、访问控制以及平台可扩展性的影响。 并发工具与框架:除了`java.util.concurrent`包,我们还将探讨一些更高级的并发工具和框架,例如Java的CompletableFuture API,它提供了更灵活、更强大的异步编程能力。我们将展示如何使用`CompletableFuture`来组合和链接异步操作,以及它如何有效地处理回调和异常。 Java语言的演进与新特性:Java语言在不断发展,新版本不断带来令人兴奋的特性。本书将重点关注Java 8、Java 11(LTS)、Java 17(LTS)等关键版本引入的重要特性,例如: Records (Java 14+):用于创建不可变数据载体的简洁语法。 Sealed Classes (Java 15+):限制一个类或接口可以被哪些类继承或实现,提供更精细的继承控制。 Pattern Matching for `instanceof` (Java 16+):简化了类型检查和变量声明的组合。 Text Blocks (Java 15+):简化了多行字符串的编写。 Virtual Threads (Project Loom, Java 19/21+):为构建高吞吐量、低延迟的并发应用程序提供了革命性的新方式,将极大地简化并发编程的复杂性。 架构与设计思维 本书不仅关注语言特性,更强调如何在实际项目中应用这些知识来构建高质量的软件系统。我们将探讨: 面向服务的架构(SOA)与微服务:Java在构建大规模分布式系统方面扮演着核心角色。本书将涉及如何利用Spring Boot、Spring Cloud等框架来构建和部署微服务,以及相关的服务注册、发现、配置中心、API网关等概念。 领域驱动设计(DDD):理解DDD的核心原则,如限界上下文(Bounded Context)、聚合(Aggregate)、实体(Entity)、值对象(Value Object)等,并探讨如何在Java中实现这些概念,以构建更贴近业务的软件模型。 性能与可伸缩性设计:本书将贯穿始终地强调性能与可伸缩性的重要性,并提供在架构层面和代码层面进行优化的建议。 学习本书的预期收获 完成本书的学习后,您将能够: 深入理解Java虚拟机(JVM)的内部机制,并具备分析和优化JVM性能的能力。 熟练运用Java的并发特性,设计和实现高效、可靠的多线程应用程序。 掌握Lambda表达式和Stream API,以更简洁、更富有表现力的方式处理数据。 理解Java模块化系统的原理和应用,并能够将其用于构建更具可维护性的项目。 熟悉Java语言近年来的重要更新和新特性,并了解它们如何提升开发效率和代码质量。 具备应用Java进行复杂系统设计和开发的架构思维。 能够独立分析和解决Java程序中的性能瓶颈和复杂问题。 本书适合有一定Java基础,希望提升自身技术深度,掌握Java高级特性,并能胜任更具挑战性开发工作的程序员、技术主管以及对Java底层原理和现代开发实践感兴趣的读者。它将帮助您从“会用Java”迈向“精通Java”,成为一名更具竞争力的软件工程师。