
This is Java
Description
Book Introduction
Reflects the latest JAVA 21 version!
The Java bestseller that has been consistently loved for 9 years, "This is Java," 3rd edition!
Since its first edition was published in 2015, "This is Java" has been widely loved as a true Java textbook and Java bible.
The author's meticulous explanations, which stick to the basics while not missing a single concept, have helped many readers grow into excellent developers.
This revised 『This is Java (3rd Edition)』 is based on the latest Java 21 LTS version, and has supplemented existing content. It guides you through the entire process of object-oriented programming using Java by reflecting the trends and features of each Java LTS version.
This book systematically explains everything from the basics of the Java language to various Java programming techniques using illustrations.
It is also structured so that you can practice sufficiently by following 900 real-world examples.
After reading the book, you will find yourself visualizing the structure and execution flow of Java just by looking at the code.
The Java bestseller that has been consistently loved for 9 years, "This is Java," 3rd edition!
Since its first edition was published in 2015, "This is Java" has been widely loved as a true Java textbook and Java bible.
The author's meticulous explanations, which stick to the basics while not missing a single concept, have helped many readers grow into excellent developers.
This revised 『This is Java (3rd Edition)』 is based on the latest Java 21 LTS version, and has supplemented existing content. It guides you through the entire process of object-oriented programming using Java by reflecting the trends and features of each Java LTS version.
This book systematically explains everything from the basics of the Java language to various Java programming techniques using illustrations.
It is also structured so that you can practice sufficiently by following 900 real-world examples.
After reading the book, you will find yourself visualizing the structure and execution flow of Java just by looking at the code.
- You can preview some of the book's contents.
Preview
index
PART 01 Basics of the Java Language
Chapter 01 Getting Started with Java
1.1 Programming Languages and Java
1.2 Installing JDK for each operating system
1.3 Setting environment variables by operating system
1.4 Bytecode Files and the Java Virtual Machine
1.5 From source code creation to execution
1.6 Installing Eclipse
1.7 Creating an Eclipse Project
1.8 From Eclipse source code creation to execution
1.9 Understanding Code Terminology
1.10 Commenting Code
1.11 Executable statements and semicolons
Verification problem
Chapter 02 Variables and Types
2.1 Variable declaration
2.2 Integer types
2.3 Character Types
2.4 Real Number Type
2.5 Logical Types
2.6 String Type
2.7 Automatic type conversion
2.8 Forced Type Conversion
2.9 Automatic type conversion in expressions
2.10 Converting strings to primitive types
2.11 Variable Usage Scope
2.12 Outputting variable values to the console
2.13 Storing keyboard input data in variables
Verification problem
Chapter 03 Operators
3.1 Sign/Increment/Decrement Operators
3.2 Arithmetic Operators
3.3 Overflow and Underflow
3.4 Accurate calculations are done with integer operations.
3.5 Handling NaN and Infinity after Division Operations
3.6 Comparison Operators
3.7 Logical Operators
3.8 Bitwise Logical Operators
3.9 Bit Shift Operators
3.10 Assignment Operators
3.11 Ternary (conditional) operator
3.12 Direction and Priority of Operations
Verification problem
Chapter 04 Conditional Statements and Loops
4.1 Controlling code execution flow
4.2 if statement
4.3 switch statement
4.4 for statement
4.5 while statement
4.6 do-while statement
4.7 break statement
4.8 continue statement
Verification problem
PART 02 Object-Oriented Programming
Chapter 05 Reference Type
5.1 Data Type Classification
5.2 Memory usage area
5.3 ==, != operations for reference type variables
5.4 null and NullPointerException
5.5 String Type
5.6 Array Type
5.7 Multidimensional Arrays
5.8 Arrays that reference objects
5.9 Array Copy
5.10 Improved for loop for iterating through array items
5.11 Use of the String[ ] parameter in the main( ) method
5.12 Enumeration Type
Verification problem
Chapter 06 Class
6.1 Object-Oriented Programming
6.2 Objects and Classes
6.3 Class Declaration
6.4 Object Creation and Class Variables
6.5 Class Members
6.6 Field declaration and use
6.7 Constructor declaration and call
6.8 Method declaration and call
6.9 Instance Members
6.10 Static Members
6.11 final fields and constants
6.12 Package
6.13 Access modifiers
6.14 Getters and Setters
6.15 Singleton Pattern
Verification problem
Chapter 07 Inheritance
7.1 Inheritance Concept
7.2 Class Inheritance
7.3 Calling the parent constructor
7.4 Method Overrides
7.5 final classes and final methods
7.6 protected access modifier
7.7 Type Conversion
7.8 Polymorphism
7.9 Checking Object Types
7.10 Abstract Classes
7.11 Sealed Class
Verification problem
Chapter 08 Interface
8.1 The Role of Interfaces
8.2 Declaring interfaces and implementing classes
8.3 Constant Fields
8.4 Abstract Methods
8.5 Default Methods
8.6 Static Methods
8.7 Private Methods
8.8 Implementing Multiple Interfaces
8.9 Interface Inheritance
8.10 Type Conversion
8.11 Polymorphism
8.12 Checking Object Types
8.13 Sealed Interface
Verification problem
Chapter 09 Nested Declarations and Anonymous Objects
9.1 Nested Classes
9.2 Instance Member Classes
9.3 Static member classes
9.4 Local Classes
9.5 Accessing External Members
9.6 Nested Interfaces
9.7 Anonymous Objects
Verification problem
Chapter 10 Libraries and Modules
10.1 Library
10.2 Module
10.3 Application Modularization
10.4 JAR file for module distribution
10.5 Package Hiding
10.6 Transition Dependence
10.7 Collection Module
10.8 Allow reflection
10.9 Java Standard Modules
Verification problem
Chapter 11 Exception Handling
11.1 Exceptions and Exception Classes
11.2 Exception Handling Code
11.3 Handling by exception type
11.4 Automatically Closing Resources
11.5 Passing the Exception
11.6 User-defined exceptions
Verification problem
Search
PART 03 Using the Library
Chapter 12 The java.base Module
12.1 API Documentation
12.2 java.base module
12.3 Object Class
12.4 System Class
12.5 String Class
12.6 Packaging Class
12.7 Math Class
12.8 Date and Time Classes
12.9 Format Class
12.10 Regular Expression Class
12.11 Reflection
12.12 Annotation
Verification problem
Chapter 13 Generics
13.1 What is a generic?
13.2 Generic Types
13.3 Generic Methods
13.4 Restricted type parameters
13.5 Wildcard Type Parameters
Verification problem
Chapter 14 Multi-Threading
14.1 Multi-threading Concepts
14.2 Main Thread
14.3 Creating and Executing Worker Threads
14.4 Thread Names
14.5 Thread State
14.6 Thread Synchronization
14.7 Thread-safe termination
14.8 Daemon Threads
14.9 Thread Pool
Verification problem
Chapter 15 Collection Data Structures
15.1 Collection Framework
15.2 List Collection
15.3 Set Collection
15.4 Map Collection
15.5 Collection with enhanced search functionality
15.6 LIFO and FIFO Collections
15.7 Synchronized Collections
15.8 Unmodifiable Collections
Verification problem
Chapter 16 Lambda Expressions
16.1 What is a lambda expression?
16.2 Lambda expressions without parameters
16.3 Lambda expressions with parameters
16.4 Lambda expressions with return values
16.5 Method Reference
16.6 Constructor Reference
Verification problem
Chapter 17 Processing Stream Elements
17.1 What is a stream?
17.2 Internal Iterators
17.3 Intermediate and final processing
17.4 Obtaining a stream from a resource
17.5 Filtering elements
17.6 Element Transformation (Mapping)
17.7 Sorting elements
17.8 Processing elements one by one (looping)
17.9 Whether the element condition is satisfied (matching)
17.10 Element Basic Aggregation
17.11 Element Custom Aggregation
17.12 Element Collection
17.13 Element Parallelism
Verification problem
PART 04 Data Input/Output
Chapter 18 Data Input/Output
18.1 Input/Output Streams
18.2 byte output stream
18.3 byte input stream
18.4 Character Input/Output Streams
18.5 Auxiliary Stream
18.6 Character Conversion Stream
18.7 Performance Improvement Stream
18.8 Basic Type Streams
18.9 Print Stream
18.10 Object Streams
18.11 File and Files Classes
Verification problem
Chapter 19 Network Input/Output
19.1 Network Basics
19.2 Obtaining an IP address
19.3 TCP Networking
19.4 UDP Networking
19.5 Handling Concurrent Requests on the Server
19.6 JSON Data Format
19.7 TCP Chat Program
Verification problem
Chapter 20 Database Input/Output
20.1 JDBC Overview
20.2 DBMS Installation
20.3 Installing the Client Tool
20.4 DB Configuration
20.5 DB Connection
20.6 Data Storage
20.7 Data Modification
20.8 Data Deletion
20.9 Reading Data
20.10 Calling Procedures and Functions
20.11 Transaction Processing
20.12 Bulletin Board Implementation
Verification problem
PART 05 Enhanced Language Features of the Latest Java
Chapter 21 Language and Libraries Enhanced in Java 21
21.1 Enhancements in Java 21
21.2 Local Variable Type Inference
21.3 Null handling in switch statements
21.4 Pattern Matching in Switch Statements
21.5 Record Pattern
21.6 Virtual Threads
21.7 Sequential Collection
21.8 Change the default character set
Search
[supplement]
Appendix 01 Database Input/Output (for MySQL)
20.1 JDBC Overview
20.2 DBMS Installation
20.3 Installing the Client Tool
20.4 DB Configuration
20.5 DB Connection
20.6 Data Storage
20.7 Data Modification
20.8 Data Deletion
20.9 Reading Data
20.10 Transaction Processing
20.11 Bulletin Board Implementation
Appendix 02 Java UI - Swing
01 Introduction to Swing
02 Event Dispatching Thread
03 Swing Container
04 Component placement
05 Event Processing
06 Button Component
07 Text Component
08 List Component
09 Table Components
10 Tree Components
11 Menu Components
12 Toolbar Components
13 Dialogue
14 2D Graphics
15 Swing Challenges
Appendix 03 Java UI - JavaFX
01 JavaFX Overview
02 Creating and Running a JavaFX Project
03 JavaFX Layout
04 JavaFX Container
05 JavaFX Event Handling
06 JavaFX Property Monitoring and Binding
07 JavaFx Controls
08 JavaFX Menu Bar and Toolbar
09 JavaFX Dialog
10 JavaFX CSS Styles
11 JavaFX Thread UI Changes
12 Scene Movement and Animation
13 JavaFX Challenges
Appendix 04 NIO-based I/O and Networking
01 Introduction to NIO
02 Files and Directories
03 Buffer
04 File Input/Output
05 File Asynchronous I/O
06 TCP Network Input/Output
07 TCP Asynchronous Network I/O
08 UDP Network Input/Output
09 NIO Task
Chapter 01 Getting Started with Java
1.1 Programming Languages and Java
1.2 Installing JDK for each operating system
1.3 Setting environment variables by operating system
1.4 Bytecode Files and the Java Virtual Machine
1.5 From source code creation to execution
1.6 Installing Eclipse
1.7 Creating an Eclipse Project
1.8 From Eclipse source code creation to execution
1.9 Understanding Code Terminology
1.10 Commenting Code
1.11 Executable statements and semicolons
Verification problem
Chapter 02 Variables and Types
2.1 Variable declaration
2.2 Integer types
2.3 Character Types
2.4 Real Number Type
2.5 Logical Types
2.6 String Type
2.7 Automatic type conversion
2.8 Forced Type Conversion
2.9 Automatic type conversion in expressions
2.10 Converting strings to primitive types
2.11 Variable Usage Scope
2.12 Outputting variable values to the console
2.13 Storing keyboard input data in variables
Verification problem
Chapter 03 Operators
3.1 Sign/Increment/Decrement Operators
3.2 Arithmetic Operators
3.3 Overflow and Underflow
3.4 Accurate calculations are done with integer operations.
3.5 Handling NaN and Infinity after Division Operations
3.6 Comparison Operators
3.7 Logical Operators
3.8 Bitwise Logical Operators
3.9 Bit Shift Operators
3.10 Assignment Operators
3.11 Ternary (conditional) operator
3.12 Direction and Priority of Operations
Verification problem
Chapter 04 Conditional Statements and Loops
4.1 Controlling code execution flow
4.2 if statement
4.3 switch statement
4.4 for statement
4.5 while statement
4.6 do-while statement
4.7 break statement
4.8 continue statement
Verification problem
PART 02 Object-Oriented Programming
Chapter 05 Reference Type
5.1 Data Type Classification
5.2 Memory usage area
5.3 ==, != operations for reference type variables
5.4 null and NullPointerException
5.5 String Type
5.6 Array Type
5.7 Multidimensional Arrays
5.8 Arrays that reference objects
5.9 Array Copy
5.10 Improved for loop for iterating through array items
5.11 Use of the String[ ] parameter in the main( ) method
5.12 Enumeration Type
Verification problem
Chapter 06 Class
6.1 Object-Oriented Programming
6.2 Objects and Classes
6.3 Class Declaration
6.4 Object Creation and Class Variables
6.5 Class Members
6.6 Field declaration and use
6.7 Constructor declaration and call
6.8 Method declaration and call
6.9 Instance Members
6.10 Static Members
6.11 final fields and constants
6.12 Package
6.13 Access modifiers
6.14 Getters and Setters
6.15 Singleton Pattern
Verification problem
Chapter 07 Inheritance
7.1 Inheritance Concept
7.2 Class Inheritance
7.3 Calling the parent constructor
7.4 Method Overrides
7.5 final classes and final methods
7.6 protected access modifier
7.7 Type Conversion
7.8 Polymorphism
7.9 Checking Object Types
7.10 Abstract Classes
7.11 Sealed Class
Verification problem
Chapter 08 Interface
8.1 The Role of Interfaces
8.2 Declaring interfaces and implementing classes
8.3 Constant Fields
8.4 Abstract Methods
8.5 Default Methods
8.6 Static Methods
8.7 Private Methods
8.8 Implementing Multiple Interfaces
8.9 Interface Inheritance
8.10 Type Conversion
8.11 Polymorphism
8.12 Checking Object Types
8.13 Sealed Interface
Verification problem
Chapter 09 Nested Declarations and Anonymous Objects
9.1 Nested Classes
9.2 Instance Member Classes
9.3 Static member classes
9.4 Local Classes
9.5 Accessing External Members
9.6 Nested Interfaces
9.7 Anonymous Objects
Verification problem
Chapter 10 Libraries and Modules
10.1 Library
10.2 Module
10.3 Application Modularization
10.4 JAR file for module distribution
10.5 Package Hiding
10.6 Transition Dependence
10.7 Collection Module
10.8 Allow reflection
10.9 Java Standard Modules
Verification problem
Chapter 11 Exception Handling
11.1 Exceptions and Exception Classes
11.2 Exception Handling Code
11.3 Handling by exception type
11.4 Automatically Closing Resources
11.5 Passing the Exception
11.6 User-defined exceptions
Verification problem
Search
PART 03 Using the Library
Chapter 12 The java.base Module
12.1 API Documentation
12.2 java.base module
12.3 Object Class
12.4 System Class
12.5 String Class
12.6 Packaging Class
12.7 Math Class
12.8 Date and Time Classes
12.9 Format Class
12.10 Regular Expression Class
12.11 Reflection
12.12 Annotation
Verification problem
Chapter 13 Generics
13.1 What is a generic?
13.2 Generic Types
13.3 Generic Methods
13.4 Restricted type parameters
13.5 Wildcard Type Parameters
Verification problem
Chapter 14 Multi-Threading
14.1 Multi-threading Concepts
14.2 Main Thread
14.3 Creating and Executing Worker Threads
14.4 Thread Names
14.5 Thread State
14.6 Thread Synchronization
14.7 Thread-safe termination
14.8 Daemon Threads
14.9 Thread Pool
Verification problem
Chapter 15 Collection Data Structures
15.1 Collection Framework
15.2 List Collection
15.3 Set Collection
15.4 Map Collection
15.5 Collection with enhanced search functionality
15.6 LIFO and FIFO Collections
15.7 Synchronized Collections
15.8 Unmodifiable Collections
Verification problem
Chapter 16 Lambda Expressions
16.1 What is a lambda expression?
16.2 Lambda expressions without parameters
16.3 Lambda expressions with parameters
16.4 Lambda expressions with return values
16.5 Method Reference
16.6 Constructor Reference
Verification problem
Chapter 17 Processing Stream Elements
17.1 What is a stream?
17.2 Internal Iterators
17.3 Intermediate and final processing
17.4 Obtaining a stream from a resource
17.5 Filtering elements
17.6 Element Transformation (Mapping)
17.7 Sorting elements
17.8 Processing elements one by one (looping)
17.9 Whether the element condition is satisfied (matching)
17.10 Element Basic Aggregation
17.11 Element Custom Aggregation
17.12 Element Collection
17.13 Element Parallelism
Verification problem
PART 04 Data Input/Output
Chapter 18 Data Input/Output
18.1 Input/Output Streams
18.2 byte output stream
18.3 byte input stream
18.4 Character Input/Output Streams
18.5 Auxiliary Stream
18.6 Character Conversion Stream
18.7 Performance Improvement Stream
18.8 Basic Type Streams
18.9 Print Stream
18.10 Object Streams
18.11 File and Files Classes
Verification problem
Chapter 19 Network Input/Output
19.1 Network Basics
19.2 Obtaining an IP address
19.3 TCP Networking
19.4 UDP Networking
19.5 Handling Concurrent Requests on the Server
19.6 JSON Data Format
19.7 TCP Chat Program
Verification problem
Chapter 20 Database Input/Output
20.1 JDBC Overview
20.2 DBMS Installation
20.3 Installing the Client Tool
20.4 DB Configuration
20.5 DB Connection
20.6 Data Storage
20.7 Data Modification
20.8 Data Deletion
20.9 Reading Data
20.10 Calling Procedures and Functions
20.11 Transaction Processing
20.12 Bulletin Board Implementation
Verification problem
PART 05 Enhanced Language Features of the Latest Java
Chapter 21 Language and Libraries Enhanced in Java 21
21.1 Enhancements in Java 21
21.2 Local Variable Type Inference
21.3 Null handling in switch statements
21.4 Pattern Matching in Switch Statements
21.5 Record Pattern
21.6 Virtual Threads
21.7 Sequential Collection
21.8 Change the default character set
Search
[supplement]
Appendix 01 Database Input/Output (for MySQL)
20.1 JDBC Overview
20.2 DBMS Installation
20.3 Installing the Client Tool
20.4 DB Configuration
20.5 DB Connection
20.6 Data Storage
20.7 Data Modification
20.8 Data Deletion
20.9 Reading Data
20.10 Transaction Processing
20.11 Bulletin Board Implementation
Appendix 02 Java UI - Swing
01 Introduction to Swing
02 Event Dispatching Thread
03 Swing Container
04 Component placement
05 Event Processing
06 Button Component
07 Text Component
08 List Component
09 Table Components
10 Tree Components
11 Menu Components
12 Toolbar Components
13 Dialogue
14 2D Graphics
15 Swing Challenges
Appendix 03 Java UI - JavaFX
01 JavaFX Overview
02 Creating and Running a JavaFX Project
03 JavaFX Layout
04 JavaFX Container
05 JavaFX Event Handling
06 JavaFX Property Monitoring and Binding
07 JavaFx Controls
08 JavaFX Menu Bar and Toolbar
09 JavaFX Dialog
10 JavaFX CSS Styles
11 JavaFX Thread UI Changes
12 Scene Movement and Animation
13 JavaFX Challenges
Appendix 04 NIO-based I/O and Networking
01 Introduction to NIO
02 Files and Directories
03 Buffer
04 File Input/Output
05 File Asynchronous I/O
06 TCP Network Input/Output
07 TCP Asynchronous Network I/O
08 UDP Network Input/Output
09 NIO Task
Detailed image

