万本电子书0元读

万本电子书0元读

顶部广告

Java 9 Programming By Example电子书

售       价:¥

30人正在读 | 0人评论 9.8

作       者:Peter Verhas

出  版  社:Packt Publishing

出版时间:2017-04-26

字       数:78.9万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
This book gets you started with essential software development easily and quickly, guiding you through Java's different facets. By adopting this approach, you can bridge the gap between learning and doing immediately. You will learn the new features of Java 9 quickly and experience a simple and powerful approach to software development. You will be able to use the Java runtime tools, understand the Java environment, and create Java programs. We then cover more simple examples to build your foundation before diving to some complex data structure problems that will solidify your Java 9 skills. With a special focus on modularity and HTTP 2.0, this book will guide you to get employed as a top notch Java developer. By the end of the book, you will have a firm foundation to continue your journey towards becoming a professional Java developer. What you will learn ?Compile, package and run a trivial program using a build management tool ?Get to know the principles of test-driven development and dependency management ?Separate the wiring of multiple modules from the application logic into an application using dependency injection ?Benchmark Java execution using Java 9 microbenchmarking ?See the workings of the Spring framework
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部