Java SE8 程序设计(第3版 英文版)

Java SE8 程序设计(第3版 英文版) pdf epub mobi txt 电子书 下载 2025

[美] Paul Deitel(保罗·戴特尔),Harvey Deitel(哈维·戴特尔) 著
图书标签:
  • Java
  • Java SE8
  • Programming
  • Computer Science
  • Software Development
  • English Edition
  • 3rd Edition
  • Tutorial
  • Reference
  • IT
  • Books
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121273278
版次:3
商品编码:11902956
品牌:Broadview
包装:平装
丛书名: 原味精品书系
开本:16开
出版时间:2016-03-01
用纸:胶版纸
页数:1084
正文语种:英文

具体描述

产品特色

内容简介

  《Java SE8 程序设计(第3版)英文版》沿用了Deitel特色的“程序实况解说”,深入探讨了Java编程语言和JavaAPI。通过完整的语法着色、代码高亮、逐行代码的演练和程序输出,全面地介绍了测试程序的概念。《Java SE8 程序设计(第3版)英文版》中首先介绍了使用早期Java类和对象的方法,然后迅速转移到更高级的主题,包括GUI、图形、异常处理、Lambda表达式、数据流、功能接口、对象序列化、并发性、泛型、泛型集合、JDBC等。《Java SE8 程序设计(第3版)英文版》包含数百个完整的Java可运行示例、数千行成熟的Java代码,总结出许多程序开发技巧,帮助你建立强大的应用程序。
  《Java SE8 程序设计(第3版)英文版》适合具有一定高级语言编程背景的程序员阅读。

作者简介

  Paul Deitel,Deitel & Associates有限公司的CEO兼CTO,毕业于麻省理工学院,主修信息技术。他获得了Java认证程序员和Java认证开发员称号,并且是一名Oracle Java冠军程序员。在Deitel & Associate有限公司工作的过程中,他已经为世界各地的客户提供了数百节编程课程,这些客户包括思科、IBM、西门子、Sun Microsystems、戴尔、Fidelity、肯尼迪航天中心、美国国家强风暴实验室、白沙导弹试验场、Rogue Wave Software、波音公司、SunGard Higher Education、北电网络公司、彪马、iRobot、Invensys等。他和本书的合著者Harvey M. Deitel博士是全球畅销编程语言教材、专业书籍和视频的作者。

  Harvey Deitel博士,Deitel & Associates有限公司的董事长和首席战略官,在计算机领域拥有50多年的经验。Deitel博士获得了麻省理工学院电子工程专业的学士和硕士学位,并获得了波士顿大学的数学博士学位。他拥有丰富的大学教学经验,在1991年与儿子Paul Deitel创办Deitel & Associates有限公司之前,他是波士顿大学计算机科学系的主任并获得了终身任职权。Deitel的出版物获得了国际上的认可,并被翻译为日语、德语、俄语、西班牙语、法语、波兰语、意大利语、简体中文、繁体中文、韩语、葡萄牙语、希腊语、乌尔都语和土耳其语出版。Deitel博士为很多大公司、学术研究机构、政府机关和军方提供了数百场专业编程讲座。

目录

