JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK

Size: px
Start display at page:

Download "JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK"

Transcription

1 JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems 1

2 JDK 9: Big And Small Changes 2

3 Java Platform Module System (JPMS) The core Java libraries are now a set of modules (JEP 220) 75 OpenJDK modules: 27 Java SE, 48 JDK Oracle JDK: 14 additional JDK, 8 JavaFX, 2 Oracle specific Most internal APIs now encapsulated (JEP 260) sun.misc.unsafe Some can be used with command line options 3

4 jlink: The Java Linker (JEP 282) jlink Modular run-time image bin conf lib $ jlink --modulepath $JDKMODS \ --addmods java.base output myimage $ myimage/bin/java -list-modules java.base@9 4

5 jlink: The Java Linker (JEP 282) $ jlink --module-path $JDKMODS:$MYMODS \ --addmods com.azul.zapp -output myimage $ myimage/bin/java -list-modules java.base@9 java.logging@9 java.sql@9 java.xml@9 com.azul.zapp@1.0 com.azul.zoop@1.0 com.azul.zeta@1.0

6 Moving Java Forward Faster

7 Java Platform Development Development of releases takes time JDK 6: 2 years and 2 months after JDK 5 JDK 7: 4 years and 8 months after JDK 6 JDK 8: 2 years and 8 months after JDK 7 JDK 9: 3 years and 6 months after JDK 8 7

8 Migrating To A New Version Plenty of time to continue with previous release JDK 6: 2 years and 11 months of public JDK 5 updates JDK 7: 1 year and 9 months of public JDK 6 updates JDK 8: 1 year and 1 month of public JDK 7 updates Also allows for stabilisation of new platform before migrating applications in production 8

9 The Java Platform Today Stable Secure Free 9

10 OpenJDK: New Release Model A new version of the JDK will be released every six months March and September Started this year with JDK 10 and JDK 11 OpenJDK development will be more agile Previous target was a release every two years Features will be included only when ready Targeted for a release when feature complete 10

11 Long Term Support Releases Long term support for all releases is not practical One Long Term Support (LTS) release every three years JDK 8 has been classified as an LTS release JDK 8 public updates stop in January 2019 for commercial users Non-commercial users get updates until December 2020 Next LTS release is JDK 11 JDK 9 and JDK 10 are feature releases Updates for only six months 11

12 Which JDK Binary Traditional Oracle branded binary (java.oracle.com) Oracle Binary Code License (FoU restrictions) New OpenJDK binary (jdk.java.net) GPLv2 with CPE license (no restrictions) Security and bug fix updates only for six months Only until next JDK release Two scheduled updates No overlap of updates for previous version 12

13 Converged Binaries Oracle JDK OpenJDK Java SE OpenJDK & Oracle JDK Java SE JDK 11 and later JDK 10 and earlier

14 Converged Binaries (JDK 11) Some closed-source parts of the JDK will be open-sourced Flight recorder Mission control Others Other closed-source parts will be removed Browser Plugin Java Web Start JavaFX 14

15 JDK 9 Onwards And Compatibility "Clean applications that just depend on java.se should just work" - Oracle 15

16 JDK 9: The Clean Up Starts JDK 9 was a significant change for Java Deprecated APIs were removed for the first time Six methods and one class JDK 10 removed 1 package, 6 classes, 9 methods and 1 field Redundant features eliminated jhat tool, JVM TI hprof agent Numerous deprecated GC options removed Significant command line changes JDK 9 removed 187 -XX flags JDK 10 removed 36 -XX flags 16

17 Housekeeping Will Continue More significant removals in JDK 11 Applets, Browser Plugin, Web Start, JavaFX java.se.ee meta-module java.corba java.transaction java.activation java.xml.bind java.xml.ws java.xml.ws.annotation More in the future Nashorn deprecated, CMS garbage collector? 17

18 Compatibility Not Guaranteed New versions of Java may include breaking changes Anything for removal will be deprecated first Minimum of one release warning Could be only six months 18

19 Eliminating Confusion There will be an LTS release every three years This does NOT mean 3 years of free updates Oracle JDK (from JDK 11) can ONLY be used in production with a commercial support contract The only free JDK 11 and later will be OpenJDK binaries To continue to receive free updates to the JDK you MUST update your JDK EVERY SIX MONTHS JDK 8 can be used indefinitely for free But without any further security patches and bug fixes 19

