Mastering java 9 write reactive, modular, concurrent, and secure code

599 208 0
Mastering java 9  write reactive, modular, concurrent, and secure code

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mastering Java Write reactive, modular, concurrent, and secure code Dr Edward Lavieri Peter Verhas BIRMINGHAM - MUMBAI Mastering Java Copyright © 2017 Packt Publishing All rights reserved No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews Every effort has been made in the preparation of this book to ensure the accuracy of the information presented However, the information contained in this book is sold without warranty, either express or implied Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals However, Packt Publishing cannot guarantee the accuracy of this information First published: October 2017 Production reference: 1031017 Published by Packt Publishing Ltd Livery Place 35 Livery Street Birmingham B3 2PB, UK ISBN 978-1-78646-873-4 www.packtpub.com Credits Authors Copy Editor Dr Edward Lavieri Safis Editing Peter Verhas Reviewer Project Coordinator Mandar Jog Prajakta Naik Commissioning Editor Proofreader Kunal Parikh Safis Editing Acquisition Editor Indexer Denim Pinto Francy Puthiry Content Development Editor Graphics Lawrence Veigas Jason Monteiro Technical Editor Production Coordinator Abhishek Sharma Arvindkumar Gupta About the Authors Dr Edward Lavieri is a veteran developer with a strong academic background He earned a doctorate in computer science from Colorado Technical University, an MS in management information systems (Bowie State University), an MS in education (Capella University), and an MS in operations management (University of Arkansas) He has been creating and teaching computer science courses since 2002 Edward retired from the U.S Navy as a Command Master Chief after 25 years of service As the founder and creative director of three19, a software design and development studio, Edward is constantly designing and developing software He uses a variety of game engines and development tools His passions include developing adaptive learning systems, educational games, and mobile apps Edward has authored Adaptive Learning for Educational Game Design (CreateSpace), Getting Started with Unity (Packt), Learning AWS Lumberyard Game Development (Packt), LiveCode Mobile Development HOTSHOT (Packt), LiveCode Mobile Development Cookbook (Packt), and Software Consulting: A Revolutionary Approach (CreateSpace) He was the technical editor for Excel Formulas and Functions for Dummies (Wiley Publishing) He has also developed numerous college courses involving computer science, information systems, and game development Peter Verhas is a senior developer and software system architect with more than 30 years of software development experience He currently works for EPAM as a senior developer, where he is involved in many customer projects and actively participates in the education activities of the company Peter writes a technical blog and is committed to open source software development He has been using Java since 2005 and is also an author at Java Code Geeks About the Reviewer Mandar Jog is an expert IT trainer with over 15 years of training experience He is an expert in technologies such as Java, J2EE, and Android He also holds SCJP and SCWCD certifications He is an occasional blogger where he makes the readers feel "I can" for the complex concepts in Java and J2EE He is a regular speaker at many engineering colleges for technical seminars and workshops He was also the technical reviewer of the book, Modular Programming in Java by Packt Thanks a lot Tejaswini, you have been my inspiration throughout this journey I am equally grateful to my son, Ojas; his lovely smiles have always made me push myself further www.PacktPub.com For support files and downloads related to your book, please visit www.PacktPub.com Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy Get in touch with us at service@packtpub.com for more details At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks www.packtpub.com/mapt Get the most in-demand software skills with Mapt Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career Caciocavallo Common VM Interface Compiler Grammar Da Vinci Machine Device I/O Graal HarfBuzz Integration Kona OpenJFX Panama Shenandoah Annotations pipeline 2.0 This project explores improvements to how annotations are handled within the Java compiler pipeline There is no intention to propose changing specifications; rather, the focus is on performance enhancements Audio Synthesis Engine This project is looking at the creation of a new midi synthesizer for the JDK The current midi synthesizer belongs to a licensed library The working group would like to see the new midi synthesizer as an open source JDK asset Caciocavallo The Caciocavallo project aims to improve the OpenJDK Abstract Windows Toolkit (AWT) internal interfaces This extends to 2D subsystems The proposed improvement stands to ease the way AWT is ported to new platforms Common VM Interface The Common VM Interface project has the goal of documenting the VM interface for OpenJDK This should make it easier for Classpath VMs and other VMs to use OpenJDK Compiler Grammar The Compiler Grammar project is working on an experimental Java Compiler that is based on ANTLR grammar ANTLR, Another Tool for Language Recognition, is a parser that reads, processes, and executes structured text or binary files The project team hopes this Java Compiler will replace the current one as it uses a hand-written parser, LALR (Look-Ahead Left to Right) The LALR parser has been identified by the project group as fragile and difficult to extend Da Vinci Machine The Da Vinci Machine Project, represents the effort to extend the JVM with support for non-Java languages Current efforts are focused on allowing the new languages to exist alongside Java in the JVM Performance and efficiency are key characteristics of the effort Device I/O This project intends to provide access to generic peripheral devices via a Java-level API The initial list of peripheral devices the project team wants to support include: GPIO (General Purpose Input/Output) I2C (Inter-Integrated Circuit Bus) SPI (Serial Peripheral Interface) UART (Universal Asynchronous Receiver/Transmitter) Graal The Graal project has the goal of exposing VM functionality via Java APIs This exposure will permit developers to write, in Java, dynamic compilers for a given language runtime This effort includes the development of a multi-language interpreter framework HarfBuzz Integration The HarfBuzz Integration project hopes to integrate the HarfBuzz layout engine into the Java Development Kit This is intended to replace the ICU layout engine with the HarfBuzz layout engine The ICU layout engine has been deprecated, solidifying the importance of this project's future success Kona The Kona project, is working to define and implement Java APIs to support the Internet of Things (IoT) domain This includes networking technologies and protocols Although not stated, safety and security will be paramount to this effort's implementation success OpenJFX There are not many details available regarding the OpenJFX project The stated goal of this project is to create the next-generation Java client toolkit Based on the project title, it can be assumed that the group wants to create an OpenJFX version of JavaFX, which is a set of packages used to create rich internet applications Panama Project panama is focused on enhancing the connections between JVM and non-Java APIs The project includes the following selected components: Native function calls Native data access from JVM Native data access inside JVM heap New data layouts in JVM heap API extraction tools for header files The project team has generated a repository tree that matches JDK 9's structure This significantly increases the likelihood of the project's success Shenandoah Project Shenandoah has the goal of significantly reducing the pause times with garbage collection operations The approach is to have more garbage collection operations run concurrently with the Java application In Chapter 7, Leveraging the New Default G1 Garbage Collector you read about CMS and G1 The Shenandoah project intends to add concurrent compaction to the possible garbage collection approaches Summary In this chapter we provided an overview of the future developments of the Java platform, beyond Java We looked at what is planned for Java 10 and what further changes we are likely to see beyond Java 10 Each potential change to the Java platform was characterized as targeted, submitted, or drafted Specifically, we covered future changes to the Java platform grouped in the following categories: JDK Changes, Java Compiler, Java Virtual Machine, JavaX, and special projects .. .Mastering Java Write reactive, modular, concurrent, and secure code Dr Edward Lavieri Peter Verhas BIRMINGHAM - MUMBAI Mastering Java Copyright © 2017 Packt Publishing... an author at Java Code Geeks About the Reviewer Mandar Jog is an expert IT trainer with over 15 years of training experience He is an expert in technologies such as Java, J2EE, and Android He... Expanding the wish list Summary Discovering Java Improved Contended Locking [JEP 143] Improvement goals Segmented code cache [JEP 197 ] Memory allocation Smart Java compilation, phase two [JEP 199 ]

Ngày đăng: 02/03/2019, 11:18

Mục lục

  • Preface

    • What this book covers

    • What you need for this book

    • Who this book is for

    • Customer support

      • Downloading the example code

      • The Java 9 Landscape

        • Java 9 at 20,000 feet

        • Playing around with the Java Shell

        • Taking control of external processes

        • Boosting performance with G1

        • Measuring performance with JMH

        • Expanding the wish list

        • Discovering Java 9

          • Improved Contended Locking [JEP 143]

            • Improvement goals

            • Segmented code cache [JEP 197]

              • Memory allocation

              • Smart Java compilation, phase two [JEP 199]

              • Resolving Lint and Doclint warnings [JEP 212]

              • Tiered attribution for javac [JEP 215]

              • New version-string scheme [JEP 223]

              • Generating run-time compiler tests automatically [JEP 233]

              • Testing class-file attributes generated by Javac [JEP 235]

              • Storing interned strings in CDS archives [JEP 250]

                • The problem

                • Preparing JavaFX UI controls and CSS APIs for modularization [JEP 253]

                  • JavaFX overview

Tài liệu cùng người dùng

Tài liệu liên quan