Publisher's Review
The Java Bible, from basics to advanced applications, all in one book!
『This is Java (3rd Edition)』, which has been loved by many learners, has been supplemented with the enhanced features and libraries of the latest Java 21 LTS version, and the essential content is organized in the main text of the book, and the optional content is organized in the [Free Special Edition] e-Book.
By directly following the 900 more enriched practical examples, you will be able to learn object-oriented programming using Java more systematically.
This book is recommended for non-majors who want to study Java in depth from the basics to advanced levels for the introduction to Java programming, working developers who want to systematically reorganize the concepts of object-oriented programming, and senior developers who are already using Java in the workplace but want to learn about the latest enhanced features of Java.
【Enhanced language features of the latest Java 21 added in the 3rd edition】
- Local variable type inference
- Null handling and pattern matching in switch statements
- Record pattern
- Virtual thread
- Sequential collection
- Change default character set
[Free Special Edition] Separate e-Book
The [Free Special Edition] of 『This is Java (3rd Edition)』 contains the content necessary for optional/advanced study after studying this book.
You can learn the same content as the database input/output for Oracle learned in Chapter 20 in a MySQL version, or you can learn additional content such as Swing, JavaFX, NIO-based input/output, and networking.
Check out the [Free Special Edition] e-Book of 『This is Java (3rd Edition)』 at each online bookstore and the Hanbit Media website data room (https://www.hanbit.co.kr/src/11229).
『This is Java (3rd Edition)』, which has been loved by many learners, has been supplemented with the enhanced features and libraries of the latest Java 21 LTS version, and the essential content is organized in the main text of the book, and the optional content is organized in the [Free Special Edition] e-Book.
By directly following the 900 more enriched practical examples, you will be able to learn object-oriented programming using Java more systematically.
This book is recommended for non-majors who want to study Java in depth from the basics to advanced levels for the introduction to Java programming, working developers who want to systematically reorganize the concepts of object-oriented programming, and senior developers who are already using Java in the workplace but want to learn about the latest enhanced features of Java.
【Enhanced language features of the latest Java 21 added in the 3rd edition】
- Local variable type inference
- Null handling and pattern matching in switch statements
- Record pattern
- Virtual thread
- Sequential collection
- Change default character set
[Free Special Edition] Separate e-Book
The [Free Special Edition] of 『This is Java (3rd Edition)』 contains the content necessary for optional/advanced study after studying this book.
You can learn the same content as the database input/output for Oracle learned in Chapter 20 in a MySQL version, or you can learn additional content such as Swing, JavaFX, NIO-based input/output, and networking.
Check out the [Free Special Edition] e-Book of 『This is Java (3rd Edition)』 at each online bookstore and the Hanbit Media website data room (https://www.hanbit.co.kr/src/11229).
GOODS SPECIFICS
- Date of issue: April 1, 2024
- Page count, weight, size: 1,112 pages | 2,014g | 183*235*46mm
- ISBN13: 9791169212298
- ISBN10: 1169212298
You may also like
카테고리
korean
korean