20 New JDK Update Schedule

21 The Java Platform Soon Stable Secure Choose two out of three Free 21

22 JDK 10

23 Local Variable Type Inference JEP 286 Simple use cases var list = new ArrayList<String>(); // infers ArrayList<String> var stream = list.stream(); // infers Stream<String> Style guidelines available Good (appropriate use of variable name) var stringlist = List.of("a", "b", "c"); Poor var itemqueue = new PriorityQueue<>(); Infered type is PriorityQueue<Object> 23

24 JDK 10: JEPs JEP 307: Parallel Full GC for G1 Still a full GC with potentially big pauses JEP 310: Application Class-Data Sharing Previous commercial Oracle feature JEP 317: Experimental Java-based JIT compiler (Graal) JEP 319: Root Certificates default set of root CA certificates JEP 296: Consolidate JDK forests into single repo Eight repos becomes one 24

25 JDK 10: JEPs JEP 316: Heap allocation on alternative devices (Intel) NV-RAM with same semantics as DRAM JEP 313: Remove javah tool Same functionality through javac JEP 304: Garbage Collector Interface (Red Hat) Easier to add new algorithms (JVM internal) JEP 312: Thread-Local Handshakes Execute callbacks on threads without performing a global VM safepoint 25

26 JDK 10: APIs 73 New APIs List, Set, Map.copyOf(Collection) Collectors tounmodifiablelist tounmodifiablemap tounmodifiableset Optional.orElseThrow() 26

27 JDK 10: Miscellaneous XMLInputFactory.newFactory() de-deprecated (precated?) com.sun.security.auth package Six deprecated classes removed java.lang.securitymanager One deprecated field and seven methods removed JVM now more Docker container aware Uses container CPU count and memory size Namespace issues resolved (pids) 27

28 JDK 11

29 JDK JEPs 3 from outside Oracle JEP 318: Epsilon garbage collector (Red Hat) JEP 315: Improve Aarch64 intrinsics (Red Hat) JEP 331: Low overhead heap profiling (Google) 29

30 JDK 11: JEPs JEP 309: Dynamic Class-file constants Like invokedynamic but for class-file constants Bootstrap method used at runtime, not compile time Useful for compiler and language developers JEP 328: Flight Recorder Final piece of aligning OpenJDK and Oracle JDK 30

31 JDK 11: JEPs JEP 320: Remove CORBA and Java EE modules The power of a module system JEP 321: HTTP client HTTP/2 support Incubating module from JDK 9 standardised JEP 323: Local variable syntax for Lambda parameters Extending JEP 286 in JDK 10 (var x, var y) -> x.process(y) 31

32 JDK 11: JEPs JEP 324: Key Agreement with Curve25519 and Curve448 More efficient and secure than existing ECDH JEP 327: Unicode 10 8,518 new characters (seriously) Bitcoin symbol, Nishu, Soyombo, Zanabazar Square Long awaited (?) Colbert emoji 32

33 JDK 11: New APIs New methods but no new classes InputStream nullinputstream() Writer nullwriter() Path of(string, String...) 33

34 Longer Term JDK Futures

35 OpenJDK Projects Amber Simplifying syntax Valhalla Value types and specialised generics Loom Continuations and fibres Metropolis The JVM re-written in Java Panama FFI replacement for JNI 35

36 Project Amber JEP 286: Local variable type inference Delivered in JDK 10 JEP 323: Local variable syntax for Lambdas Will be delivered in JDK 11 36

37 Project Amber JEP 302: Lambda leftovers Single underscore for unused parameters JEP 326: Raw string literals (JDK 12) Use single backquote `c:\users\simon` ```A string with a `` in it``` 37

38 JEP 305: Pattern Matching Type test and switch statement support to start String formatted; switch (obj) { case Integer i: formatted = String.format("int %d", i); break; case Byte b: formatted = String.format("byte %d", b); break; case Long l: formatted = String.format("long %d", l); break; case Double d: formatted = String.format("double %f", d); break; case String s: formatted = String.format("String %s", s); break default: formatted = obj.tostring(); } 38

