目錄(302章)
倒序
- 封面
- 版權信息
- 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
- 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 更新時間:2021-07-02 23:38:15
推薦閱讀
- Vue.js設計與實現
- Computer Vision for the Web
- Kubernetes實戰(zhàn)
- 軟件項目管理(第2版)
- Visual C++實例精通
- Unity Virtual Reality Projects
- Oracle Database 12c Security Cookbook
- Instant PHP Web Scraping
- Canvas Cookbook
- Java 9 Programming By Example
- PHP與MySQL權威指南
- MongoDB Cookbook(Second Edition)
- Machine Learning for OpenCV
- Scratch從入門到精通
- Java從入門到精通(視頻實戰(zhàn)版)
- 你好!Java
- Java服務端研發(fā)知識圖譜
- Microsoft Windows Identity Foundation Cookbook
- Building Scalable Apps with Redis and Node.js
- LibGDX Game Development By Example
- C#編程魔法書
- Learning Java by Building Android Games
- WebGIS之Leaflet全面解析
- 云原生基礎架構:構建和管理現代可擴展基礎架構的模式及實踐
- Go語言項目開發(fā)上手指南
- Vaadin 7 UI Design By Example:Beginner’s Guide
- ASP.NET從入門到精通(第2版)
- Electron Projects
- PHP從入門到精通(第5版)
- Java 9 并發(fā)編程實戰(zhàn)