售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Getting Started with Java 9
Getting started with Java
Installing Java
Installation on Windows
Installation on MAC OS X
Installation on Linux
Setting JAVA_HOME
Executing jshell
Looking at the byte code
Packaging classes into a JAR file
Managing the running Java application
Using an IDE
NetBeans
Eclipse
IntelliJ
IDE services
IDE screen structure
Editing files
Managing projects
Build the code and run it
Debugging Java
Summary
The First Real Java Program - Sorting Names
Getting started with sorting
Bubble sort
Getting started with project structure and build tools
Make
Ant
Installing Ant
Using Ant
Maven
Installing Maven
Using Maven
Gradle
Installing Gradle
Setting up the project with Maven
Coding the sort
Understanding the algorithm and language constructs
Blocks
Variables
Types
Arrays
Expressions
Loops
Conditional execution
Final variables
Classes
Inner, nested, local, and anonymous classes
Packages
Methods
Interfaces
Argument passing
Fields
Modifiers
Object initializers and constructors
Compiling and running the program
Summary
Optimizing the Sort - Making Code Professional
The general sorting program
A brief overview of various sorting algorithms
Quick sort
Project structure and build tools
Maven dependency management
Code the sort
Creating the interfaces
Creating BubbleSort
Amending the interfaces
Architectural considerations
Creating unit tests
Adding JUnit as dependency
Writing the BubbleSortTest class
Good unit tests
A good unit test is readable
Unit tests are fast
Unit tests are deterministic
Assertions should be as simple as possible
Unit tests are isolated
Unit tests cover the code
Refactor the test
Collections with wrong elements
Handling exceptions
Generics
Test Driven Development
Implementing QuickSort
The partitioning class
Recursive sorting
Non-recursive sorting
Implementing the API class
Creating modules
Why modules are needed
What is a Java module
Summary
Mastermind - Creating a Game
The Game
The model of the game
Java collections
Interface collection
Set
Hash functions
Method equals
Method hashCode
Implementing equals and hashCode
HashSet
EnumSet
LinkedHashSet
SortedSet
NavigableSet
TreeSet
List
LinkedList
ArrayList
Queue
Deque
Map
HashMap
IdentityHashMap
Dependency injection
Implementing the game
ColorManager
The class color
JavaDoc and code comments
Row
Table
Guesser
UniqueGuesser
GeneralGuesser
The Game class
Creating an integration test
Summary
Extending the Game - Run Parallel, Run Faster
How to make Mastermind parallel
Refactoring
Processes
Threads
Fibers
java.lang.Thread
Pitfalls
Deadlocks
Race conditions
Overused locks
Starving
ExecutorService
ForkJoinPool
Variable access
The CPU heartbeat
Volatile variables
Synchronized block
Wait and notify
Lock
Condition
ReentrantLock
ReentrantReadWriteLock
Atomic classes
BlockingQueue
LinkedBlockingQueue
LinkedBlockingDeque
ArrayBlockingQueue
LinkedTransferQueue
IntervalGuesser
ParallelGamePlayer
Microbenchmarking
Summary
Making Our Game Professional - Do it as a Webapp
Web and network
IP
TCP/IP
DNS
The HTTP protocol
HTTP methods
Status codes
HTTP/2.0
Cookies
Client server and web architecture
Writing servlets
Hello world servlet
Java Server Pages
HTML, CSS, and JavaScript
Mastermind servlet
Storing state
HTTP session
Storing state on the client
Dependency injection with Guice
The MastermindHandler class
Storing state on the server
The GameSessionSaver class
Running the Jetty web servlet
Logging
Configurability
Performance
Log frameworks
Java 9 logging
Logging practice
Other technologies
Summary
Building a Commercial Web Application Using REST
The MyBusiness web shop
Sample business architecture
Microservices
Service interface design
JSON
REST
Model View Controller
Spring framework
Architecture of Spring
Spring core
Service classes
Compiling and running the application
Testing the application
Integration test
Application test
Servlet filters
Audit logging and AOP
Dynamic proxy-based AOP
Summary
Extending Our E-Commerce Application
The MyBusiness ordering
Setting up the project
Order controller and DTOs
Consistency checker
Annotations
Annotation retention
Annotation target
Annotation parameters
Repeatable annotations
Annotation inheritance
@Documented annotations
JDK annotations
Using reflection
Getting annotations
Invoking methods
Setting fields
Functional programming in Java
Lambda
Streams
Functional interfaces
Method references
Scripting in Java 9
Summary
Building an Accounting Application Using Reactive Programming
Reactive... what?
Reactive programming in a nutshell
Reactive systems
Responsive
Resilient
Elastic
Message-driven
Back-pressure
Reactive streams
Reactive programming in Java
Implementing inventory
Summary
Finalizing Java Knowledge to a Professional Level
Java deep technologies
Java agent
Polyglot programming
Polyglot configuration
Polyglot scripting
Business DSL
Problems with polyglot
Annotation processing
Programming in the enterprise
Static code analysis
Source code version control
Software versioning
Code review
Knowledge base
Issue tracking
Testing
Types of tests
Test automation
Black box versus white box
Selecting libraries
Fit for the purpose
License
Documentation
Project alive
Maturity
Number of users
The "I like it" factor
Continuous integration and deployment
Release management
Code repository
Walking up the ladder
Summary
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