39 JEP 325: Switch Expressions (JDK 12) int numletters; switch (day) { case MONDAY: case FRIDAY: case SUNDAY: numletters = 6; break; case TUESDAY: numletters = 7; break; case THURSDAY: case SATURDAY: numletters = 8; break; case WEDNESDAY: numletters = 9; break; default: throw new IllegalStateException("Huh?: " + day); }; 39

40 JEP 325: Switch Expressions int numletters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; default -> throw new IllegalStateException("Huh?: " + day); };

41 Project Valhalla Java has: Primitives: for performance Objects: for encapsulation, polymorphism, inheritance, OO Problem is where we want to use primitives but can't ArrayList<int> won't work ArrayList<Integer> requires boxing and unboxing, object creation, heap overhead, indirection reference 41

42 Project Valhalla Value types "Codes like a class, works like a primitive" Can have methods and fields Can implement interfaces Can use encapsulation Can be generic Can't be mutated Can't be sub-classed 42

43 Project Loom Further work on making concurrent programming simpler Threads are too heavyweight Loom will introduce fibres JVM level threads (remember green threads?) Add continuations to the JVM Use the ForkJoinPool scheduler Much lighter weight than threads Less memory Close to zero overhead for task switching 43

44 Project Metropolis Run Java on Java Rewrite most of the JVM in Java Use the Graal compiler project as significant input Easier ports to new platforms Less native code to modify and compile Faster new features on front-end Easier to write Java than C++ Performance is an issue to be explored and resolved AOT compiler in JDK 9 is the start of this 44

45 Azul's Zulu Java

46 Zulu Java Azul s free binary distribution of OpenJDK Passes all TCK tests JDK 6, 7, 8, 9,10 and 11 (EA) available Wider platform support: Intel 64-bit Windows, Mac, Linux Intel 32-bit Windows and Linux ARM 32 and 64-bit PowerPC 46

47 Summary

48 Java Continues To Evolve Faster Java releases Feature release every 6 months Access to free updates is a consideration Lots of ideas to improve Java Value types, fibres, syntax improvements Zulu Java has wide platform and JDK version support Very reasonable cost for commercial support 48

49 Thank You! Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems 49

55 New Features In JDK 9

55 New Features In JDK 9 55 New Features In JDK 9 Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems azul.com @speakjava 1 Major Features Java Platform Module System JSR 376 Public Review Reconsideration Ballot

More information

Shaping the future of Java, Faster

Shaping the future of Java, Faster Shaping the future of Java, Faster Georges Saab Vice President, Java Platform Group Oracle, Corp Twitter: @gsaab Safe Harbor Statement The following is intended to outline our general product direction.

More information

JDK 9/10/11 and Garbage Collection

JDK 9/10/11 and Garbage Collection JDK 9/10/11 and Garbage Collection Thomas Schatzl Senior Member of Technical Staf Oracle JVM Team May, 2018 thomas.schatzl@oracle.com Copyright 2017, Oracle and/or its afliates. All rights reserved. 1

More information

Introduction to Modular Development CON5118

Introduction to Modular Development CON5118 Introduction to Modular Development CON5118 Alan Bateman Java Platform Group, Oracle October 2015 Sessions 1 2 3 4 5 Prepare for JDK 9 Introduction to Modular Development Advanced Modular Development Project

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39 Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic

More information

Java in a World of Containers

Java in a World of Containers Java in a World of Containers mikael.vidstedt@oracle.com Director, JVM @MikaelVidstedt Copyright 2018, Oracle and/or its affiliates. All rights reserved. 1 Safe Harbor Statement The following is intended

More information

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH Highlights from Java 10, 11 and 12 and Future of Java Javaland 19.03.2019 by Vadym Kazulkin, ip.labs GmbH Contact Vadym Kazulkin, ip.labs GmbH v.kazulkin@gmail.com https://www.linkedin.com/in/vadymkazulkin

More information

Java 11 and MAKING ECLIPSE JDT FUTURE READY MANOJ PALAT IBM

Java 11 and MAKING ECLIPSE JDT FUTURE READY MANOJ PALAT IBM Java 11 and Beyond MAKING ECLIPSE JDT FUTURE READY MANOJ PALAT IBM @manojnp Java Releases Road Traveled++ Version 1.0 1.1,1.2,1.3,1.4,1.5,1.6 1.7 1.8 9 10 11 12 13 Release Date 1996 1997, 1998, 2000, 2002,

More information