推荐序
前言
阅读本书之前的准备
1 Introduction to Java and Test-Driving a Java Application
1.1 Introduction
1.2 Object Technology Concepts
1.2.1 The Automobile as an Object
1.2.2 Methods and Classes
1.2.3 Instantiation
1.2.4 Reuse
1.2.5 Messages and Method Calls
1.2.6 Attributes and Instance Variables
1.2.7 Encapsulation and Information Hiding
1.2.8 Inheritance
1.2.9 Interfaces
1.2.10 Object-Oriented Analysis and Design (OOAD)
1.2.11 The UML (Unified Modeling Language)
1.3 Open Source Software
1.4 Java
1.5 A Typical Java Development Environment
1.6 Test-Driving a Java Application
1.7 Software Technologies
1.8 Keeping Up-to-Date with Information Technologies
2 Introduction to Java Applications; Input/Output and Operators
2.1 Introduction
2.2 Your First Program in Java: Printing a Line of Text
2.3 Modifying Your First Java Program
2.4 Displaying Text with printf
2.5 Another Application: Adding Integers
2.6 Arithmetic
2.7 Decision Making: Equality and Relational Operators
2.8 Wrap-Up
3 Introduction to Classes, Objects, Methods and Strings
3.1 Introduction
3.2 Instance Variables, set Methods and get Methods
3.2.1 Account Class with an Instance Variable, a set Method and a get Method
3.2.2 AccountTest Class That Creates and Uses an Object of Class Account
3.2.3 Compiling and Executing an App with Multiple Classes
3.2.4 Account UML Class Diagram with an Instance Variable and set and get Methods
3.2.5 Additional Notes on Class AccountTest
3.2.6 Software Engineering with private Instance Variables and public set and get Methods
3.3 Primitive Types vs. Reference Types
3.4 Account Class: Initializing Objects with Constructors
3.4.1 Declaring an Account Constructor for Custom Object Initialization
3.4.2 Class AccountTest : Initializing Account Objects When They’re Created
3.5 Account Class with a Balance; Floating-Point Numbers
3.5.1 Account Class with a balance Instance Variable of Type double
3.5.2 AccountTest Class to Use Class Account
3.6 Wrap-Up
4 Control Statements: Part 1; Assignment, ++ and -- Operators
4.1 Introduction
4.2 Control Structures
4.3 if Single-Selection Statement
4.4 if … else Double-Selection Statement
4.5 Student Class: Nested if … else Statements
4.6 while Repetition Statement
4.7 Counter-Controlled Repetition
4.8 Sentinel-Controlled Repetition
4.9 Nested Control Statements
4.10 Compound Assignment Operators
4.11 Increment and Decrement Operators
4.12 Primitive Types
4.13 Wrap-Up
5 Control Statements: Part 2; Logical Operators
5.1 Introduction
5.2 Essentials of Counter-Controlled Repetition
5.3 for Repetition Statement
5.4 Examples Using the for Statement
5.5 do … while Repetition Statement
5.6 switch Multiple-Selection Statement
5.7 Class AutoPolicy Case Study: String s in switch Statements
5.8 break and continue Statements
5.9 Logical Operators
5.10 Wrap-Up
6 Methods: A Deeper Look
6.1 Introduction
6.2 Program Modules in Java
6.3 static Methods, static Fields and Class Math
6.4 Declaring Methods with Multiple Parameters
6.5 Notes on Declaring and Using Methods
6.6 Argument Promotion and Casting
6.7 Java API Packages
6.8 Case Study: Secure Random-Number Generation
6.9 Case Study: A Game of Chance; Introducing enum Types
6.10 Scope of Declarations
6.11 Method Overloading
6.12 Wrap-Up
7 Arrays and ArrayLists
7.1 Introduction
7.2 Arrays
7.3 Declaring and Creating Arrays
7.4 Examples Using Arrays
7.4.1 Creating and Initializing an Array
7.4.2 Using an Array Initializer
7.4.3 Calculating the Values to Store in an Array
7.4.4 Summing the Elements of an Array
7.4.5 Using Bar Charts to Display Array Data Graphically
7.4.6 Using the Elements of an Array as Counters
7.4.7 Using Arrays to Analyze Survey Results
7.5 Exception Handling: Processing the Incorrect Response
7.5.1 The try Statement
7.5.2 Executing the catch Block
7.5.3 toString Method of the Exception Parameter
7.6 Case Study: Card Shuffling and Dealing Simulation
7.7 Enhanced for Statement
7.8 Passing Arrays to Methods
7.9 Pass-By-Value vs. Pass-By-Reference
7.10 Case Study: Class GradeBook Using an Array to Store Grades
7.11 Multidimensional Arrays
7.12 Case Study: Class GradeBook Using a Two-Dimensional Array
7.13 Variable-Length Argument Lists
7.14 Using Command-Line Arguments
7.15 Class Arrays
7.16 Introduction to Collections and Class ArrayList
7.17 Wrap-Up
8 Classes and Objects: A Deeper Look
8.1 Introduction
8.2 Time Class Case Study
8.3 Controlling Access to Members
8.4 Referring to the Current Object’s Members with the this Reference
8.5 Time Class Case Study: Overloaded Constructors
8.6 Default and No-Argument Constructors
8.7 Notes on Set and Get Methods
8.8 Composition
8.9 enum Types
8.10 Garbage Collection
8.11 static Class Members
8.12 static Import
8.13 final Instance Variables
8.14 Time Class Case Study: Creating Packages
8.15 Package Access
8.16 Using BigDecimal for Precise Monetary Calculations
8.17 Wrap-Up
9 Object-Oriented Programming: Inheritance
9.1 Introduction
9.2 Superclasses and Subclasses
9.3 protected Members
9.4 Relationship Between Superclasses and Subclasses
9.4.1 Creating and Using a CommissionEmployee Class
9.4.2 Creating and Using a BasePlusCommissionEmployee Class
9.4.3 Creating a CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy
9.4.4 CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables
9.4.5 CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables
9.5 Constructors in Subclasses
9.6 Class Object
9.7 Wrap-Up
10 Object-Oriented Programming: Polymorphism and Interfaces
10.1 Introduction
10.2 Polymorphism Examples
10.3 Demonstrating Polymorphic Behavior
10.4 Abstract Classes and Methods
10.5 Case Study: Payroll System Using Polymorphism
10.5.1 Abstract Superclass Employee
10.5.2 Concrete Subclass SalariedEmployee
10.5.3 Concrete Subclass HourlyEmployee
10.5.4 Concrete Subclass CommissionEmployee
10.5.5 Indirect Concrete Subclass BasePlusCommissionEmployee
10.5.6 Polymorphic Processing, Operator instanceof and Downcasting
10.6 Allowed Assignments Between Superclass and Subclass Variables
10.7 final Methods and Classes
10.8 A Deeper Explanation of Issues with Calling Methods from Constructors
10.9 Creating and Using Interfaces
10.9.1 Developing a Payable Hierarchy
10.9.2 Interface Payable
10.9.3 Class Invoice
10.9.4 Modifying Class Employee to Implement Interface Payable
10.9.5 Modifying Class SalariedEmployee for Use in the Payable Hierarchy
10.9.6 Using Interface Payable to Process Invoice s and Employees Polymorphically
10.9.7 Some Common Interfaces of the Java API
10.10 Java SE 8 Interface Enhancements
10.10.1 default Interface Methods
10.10.2 static Interface Methods
10.10.3 Functional Interfaces
10.11 Wrap-Up
11 Exception Handling: A Deeper Look
11.1 Introduction
11.2 Example: Divide by Zero without Exception Handling
11.3 Exception Handling: ArithmeticExceptions and InputMismatchExceptions
11.4 When to Use Exception Handling
11.5 Java Exception Hierarchy
11.6 finally Block
11.7 Stack Unwinding and Obtaining Information from an Exception Object 322
11.8 Chained Exceptions
11.9 Declaring New Exception Types
11.10 Preconditions and Postconditions
11.11 Assertions
11.12 try -with-Resources: Automatic Resource Deallocation
11.13 Wrap-Up
12 Swing GUI Components: Part
12.1 Introduction
12.2 Java’s Nimbus Look-and-Feel
12.3 Simple GUI-Based Input/Output with JOptionPane
12.4 Overview of Swing Components
12.5 Displaying Text and Images in a Window
12.6 Text Fields and an Introduction to Event Handling with Nested Classes
12.7 Common GUI Event Types and Listener Interfaces
12.8 How Event Handling Works
12.9 JButton
12.10 Buttons That Maintain State
12.10.1 JCheckBox
12.10.2 JRadioButton
12.11 JComboBox ; Using an Anonymous Inner Class for Event Handling
12.12 JList
12.13 Multiple-Selection Lists
12.14 Mouse Event Handling
12.15 Adapter Classes
12.16 JPanel Subclass for Drawing with the Mouse
12.17 Key Event Handling
12.18 Introduction to Layout Managers
12.18.1 FlowLayout
12.18.2 BorderLayout
12.18.3 GridLayout
12.19 Using Panels to Manage More Complex Layouts
12.20 JTextArea
12.21 Wrap-Up
13 Graphics and Java 2D
13.1 Introduction
13.2 Graphics Contexts and Graphics Objects
13.3 Color Control
13.4 Manipulating Fonts
13.5 Drawing Lines, Rectangles and Ovals
13.6 Drawing Arcs
13.7 Drawing Polygons and Polylines
13.8 Java 2D API
13.9 Wrap-Up
14 Strings, Characters and Regular Expressions
14.1 Introduction
14.2 Fundamentals of Characters and Strings
14.3 Class String
14.3.1 String Constructors
14.3.2 String Methods length , charAt and getChars
14.3.3 Comparing Strings
14.3.4 Locating Characters and Substrings in Strings
14.3.5 Extracting Substrings from Strings
14.3.6 Concatenating Strings
14.3.7 Miscellaneous String Methods
14.3.8 String Method valueOf
14.4 Class StringBuilder
14.4.1 StringBuilder Constructors
14.4.2 StringBuilder Methods length , capacity , setLength and ensureCapacity
14.4.3 StringBuilder Methods charAt , setCharAt , getChars and reverse
14.4.4 StringBuilder append Methods
14.4.5 StringBuilder Insertion and Deletion Methods
14.5 Class Character
14.6 Tokenizing String s
14.7 Regular Expressions, Class Pattern and Class Matcher
14.8 Wrap-Up
15 Files, Streams and Object Serialization
15.1 Introduction
15.2 Files and Streams
15.3 Using NIO Classes and Interfaces to Get File and Directory Information
15.4 Sequential-Access Text Files
15.4.1 Creating a Sequential-Access Text File
15.4.2 Reading Data from a Sequential-Access Text File
15.4.3 Case Study: A Credit-Inquiry Program
15.4.4 Updating Sequential-Access Files
15.5 Object Serialization
15.5.1 Creating a Sequential-Access File Using Object Serialization
15.5.2 Reading and Deserializing Data from a Sequential-Access File
15.6 Opening Files with JFileChooser
15.7 (Optional) Additional java.io Classes
15.7.1 Interfaces and Classes for Byte-Based Input and Output
15.7.2 Interfaces and Classes for Character-Based Input and Output
15.8 Wrap-Up
16 Generic Collections
16.1 Introduction
16.2 Collections Overview
16.3 Type-Wrapper Classes
16.4 Autoboxing and Auto-Unboxing
16.5 Interface Collection and Class Collections
16.6 Lists
16.6.1 ArrayList and Iterator
16.6.2 LinkedList
16.7 Collections Methods
16.7.1 Method sort
16.7.2 Method shuffle
16.7.3 Methods reverse , fill , copy , max and min
16.7.4 Method binarySearch
16.7.5 Methods addAll , frequency and disjoint
16.8 Stack Class of Package java.util
16.9 Class PriorityQueue and Interface Queue
16.10 Sets
16.11 Maps
16.12 Properties Class
16.13 Synchronized Collections
16.14 Unmodifiable Collections
16.15 Abstract Implementations
16.16 Wrap-Up
17 Java SE 8 Lambdas and Streams
17.1 Introduction
17.2 Functional Programming Technologies Overview
17.2.1 Functional Interfaces
17.2.2 Lambda Expressions
17.2.3 Streams
17.3 IntStream Operations
17.3.1 Creating an IntStream and Displaying Its Values with the forEach Terminal Operation
17.3.2 Terminal Operations count , min , max , sum and average
17.3.3 Terminal Operation reduce
17.3.4 Intermediate Operations: Filtering and Sorting IntStream Values
17.3.5 Intermediate Operation: Mapping
17.3.6 Creating Streams of int s with IntStream Methods range and rangeClosed
17.4 Stream<Integer> Manipulations
17.4.1 Creating a Stream<Integer>
17.4.2 Sorting a Stream and Collecting the Results
17.4.3 Filtering a Stream and Storing the Results for Later Use
17.4.4 Filtering and Sorting a Stream and Collecting the Results
17.4.5 Sorting Previously Collected Results
17.5 Stream<String> Manipulations
17.5.1 Mapping String s to Uppercase Using a Method Reference
17.5.2 Filtering String s Then Sorting Them in Case-Insensitive Ascending Order
17.5.3 Filtering String s Then Sorting Them in Case-Insensitive Descending Order
17.6 Stream<Employee> Manipulations
17.6.1 Creating and Displaying a List<Employee>
17.6.2 Filtering Employee s with Salaries in a Specified Range
17.6.3 Sorting Employee s By Multiple Fields
17.6.4 Mapping Employee s to Unique Last Name String s
17.6.5 Grouping Employee s By Department
17.6.6 Counting the Number of Employee s in Each Department
17.6.7 Summing and Averaging Employee Salaries
17.7 Creating a Stream<String> from a File
17.8 Generating Streams of Random Values
17.9 Lambda Event Handlers
17.10 Additional Notes on Java SE 8 Interfaces
17.11 Java SE 8 and Functional Programming Resources
17.12 Wrap-Up
18 Generic Classes and Methods
18.1 Introduction
18.2 Motivation for Generic Methods
18.3 Generic Methods: Implementation and Compile-Time Translation
18.4 Additional Compile-Time Translation Issues: Methods That Use a Type Parameter as the Return Type
18.5 Overloading Generic Methods
18.6 Generic Classes
18.7 Raw Types
18.8 Wildcards in Methods That Accept Type Parameters
18.9 Wrap-Up
19 Swing GUI Components: Part
19.1 Introduction
19.2 JSlider
19.3 Understanding Windows in Java
19.4 Using Menus with Frames
19.5 JPopupMenu
19.6 Pluggable Look-and-Feel
19.7 JDesktopPane and JInternalFrame
19.8 JTabbedPane
19.9 BoxLayout Layout Manager
19.10 GridBagLayout Layout Manager
19.11 Wrap-Up
20 Concurrency
20.1 Introduction
20.2 Thread States and Life Cycle
20.2.1 New and Runnable States
20.2.2 Waiting State
20.2.3 Timed Waiting State
20.2.4 Blocked State
20.2.5 Terminated State
20.2.6 Operating-System View of the Runnable State
20.2.7 Thread Priorities and Thread Scheduling
20.2.8 Indefinite Postponement and Deadlock
20.3 Creating and Executing Threads with the Executor Framework
20.4 Thread Synchronization
20.4.1 Immutable Data
20.4.2 Monitors
20.4.3 Unsynchronized Mutable Data Sharing
20.4.4 Synchronized Mutable Data Sharing―Making Operations Atomic
20.5 Producer/Consumer Relationship without Synchronization
20.6 Producer/Consumer Relationship: ArrayBlockingQueue
20.7 (Advanced) Producer/Consumer Relationship with synchronized , wait , notify and notifyAll
20.8 (Advanced) Producer/Consumer Relationship: Bounded Buffers
20.9 (Advanced) Producer/Consumer Relationship: The Lock and Condition Interfaces
20.10 Concurrent Collections
20.11 Multithreading with GUI: SwingWorker
20.11.1 Performing Computations in a Worker Thread: Fibonacci Numbers
20.11.2 Processing Intermediate Results: Sieve of Eratosthenes
20.12 sort / parallelSort Timings with the Java SE 8 Date/Time API
20.13 Java SE 8: Sequential vs. Parallel Streams
20.14 (Advanced) Interfaces Callable and Future
20.15 (Advanced) Fork/Join Framework
20.16 Wrap-Up
21 Accessing Databases with JDBC
21.1 Introduction
21.2 Relational Databases
21.3 A books Database
21.4 SQL
21.4.1 Basic SELECT Query
21.4.2 WHERE Clause
21.4.3 ORDER BY Clause
21.4.4 Merging Data from Multiple Tables: INNER JOIN
21.4.5 INSERT Statement
21.4.6 UPDATE Statement
21.4.7 DELETE Statement
21.5 Setting up a Java DB Database
21.5.1 Creating the Chapter’s Databases on Windows
21.5.2 Creating the Chapter’s Databases on Mac OS X
21.5.3 Creating the Chapter’s Databases on Linux
21.6 Manipulating Databases with JDBC
21.6.1 Connecting to and Querying a Database
21.6.2 Querying the books Database
21.7 RowSet Interface
21.8 PreparedStatement s
21.9 Stored Procedures
21.10 Transaction Processing
21.11 Wrap-Up
22 JavaFX GUI
22.1 Introduction
22.2 JavaFX Scene Builder and the NetBeans IDE
22.3 JavaFX App Window Structure
22.4 Welcome App―Displaying Text and an Image
22.4.1 Creating the App’s Project
22.4.2 NetBeans Projects Window―Viewing the Project Contents
22.4.3 Adding an Image to the Project
22.4.4 Opening JavaFX Scene Builder from NetBeans
22.4.5 Changing to a VBox Layout Container
22.4.6 Configuring the VBox Layout Container
22.4.7 Adding and Configuring a Label
22.4.8 Adding and Configuring an ImageView
22.4.9 Running the Welcome App
22.5 Tip Calculator App―Introduction to Event Handling
22.5.1 Test-Driving the Tip Calculator App
22.5.2 Technologies Overview
22.5.3 Building the App’s GUI
22.5.4 TipCalculator Class
22.5.5 TipCalculatorController Class
22.6 Wrap-Up
23 ATM Case Study, Part 1: Object-Oriented Design with the UML
23.1 Case Study Introduction
23.2 Examining the Requirements Document
23.3 Identifying the Classes in a Requirements Document
23.4 Identifying Class Attributes
23.5 Identifying Objects’ States and Activities
23.6 Identifying Class Operations
23.7 Indicating Collaboration Among Objects
23.8 Wrap-Up
24 ATM Case Study Part 2: Implementing an Object-Oriented Design
24.1 Introduction
24.2 Starting to Program the Classes of the ATM System
24.3 Incorporating Inheritance and Polymorphism into the ATM System
24.4 ATM Case Study Implementation
24.4.1 Class ATM
24.4.2 Class Screen
24.4.3 Class Keypad
24.4.4 Class CashDispenser
24.4.5 Class DepositSlot
24.4.6 Class Account
24.4.7 Class BankDatabase
24.4.8 Class Transaction
24.4.9 Class BalanceInquiry
24.4.10 Class Withdrawal
24.4.11 Class Deposit
24.4.12 Class ATMCaseStudy
24.5 Wrap-Up
A Operator Precedence Chart
B ASCII Character Set
C Keywords and Reserved Words
D Primitive Types
E Using the Debugger
E.1 Introduction
E.2 Breakpoints and the run , stop , cont and print Commands
E.3 The print and set Commands
E.4 Controlling Execution Using the step , step up and next Commands
E.5 The watch Command
E.6 The clear Command
E.7 Wrap-Up
F Using the Java API Documentation
F.1 Introduction
F.2 Navigating the Java API
G Creating Documentation with javadoc
G.1 Introduction
G.2 Documentation Comments
G.3 Documenting Java Source Code
G.4 javadoc
G.5 Files Produced by javadoc
H Unicode?
H.1 Introduction
H.2 Unicode Transformation Formats
H.3 Characters and Glyphs
H.4 Advantages/Disadvantages of Unicode
H.5 Using Unicode
H.6 Character Ranges
I Formatted Output
I.1 Introduction
I.2 Streams
I.3 Formatting Output with printf
I.4 Printing Integers
I.5 Printing Floating-Point Numbers
I.6 Printing Strings and Characters
I.7 Printing Dates and Times
I.8 Other Conversion Characters
I.9 Printing with Field Widths and Precisions
I.10 Using Flags in the printf Format String
I.11 Printing with Argument Indices
I.12 Printing Literals and Escape Sequences
I.13 Formatting Output with Class Formatter
I.14 Wrap-Up
J Number Systems
J.1 Introduction
J.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
J.3 Converting Octal and Hexadecimal Numbers to Binary Numbers
J.4 Converting from Binary, Octal or Hexadecimal to Decimal
J.5 Converting from Decimal to Binary, Octal or Hexadecimal
J.6 Negative Binary Numbers: Two’s Complement Notation
K Bit Manipulation
K.1 Introduction
K.2 Bit Manipulation and the Bitwise Operators
K.3 BitSet Class
L Labeled break and continue Statements
L.1 Introduction
L.2 Labeled break Statement
L.3 Labeled continue Statement
M UML 2: Additional Diagram Types
M.1 Introduction
M.2 Additional Diagram Types
N Design Patterns
N.1 Introduction
N.2 Creational, Structural and Behavioral Design Patterns
N.2.1 Creational Design Patterns
N.2.2 Structural Design Patterns
N.2.3 Behavioral Design Patterns
N.2.4 Conclusion
N.3 Design Patterns in Packages java.awt and javax.swing
N.3.1 Creational Design Patterns
N.3.2 Structural Design Patterns
N.3.3 Behavioral Design Patterns
N.3.4 Conclusion
N.4 Concurrency Design Patterns
N.5 Design Patterns Used in Packages java.io and java.net
N.5.1 Creational Design Patterns
N.5.2 Structural Design Patterns
N.5.3 Architectural Patterns
N.5.4 Conclusion
N.6 Design Patterns Used in Package java.util
N.6.1 Creational Design Patterns
N.6.2 Behavioral Design Patterns
N.7 Wrap-Up
Index

前言/序言


经典再版,深入剖析Java SE 8核心概念与实践 《Java SE 8程序设计(第3版)》 是一部精心打磨的著作,专为希望精通Java SE 8核心概念并将其转化为实际应用开发技能的程序员量身打造。本书以其清晰的逻辑、详实的讲解以及丰富的实践案例,赢得了广泛赞誉。第三版在内容上进行了全面更新和深化,不仅覆盖了Java SE 8最重要的新特性,更对Java语言的底层机制和设计哲学进行了深入的探索,旨在帮助读者建立坚实、全面的Java编程基础。 本书的结构设计十分精巧,从基础概念入手,循序渐进地引导读者理解Java语言的方方面面。开篇即深入探讨了Java程序设计的基石——面向对象编程(OOP)的精髓。本书详细阐述了封装、继承和多态这三大核心概念,并通过大量清晰易懂的示例,展示了如何在实际开发中有效地运用它们来构建模块化、可维护和可扩展的代码。读者将学习如何设计类,理解对象之间的关系,并掌握利用接口和抽象类实现灵活设计的技巧。对于初学者而言,本书能够帮助他们快速建立起对面向对象思想的正确认知;对于有一定经验的开发者,本书则能帮助他们回顾和巩固这些 foundational principles,并对其有更深刻的理解。 随着面向对象概念的深入,本书将目光投向了Java语言更强大的特性。其中,Lambda表达式和Stream API是Java SE 8最引人注目的革新,本书为此投入了大量篇幅进行详细介绍。读者将学习Lambda表达式简洁而强大的语法,理解函数式接口的作用,并掌握如何使用Lambda表达式来简化匿名内部类的使用,从而编写出更具表现力的代码。紧接着,本书将引导读者踏入Stream API的世界,深入理解流的概念,学习如何对数据集合进行声明式、并行化的处理。从过滤、映射到规约,本书全面覆盖了Stream API的常用操作,并提供了大量实用示例,展示如何利用Stream API高效地处理数据,提升程序性能。通过对这些新特性的深入学习,读者将能够编写出更简洁、更高效,并且更易于维护的Java代码,紧跟现代Java开发的步伐。 除了Lambda表达式和Stream API,本书还系统地介绍了Java SE 8的其他重要特性。Optional类的引入,为处理可能为空的对象提供了一种更加健壮和声明式的方式,本书将详细讲解Optional的各种操作,以及它如何帮助开发者避免NullPointerException,从而提高代码的稳定性和可读性。日期与时间API(JSR 310)的重大改进,也得到了本书的详尽阐述。读者将学习如何使用新的`java.time`包来处理日期、时间、时区以及持续时间,告别旧API的诸多不便,掌握现代化的日期时间处理方式。 本书对Java内存模型和垃圾回收机制的讲解同样细致入微。理解内存是如何被管理,以及垃圾回收器是如何工作的,对于写出高效、低内存占用的Java程序至关重要。本书将深入剖析JVM的内存区域划分,例如堆、栈、方法区等,并详细介绍垃圾回收的各种算法和垃圾回收器的实现原理。通过这些讲解,读者能够更清晰地认识到代码中的哪些模式可能导致内存泄漏,以及如何编写更优化的代码以减少垃圾回收的负担,从而提升程序的性能和稳定性。 在并发编程方面,本书也进行了深入的探讨。Java提供了强大的并发工具,本书将引导读者理解线程的创建与管理,学习如何使用`synchronized`关键字、`Lock`接口等同步机制来保护共享资源,避免数据竞争和死锁。同时,本书还将介绍Java并发包(`java.util.concurrent`)中的高级并发类,如`ExecutorService`、`Future`、`ConcurrentHashMap`等,帮助读者构建高效、可靠的并发应用程序。通过对并发编程的全面理解,读者将能够充分利用多核处理器的优势,开发出高性能的并发系统。 除了语言本身的特性,本书还非常注重实践的应用。每一个概念的讲解都伴随着精心设计的代码示例,这些示例不仅能够帮助读者理解抽象的理论,更能展示如何在实际开发场景中应用这些知识。从简单的控制台应用程序到更复杂的桌面应用,本书的示例覆盖了多种应用类型,让读者能够将所学知识融会贯通。此外,本书还包含了一些贯穿全书的综合性项目,通过这些项目,读者可以逐步构建一个完整的应用程序,从而在实践中巩固所学的Java SE 8编程技巧。 本书的语言风格严谨而清晰,避免了不必要的术语堆砌,力求让每一个概念都易于理解。作者在内容组织上煞费苦心,确保知识点的逻辑连贯性,让读者在学习过程中不会感到迷茫。对于遇到的复杂概念,本书会通过图示、类比等多种方式进行解释,直至读者能够完全掌握。 总而言之,《Java SE 8程序设计(第3版)》 是一部不可多得的Java SE 8学习指南。它不仅是学习Java SE 8新特性和语言核心的宝典,更是提升Java开发实战能力的有力工具。无论您是初入Java编程的学子,还是希望精进技艺的资深开发者,本书都将是您通往Java SE 8精通之路的理想伴侣。它将帮助您构建坚实的Java基础,掌握现代Java开发的先进理念和技术,从而在日益激烈的技术竞争中脱颖而出。通过本书的学习,您将能够自信地运用Java SE 8来设计和实现各种复杂的应用程序,为您的职业生涯开启新的篇章。