Java 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK

Java 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Java 9 Module System Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Problem of Complexity and Programming Language 2 von 41 Early/Modern

More information

JDK 11 Deep Simon Ritter Deputy CTO, Azul Systems. Copyright Azul Systems Copyright Azul Systems 2015

JDK 11 Deep Simon Ritter Deputy CTO, Azul Systems. Copyright Azul Systems Copyright Azul Systems 2015 JDK 11 Deep Dive Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems @speakjava 1 Agenda JDK 9 Java Platform Module System Developer and other features JDK 10 Local variable type inference

More information

What a Year! Java 10 and 10 Big Java Milestones

What a Year! Java 10 and 10 Big Java Milestones What a Year! Java 10 and 10 Big Java Milestones Java has made tremendous strides in the past 12 months, with exciting new features and capabilities for developers of all kinds. Table of Contents INTRODUCTION

More information

Java in a World of Containers

Java in a World of Containers Java in a World of Containers mikael.vidstedt@oracle.com Not-coder, JVM @MikaelVidstedt matthew.gilliard@oracle.com Coder, not-jvm @MaximumGilliard Copyright 2017, Oracle and/or its affiliates. All rights

More information

Above and Beyond Java 9, 10, 11, 12

Above and Beyond Java 9, 10, 11, 12 Above and Beyond Java 9, 10, 11, 12 dr. sc. Branko Mihaljević and dr. sc. Martin Žagar HUJAK www.hujak.hr 1 A bit of Sentimental Journey HUJAK founded in 2011 Interested in meetups Well, more drinkups

More information

Java SE 9 and the Application Server

Java SE 9 and the Application Server EclipseCon Europe 2017 Java SE 9 and the Application Server InterConnect 2017 Kevin Sutter MicroProfile and Java EE Architect @kwsutter 1 Java SE 9 Standalone 2 10/30/17 Java 9 Standard Features JSR 379:

More information

Advanced Modular Development CON6821

Advanced Modular Development CON6821 Advanced Modular Development CON6821 Mark Reinhold, Alex Buckley, Alan Bateman Java Platform Group, Oracle October 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

New Java performance developments: compilation and garbage collection

New Java performance developments: compilation and garbage collection New Java performance developments: compilation and garbage collection Jeroen Borgers @jborgers #jfall17 Part 1: New in Java compilation Part 2: New in Java garbage collection 2 Part 1 New in Java compilation

More information

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved.

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved. JavaFX.Next Kevin Rushforth Oracle Johan Vos Gluon October 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and

More information

Java Leaders Summit Java SE

Java Leaders Summit Java SE Java Leaders Summit Java SE Staffan Friberg Product Manager Java Platform Group 1 Copyright 2011-2013 Oracle and/or its affiliates. The following is intended to outline our general product direction. It

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

The Z Garbage Collector Low Latency GC for OpenJDK

The Z Garbage Collector Low Latency GC for OpenJDK The Z Garbage Collector Low Latency GC for OpenJDK Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team Jfokus VM Tech Summit 2018 Safe Harbor Statement The following is intended to outline our

More information

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups MODULE 1 JAVA PLATFORMS Identifying Java Technology Product Groups Java SE Platform Versions Year Developer Version (JDK) Platform 1996 1.0 1 1997 1.1 1 1998 1.2 2 2000 1.3 2 2002 1.4 2 2004 1.5 5 2006

More information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

Migrate early, migrate often! JDK release cadence strategies

Migrate early, migrate often! JDK release cadence strategies Migrate early, migrate often! JDK release cadence strategies Dan Heidinga Eclipse OpenJ9 Project Lead Interpreter Lead, IBM Runtimes @danheidinga DanHeidinga Theresa Mammarella Eclipse OpenJ9 Software

More information

Shenandoah: Theory and Practice. Christine Flood Roman Kennke Principal Software Engineers Red Hat

Shenandoah: Theory and Practice. Christine Flood Roman Kennke Principal Software Engineers Red Hat Shenandoah: Theory and Practice Christine Flood Roman Kennke Principal Software Engineers Red Hat 1 Shenandoah Christine Flood Roman Kennke Principal Software Engineers Red Hat 2 Shenandoah Why do we need

More information

The Z Garbage Collector Scalable Low-Latency GC in JDK 11

The Z Garbage Collector Scalable Low-Latency GC in JDK 11 The Z Garbage Collector Scalable Low-Latency GC in JDK 11 Per Lidén (@perliden) Consulting Member of Technical Staff Java Platform Group, Oracle October 24, 2018 Safe Harbor Statement The following is

More information

Java SE 8 New Features

Java SE 8 New Features Java SE 8 New Features Duration 2 Days What you will learn This Java SE 8 New Features training delves into the major changes and enhancements in Oracle Java SE 8. You'll focus on developing an understanding

More information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

More information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

Java SE 8 Overview. Simon Ritter Head of Java Technology Evangelism.

Java SE 8 Overview. Simon Ritter Head of Java Technology Evangelism. Java SE 8 Overview Simon Ritter Head of Java Technology Evangelism Twitter: @speakjava Java SE 8 (JSR 337) Component JSRs New functionality JSR 308: Annotations on types JSR 310: Date and Time API JSR

More information

Core Java JDK 9 Overview Angelika Langer & Klaus Kreft

Core Java JDK 9 Overview Angelika Langer & Klaus Kreft Core Java JDK 9 Overview Angelika Langer & Klaus Kreft Training/Consulting a quick glance at Java 9 Java 9 available since September, 21 2017 many new features (> 90 JEPs) "Collection Literals" "Compact

More information

Lecture 2 summary of Java SE section 1

Lecture 2 summary of Java SE section 1 Lecture 2 summary of Java SE section 1 presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department of Economic Informatics & Cybernetics www.dice.ase.ro Cristian Toma

More information

Scaling the OpenJDK. Claes Redestad Java SE Performance Team Oracle. Copyright 2017, Oracle and/or its afliates. All rights reserved.

Scaling the OpenJDK. Claes Redestad Java SE Performance Team Oracle. Copyright 2017, Oracle and/or its afliates. All rights reserved. Scaling the OpenJDK Claes Redestad Java SE Performance Team Oracle Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only,

More information

The OpenJDK Project Past And Present

The OpenJDK Project Past And Present The OpenJDK Project Past And Present Red Hat Open Source Java Team March 2014 1 Agenda What Is the OpenJDK Project? How Is It Run? How Can I Contribute? Where Now and Next? 2 Agenda What Is the OpenJDK

More information

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: Java features. Java and its associated components. Features of a Java application and applet. Java data types. Java

More information

Apache Lucene and Java 9+ Opportunities and Challenges for Apache Solr and Elasticsearch

Apache Lucene and Java 9+ Opportunities and Challenges for Apache Solr and Elasticsearch Apache Lucene and Java 9+ Opportunities and Challenges for Apache Solr and Elasticsearch Uwe Schindler SD DataSolutions GmbH / Apache Software Foundation thetaph1 https://www.thetaphi.de My Background

More information

The Z Garbage Collector An Introduction

The Z Garbage Collector An Introduction The Z Garbage Collector An Introduction Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team FOSDEM 2018 Safe Harbor Statement The following is intended to outline our general product direction.

More information

Two Key JDK 10 Features

Two Key JDK 10 Features Supplement to Java: The Complete Reference, Tenth Edition Two Key JDK 10 Features This supplement to Java: The Complete Reference, Tenth Edition discusses two key features added by JDK 10. It is provided

More information

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

Advanced Object-Oriented Programming Introduction to OOP and Java

Advanced Object-Oriented Programming Introduction to OOP and Java Advanced Object-Oriented Programming Introduction to OOP and Java Dr. Kulwadee Somboonviwat International College, KMITL kskulwad@kmitl.ac.th Course Objectives Solidify object-oriented programming skills

More information

Java Performance: The Definitive Guide

Java Performance: The Definitive Guide Java Performance: The Definitive Guide Scott Oaks Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface ix 1. Introduction 1 A Brief Outline 2 Platforms and Conventions 2 JVM

More information

JamaicaVM Java for Embedded Realtime Systems

JamaicaVM Java for Embedded Realtime Systems JamaicaVM Java for Embedded Realtime Systems... bringing modern software development methods to safety critical applications Fridtjof Siebert, 25. Oktober 2001 1 Deeply embedded applications Examples:

More information

JDK 9, 变化与未来. Xuelei Fan