用户评价

评分

作为一名资深的Java工程师,我一直秉持着对技术精益求精的态度。这本书的英文原版,确实在技术深度和广度上都达到了相当的高度。作者在讲解Java SE 8的核心特性时,并非流于表面,而是深入到了底层原理和设计哲学。例如,对于Lambda表达式的解析,不仅仅是介绍语法,还详细阐述了函数式接口、方法引用等概念,以及它们在JVM层面是如何实现的。Stream API的部分更是精彩纷呈,作者不仅展示了如何使用Stream进行数据处理,还深入探讨了其背后的惰性求值、短路操作等机制,以及如何通过并行Stream来提升性能。让我印象深刻的是,书中还花了相当篇幅讲解了CompletableFuture,并提供了大量关于如何构建复杂异步流程的实际案例,这对于我处理高并发、分布式系统非常有帮助。此外,书中对于Java内存模型、垃圾回收机制的阐述也同样深入,让我对Java的底层运行机制有了更清晰的认识。这本书是一本值得反复研读的著作,每一次阅读都能从中获得新的启发。

评分

我一直认为,要真正掌握一门编程语言,就必须理解其演进的过程和核心的设计理念。这本书,正是这样一本能够帮助我实现这一目标的好书。它不仅仅是Java SE 8特性的罗列,更像是对Java语言的一次深入剖析。作者通过对Lambda表达式、Stream API等新特性的讲解,让我看到了Java如何拥抱函数式编程的趋势,以及这些新特性如何与传统的面向对象编程思想相融合。我特别喜欢书中对Optional类的讲解,它为解决Java中常见的空指针问题提供了一种优雅且更具表达力的方式,让我重新思考了代码的可空性设计。此外,书中对并发编程的深入探讨,让我对Java的线程模型、锁机制有了更深刻的理解,并学会了如何利用CompletableFuture等工具来构建更高效、更健壮的并发应用。这本书让我意识到,学习Java不仅仅是学习语法,更重要的是理解其设计哲学和最佳实践,而这本书正是做到了这一点。