JDK 9, 变化与未来. Xuelei Fan 2016-4-21 JDK 9, 变化与未来 Xuelei Fan Java 20-Year Topics JDK 9 OpenJDK Community JDK 9 Schedule 2016/05/26 Feature Complete 2016/08/11 All Tests Run 2016/09/01 Rampdown Start 2016/10/20 Zero Bug Bounce 2016/12/01

More information

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1 SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable

More information

MoarVM. A metamodel-focused runtime for NQP and Rakudo. Jonathan Worthington

MoarVM. A metamodel-focused runtime for NQP and Rakudo. Jonathan Worthington MoarVM A metamodel-focused runtime for NQP and Rakudo Jonathan Worthington What does a VM typically do? Execute instructions (possibly by interpreting, possibly by JIT compilation, often a combination)

More information

CS5015 Object-oriented Software Development. Lecture: Overview of Java Platform. A. O Riordan, 2010 Most recent revision, 2014 updated for Java 8

CS5015 Object-oriented Software Development. Lecture: Overview of Java Platform. A. O Riordan, 2010 Most recent revision, 2014 updated for Java 8 CS5015 Object-oriented Software Development Lecture: Overview of Java Platform A. O Riordan, 2010 Most recent revision, 2014 updated for Java 8 Java Programming Language Java is an object-oriented programming

More information

Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz

Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Last Updated 2017-11-08 Project Jigsaw: Primary Goals (Reinhold) Make the Java SE Platform, and the JDK, more easily scalable down to small

More information

History Introduction to Java Characteristics of Java Data types

History Introduction to Java Characteristics of Java Data types Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems

More information

What is cool in Java 8 and new in 9

What is cool in Java 8 and new in 9 What is cool in Java 8 and new in 9 Aurelio Garcia-Ribeyro Director of Product Management Java Platform Group Safe Harbor Statement The following is intended to outline our general product direction. It

More information

JVM Memory Model and GC

JVM Memory Model and GC JVM Memory Model and GC Developer Community Support Fairoz Matte Principle Member Of Technical Staff Java Platform Sustaining Engineering, Copyright 2015, Oracle and/or its affiliates. All rights reserved.

More information

Shenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Roman Kennke Principal Software Engineers Red Hat

Shenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Roman Kennke Principal Software Engineers Red Hat Shenandoah: An ultra-low pause time garbage collector for OpenJDK Christine Flood Roman Kennke Principal Software Engineers Red Hat 1 Shenandoah Why do we need it? What does it do? How does it work? What's

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

20 Most Important Java Programming Interview Questions. Powered by

20 Most Important Java Programming Interview Questions. Powered by 20 Most Important Java Programming Interview Questions Powered by 1. What's the difference between an interface and an abstract class? An abstract class is a class that is only partially implemented by

More information

You, me and jigsaw. Tom Schindl

You, me and jigsaw. Tom Schindl You, me and jigsaw Tom Schindl Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Tom CTO BestSolution.at Systemhaus GmbH

More information

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017 The G1 GC in JDK 9 Erik Duveblad Senior Member of Technical Staf racle JVM GC Team ctober, 2017 Copyright 2017, racle and/or its affiliates. All rights reserved. 3 Safe Harbor Statement The following is

More information

Safely Shoot Yourself in the Foot with Java 9

Safely Shoot Yourself in the Foot with Java 9 1 Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Last Updated 2017-11-04 2 Project Jigsaw: Primary Goals (Reinhold)! Make the Java SE Platform, and the JDK, more easily scalable down

More information

It s Java, Jim, But Not As We Know It!

It s Java, Jim, But Not As We Know It! It s Java, Jim, But Not As We Know It! Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems azul.com @speakjava 1 Agenda Java Lambda expressions Lambda expression performance How far can we

More information

CON Java in a World of Containers

CON Java in a World of Containers CON4429 - Java in a World of Containers paul.sandoz@oracle.com @PaulSandoz mikael.vidstedt@oracle.com Director, Java Virtual Machine @MikaelVidstedt Copyright 2017, Oracle and/or its affiliates. All rights

More information

Special Topics: Programming Languages

Special Topics: Programming Languages Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (

More information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

<Insert Picture Here> Maxine: A JVM Written in Java

<Insert Picture Here> Maxine: A JVM Written in Java Maxine: A JVM Written in Java Michael Haupt Oracle Labs Potsdam, Germany The following is intended to outline our general product direction. It is intended for information purposes

More information

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H JAVA COURSE DETAILS DURATION: 60 Hours With Live Hands-on Sessions J P I N F O T E C H P U D U C H E R R Y O F F I C E : # 4 5, K a m a r a j S a l a i, T h a t t a n c h a v a d y, P u d u c h e r r y

More information

Shenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Principal Software Engineer Red Hat

Shenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Principal Software Engineer Red Hat Shenandoah: An ultra-low pause time garbage collector for OpenJDK Christine Flood Principal Software Engineer Red Hat 1 Why do we need another Garbage Collector? OpenJDK currently has: SerialGC ParallelGC

More information

Faster Objects and Arrays. Closing the [last?] inherent C vs. Java speed gap

Faster Objects and Arrays. Closing the [last?] inherent C vs. Java speed gap Faster Objects and Arrays Closing the [last?] inherent C vs. Java speed gap http://www.objectlayout.org Gil Tene, CTO & co-founder, Azul Systems About me: Gil Tene co-founder, CTO @Azul Systems Have been

More information

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java Page 1 Peers Techno log ies Pv t. L td. Course Brochure Core Java & Core Java &Adv Adv Java Java Overview Core Java training course is intended for students without an extensive programming background.

More information

CHAPTER 1 Introduction to Computers and Java

CHAPTER 1 Introduction to Computers and Java CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and

More information

Advanced Modular Development

Advanced Modular Development Advanced Modular Development Alan Bateman Alex Buckley Java Platform Group, Oracle September 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3 4 5 Prepare for JDK 9

More information

Java Programming Course Overview. Duration: 35 hours. Price: $900

Java Programming Course Overview. Duration: 35 hours. Price: $900 978.256.9077 admissions@brightstarinstitute.com Java Programming Duration: 35 hours Price: $900 Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented

More information

Shenandoah An ultra-low pause time Garbage Collector for OpenJDK. Christine H. Flood Roman Kennke

Shenandoah An ultra-low pause time Garbage Collector for OpenJDK. Christine H. Flood Roman Kennke Shenandoah An ultra-low pause time Garbage Collector for OpenJDK Christine H. Flood Roman Kennke 1 What does ultra-low pause time mean? It means that the pause time is proportional to the size of the root

More information

Alan Bateman Java Platform Group, Oracle November Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1

Alan Bateman Java Platform Group, Oracle November Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Alan Bateman Java Platform Group, Oracle November 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Project Loom Continuations Fibers Tail-calls Copyright 2018, Oracle and/or its

More information

Mission Possible - Near zero overhead profiling. Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018

Mission Possible - Near zero overhead profiling. Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018 Mission Possible - Near zero overhead profiling Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018 Hummingbird image by Yutaka Seki is licensed under CC BY 2.0 Copyright

More information

Using the Singularity Research Development Kit

Using the Singularity Research Development Kit Using the Research Development Kit James Larus & Galen Hunt Microsoft Research ASPLOS 08 Tutorial March 1, 2008 Outline Overview (Jim) Rationale & key decisions architecture Details (Galen) Safe Languages

More information

<Insert Picture Here>

<Insert Picture Here> 1 2010-0237 The Maxine Inspector: A Specialized Tool for VM Development, Santa Clara, CA Michael L. Van De Vanter Researcher, Oracle Sun Labs The Maxine Project at Oracle Sun Labs:

More information

2 rd class Department of Programming. OOP with Java Programming

2 rd class Department of Programming. OOP with Java Programming 1. Structured Programming and Object-Oriented Programming During the 1970s and into the 80s, the primary software engineering methodology was structured programming. The structured programming approach

More information

Manually Java 7 Update Bits Windows 7

Manually Java 7 Update Bits Windows 7 Manually Java 7 Update 21 64 Bits Windows 7 Version 7 Update 55 of Java's Standard Edition addresses 37 security If you're running 64-bit Windows, check your Java version and update it if necessary to

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

Chapter 1: Introduction to Computers and Java

Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Six New Trends in the JVM

Six New Trends in the JVM Six New Trends in the JVM John Rose, JVM Architect Brussels FOSDEM, February 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved. 1 The following is intended to outline our general product

More information

Timing for Interfaces and Abstract Classes

Timing for Interfaces and Abstract Classes Timing for Interfaces and Abstract Classes Consider using abstract classes if you want to: share code among several closely related classes declare non-static or non-final fields Consider using interfaces

More information

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager HTML5 Evolution and Development Matt Spencer UI & Browser Marketing Manager 1 HTML5 Ratified. finally! After 7 years of development, the HTML5 specification was ratified on 28 th October 14 urce>

More information

Lecture 14. No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions?

Lecture 14. No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions? Lecture 14 No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions? Friday, February 11 CS 215 Fundamentals of Programming II - Lecture 14 1 Outline Static

More information

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Welcome to the session...

Welcome to the session... Welcome to the session... Copyright 2013, Oracle and/or its affiliates. All rights reserved. 02/22/2013 1 The following is intended to outline our general product direction. It is intended for information

More information

Lesson 2 Dissecting Memory Problems

Lesson 2 Dissecting Memory Problems Lesson 2 Dissecting Memory Problems Poonam Parhar JVM Sustaining Engineer Oracle Agenda 1. Symptoms of Memory Problems 2. Causes of Memory Problems 3. OutOfMemoryError messages 3 Lesson 2-1 Symptoms of

More information

Zing Vision. Answering your toughest production Java performance questions

Zing Vision. Answering your toughest production Java performance questions Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A

More information

Managed runtimes & garbage collection

Managed runtimes & garbage collection Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security

More information

Making The Future Java

Making The Future Java Making The Future Java Dalibor Topić (@robilad) Principal Product Manager October 18th, 2013 - HrOUG, Rovinj 1 The following is intended to outline our general product direction. It is intended for information

More information

Manual Update Java 7 25 Mac 32 Bit Offline

Manual Update Java 7 25 Mac 32 Bit Offline Manual Update Java 7 25 Mac 32 Bit Offline Installer 5.3.1 Java Control Panel Update tab, 5.3.2 Manual install or update, 5.3.3 Windows On Mac OS, the Java plugin is shown as Java Applet Plug-in (on Mac

More information

Notes of the course - Advanced Programming. Barbara Russo

Notes of the course - Advanced Programming. Barbara Russo Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................

More information

Java Internals. Frank Yellin Tim Lindholm JavaSoft

Java Internals. Frank Yellin Tim Lindholm JavaSoft Java Internals Frank Yellin Tim Lindholm JavaSoft About This Talk The JavaSoft implementation of the Java Virtual Machine (JDK 1.0.2) Some companies have tweaked our implementation Alternative implementations

More information

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double("3.14"); 4... Zheng-Liang Lu Java Programming 290 / 321

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double(3.14); 4... Zheng-Liang Lu Java Programming 290 / 321 Wrapper Classes To treat values as objects, Java supplies standard wrapper classes for each primitive type. For example, you can construct a wrapper object from a primitive value or from a string representation

More information

openjdk.java.net A community centered around open source Java SE and related projects

openjdk.java.net A community centered around open source Java SE and related projects OpenJDK openjdk.java.net openjdk.java.net A community centered around open source Java SE and related projects openjdk.java.net A community centered around open source Java SE and related projects The

More information

Lambdas & Streams In JDK 8: Beyond The Basics

Lambdas & Streams In JDK 8: Beyond The Basics Lambdas & Streams In JDK 8: Beyond The Basics Simon Ritter Deputy CTO, Azul Systems @speakjava azul.com Copyright Azul Systems 2015 1 A clever man learns from his mistakes......a wise man learns from other

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

Manual Update Java 7 25 Mac Windows 7 64 Bit

Manual Update Java 7 25 Mac Windows 7 64 Bit Manual Update Java 7 25 Mac Windows 7 64 Bit Oracle's Java Runtime Environment (JRE) for 64-bit Windows PCs contains the Java Virtual Machine, Suggested Searches. Search Within: All Software Windows Mac

More information

G1 Garbage Collector Details and Tuning. Simone Bordet

G1 Garbage Collector Details and Tuning. Simone Bordet G1 Garbage Collector Details and Tuning Who Am I - @simonebordet Lead Architect at Intalio/Webtide Jetty's HTTP/2, SPDY and HTTP client maintainer Open Source Contributor Jetty, CometD, MX4J, Foxtrot,

More information

Ahead of Time (AOT) Compilation

Ahead of Time (AOT) Compilation Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement

More information