评分

作为一个在Java领域摸爬滚打了好几年的开发者,我一直对Java SE 8的函数式编程特性感到好奇,但总是觉得有些晦涩难懂。直到我翻开这本书,才真正感受到它的价值。作者用一种非常直观的方式,将原本复杂的函数式概念拆解开来,让我能够清晰地理解Lambda表达式的语法糖背后所蕴含的函数式编程思想。书中对Stream API的讲解堪称一绝,我学会了如何利用链式操作来处理集合数据,极大地提高了代码的可读性和效率。例如,之前需要好几行代码才能完成的过滤、映射、归约操作,现在只需要一行Stream API代码就能搞定。更重要的是,作者并没有回避实际开发中可能遇到的问题,而是详细地阐述了如何正确地使用这些新特性,避免潜在的陷阱,例如Stream的惰性求值特性以及并行Stream的正确使用时机。这本书也让我对Java的并发模型有了更深刻的认识,尤其是关于CompletableFuture的使用,让我能够更优雅地处理异步操作,构建响应式系统。对于任何希望在Java SE 8时代保持技术领先的开发者来说,这本书绝对是不可或缺的参考。

评分

这本书简直是为那些真正想深入理解Java SE 8核心精髓的人量身打造的。我花了相当多的时间阅读和实践其中的代码示例,感觉自己对Lambda表达式、Stream API、Optional类以及CompletableFuture等新特性的掌握提升了一个全新的台阶。作者并没有止步于简单地罗列这些特性,而是深入探讨了它们背后的设计理念、适用场景以及与其他Java概念的联动。特别是关于Stream API的讲解,让我明白了如何利用函数式编程的思想来编写更加简洁、高效、易于维护的代码,告别了那些冗长的循环和临时变量。书中对并发编程部分的阐述也同样精彩,不仅仅是介绍了Thread和Runnable,更侧重于如何利用Java内存模型和并发工具类来编写健壮的并发程序,有效避免了常见的死锁和竞态条件问题。我特别欣赏作者在讲解复杂概念时,会循序渐进,从基础概念开始,逐步引入高级用法,并且通过大量精心设计的代码片段来佐证理论,使得学习过程既充实又富有启发性。这本书不仅是一本技术手册,更像是一位经验丰富的导师,引领我一步步踏入Java SE 8的深度世界。

评分

我是一名刚刚接触Java SE 8不久的学生,对于新特性感到有些迷茫。这本书就像是为我量身定做的指南针,指引我走出迷雾。作者以一种非常友好的方式,循序渐进地介绍了Java SE 8的各个核心部分。从Lambda表达式的入门,到Stream API的深入应用,再到Optional类的优雅处理空指针异常,我感觉自己每一步都走得很扎实。书中大量的代码示例都经过了精心挑选,易于理解,并且能够直接运行,这对我这个初学者来说帮助太大了。我不再只是死记硬背语法,而是能够真正理解这些新特性背后的逻辑和设计理念。特别让我印象深刻的是,书中对于接口默认方法和静态方法的讲解,让我对接口的灵活性有了全新的认识。同时,对于Optional类的使用,也让我养成了编写更加健壮代码的习惯,有效避免了恼人的NullPointerException。这本书不仅教会了我Java SE 8的知识,更重要的是,它培养了我用一种更现代、更面向对象的方式来思考和编写Java代码的能力。

评分

等等,这书为什么没膜?好在书没啥事

评分

就冲着中文版的渣渣翻译买的原版,内容还不错

评分

不错不错不错?,加油加油加油?、你可以的

评分

学习一下纯英文版的知识顺便提高一下英文水平。

评分

不错,一节一节的,每一节量不是很大,据说翻译的有很多歧义,所以一起买了本英文原版

评分

这类书籍看原版非常有必要。

评分

京东商城,品质保证,物流高效,服务到家,十分给力,超赞一哈!

评分

原版影印,专业性强,有深度,好书。

评分

内容详细,印刷纸张都相当好。就是貌似是二手的,因为没有封胶纸包装。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有