Java 10 contains several new features including local variable type inference using the var keyword, time-based release versioning, improved support for Docker containers, and various library enhancements. It focuses on improving performance and usability. Some notable changes include local variable type inference for concise code, parallel full GC for the G1 collector to reduce latency, and application data sharing to improve startup times.
Java 9/10/11 - What's new and why you should upgradeSimone Bordet
Ā
Java 11 is the new Java release and, differently from Java 9 and Java 10, it is a "Long Term Support" release - we will see what that means exactly.
This presentation details the main new features of Java 11, starting from licensing (where there are important changes - in particular the Oracle JDK may only be used in production if you have a support contract with Oracle), to arrive to the new Java 11 features, with a quick peek back at what was introduced in Java 9 and Java 10.
The main Java 11 arguments are:
ā¢ Two new garbage collectors: EpsilonGC e ZGC
ā¢ Support for TLS 1.3
ā¢ Possibility to execute a single source file
ā¢ New HTTP client based on the Flow API
ā¢ Removal of modules (CORBA, JTA, @Inject, ecc.)
ā¢ Bytecode news (nest-mates, dynamic constants)
A quick introduction about everything that's new in Java 11. Includes API changes, language changes and new tools in the JDK.
Demo's for this presentation can be found here: https://github.com/MichelSchudel/java11demo
Java 11 is the second LTS release after Java 8. Java 11 onwards, Oracle JDK would no longer be free for commercial use.
Agenda:
~ Java 11
~ How to download Java 11 free version
~ Important changes and information.
~ Java 11 Features and Enhancements
~ Removed Features
~ Deprecated Features
~ Migration to Java 11
Java is Object Oriented Programming. Java 8 is the latest version of the Java which is used by many companies for the development in many areas. Mobile, Web, Standalone applications.
Still running on Java 8? Tempted by new versions of Java, but afraid too? This material contains some information on what to expect, and what kind of lessons were learned taking multitude of Java 8 projects to Java 9, 10, and 11.
Java 9/10/11 - What's new and why you should upgradeSimone Bordet
Ā
Java 11 is the new Java release and, differently from Java 9 and Java 10, it is a "Long Term Support" release - we will see what that means exactly.
This presentation details the main new features of Java 11, starting from licensing (where there are important changes - in particular the Oracle JDK may only be used in production if you have a support contract with Oracle), to arrive to the new Java 11 features, with a quick peek back at what was introduced in Java 9 and Java 10.
The main Java 11 arguments are:
ā¢ Two new garbage collectors: EpsilonGC e ZGC
ā¢ Support for TLS 1.3
ā¢ Possibility to execute a single source file
ā¢ New HTTP client based on the Flow API
ā¢ Removal of modules (CORBA, JTA, @Inject, ecc.)
ā¢ Bytecode news (nest-mates, dynamic constants)
A quick introduction about everything that's new in Java 11. Includes API changes, language changes and new tools in the JDK.
Demo's for this presentation can be found here: https://github.com/MichelSchudel/java11demo
Java 11 is the second LTS release after Java 8. Java 11 onwards, Oracle JDK would no longer be free for commercial use.
Agenda:
~ Java 11
~ How to download Java 11 free version
~ Important changes and information.
~ Java 11 Features and Enhancements
~ Removed Features
~ Deprecated Features
~ Migration to Java 11
Java is Object Oriented Programming. Java 8 is the latest version of the Java which is used by many companies for the development in many areas. Mobile, Web, Standalone applications.
Still running on Java 8? Tempted by new versions of Java, but afraid too? This material contains some information on what to expect, and what kind of lessons were learned taking multitude of Java 8 projects to Java 9, 10, and 11.
The features released between Java 11 and Java 17 have brought a greater opportunity for developers to improve application development productivity as well and code expressiveness and readability. In this deep-dive session, you will discover all the recent Project Amber features added to the Java language such as Records (including Records serialization), Pattern Matching for `instanceof`, switch expression, sealed classes, and hidden classes. The main goal of the Amber Project is to bring Pattern Matching to the Java platform, which will impact both the language and the JDK APsI. You will discover record patterns, array patterns, as well as deconstruction patterns, through constructors, factory methods, and deconstructors.
You can find the code shown here: https://github.com/JosePaumard/devoxx-uk-2021
Modern Java web applications with Spring Boot and ThymeleafLAY Leangsros
Ā
If youāre using Java in an enterprise environment, youāve most likely been using Spring Framework with JSP which does the job pretty well.But I will provide the sampling of how Spring Boot helps you accelerate and facilitate application development better. I will show a templating technology, Thymleaf which can be used much more modern features;
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
ApresentaĆ§Ć£o do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero Ć nuvem com Java e Kubernetes
The features released between Java 11 and Java 17 have brought a greater opportunity for developers to improve application development productivity as well and code expressiveness and readability. In this deep-dive session, you will discover all the recent Project Amber features added to the Java language such as Records (including Records serialization), Pattern Matching for `instanceof`, switch expression, sealed classes, and hidden classes. The main goal of the Amber Project is to bring Pattern Matching to the Java platform, which will impact both the language and the JDK APsI. You will discover record patterns, array patterns, as well as deconstruction patterns, through constructors, factory methods, and deconstructors.
You can find the code shown here: https://github.com/JosePaumard/devoxx-uk-2021
Modern Java web applications with Spring Boot and ThymeleafLAY Leangsros
Ā
If youāre using Java in an enterprise environment, youāve most likely been using Spring Framework with JSP which does the job pretty well.But I will provide the sampling of how Spring Boot helps you accelerate and facilitate application development better. I will show a templating technology, Thymleaf which can be used much more modern features;
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
ApresentaĆ§Ć£o do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero Ć nuvem com Java e Kubernetes
Node.js 8.0.0 has brought a lot of new features and fixes. The new improvements must be helpful in empowering workflow for which Node.js developers have been waiting for.
Top Features And Updates Of Angular 13 You Must KnowAndolasoft Inc
Ā
At Andolasoft, we have expert Angular developers can help you migrate your existing applications, and also create new web and mobile applications with the best quality.
Microsoft .NET 6 -What's All About The New UpdateAdam John
Ā
.NET Upgrade Assistant is a command-line tool that can be run on various types of. NET Framework applications. The tool includes the installation of analyzers that can assist with finishing the migration.
Let's Check out What's All About The New Update Microsoft .NET 6 and Get the best Web design and development services from Zenesys. Visit@ https://bit.ly/3EgjJmh
This is a presentation given in a Java Open day conducted by Trainologic.
Trainologic shares its training content for free at trainologic.org you can find many more free full course there.
This presentation starts with the history and evolution of Java followed by OOP paradigms. Then the data types, variables and arrays were discussed. After that the classes and objects were introduced
Take a look at what Rails 5 has in store for you. We go through all the new features and improvements across development, testing, caching and much more. So let's dive in.
Angular 13 is a pre-planned upgrade to the most recognized and widely-used typescript-style web framework called Angular. Google, the owner of this framework, has already created and released eight beta versions as of 24th September.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Ā
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
Ā
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our teamās work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
Ā
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
First Steps with Globus Compute Multi-User EndpointsGlobus
Ā
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
Ā
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operateāor are planning to operateābroader deployments at their institution.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Ā
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Ā
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Ā
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. Itās here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
Ā
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planetās largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Ā
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
Ā
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Ā
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Ā
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Ā
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Ā
Even though at surface level ājava.lang.OutOfMemoryErrorā appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Ā
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Large Language Models and the End of ProgrammingMatt Welsh
Ā
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
2. WHAT IS NEW IN JAVA 10
Java 10 contains various new features and enhancements.
This is the fastest release of a java version in its 23 year
history :)
1. New Features in Language
2. New Features in Compiler
3. New Features in Libraries
4. New Features in Tools
5. New Features in Runtime
6. Miscellaneous Changes
2
3. WHAT IS NEW IN JAVA 10
1. NEW FEATURES IN LANGUAGE
1. Local variable type inference
2. Time-Based Release Versioning
3. Root Certiļ¬cates
3
4. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.1 LOCAL VARIABLE TYPE INFERENCE
ā£ Java is known to be a bit verbose, which can be good when it comes to
understanding what you or another developer had in mind when a function was
written. Local variable type inference feature breaks this rule.
ā£ Local variable type inference is the biggest new feature in Java 10 for developers.
ā£ With the exception of assert from the Java 1.4 days, new keywords always seem
to make a big splash, and var is no different.
ā£ What the var keyword does is turn local variable assignments:āØ
āØ
Map<String, String> myMap = new HashMap<>();āØ
āØ
into:āØ
āØ
var thisIsAlsoMyMap = new HashMap<String, String>();
4
5. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.1 LOCAL VARIABLE TYPE INFERENCE
ā£ Local type inference can be used only in the following
scenarios:
- Limited only to local variable with initializer
- Indexes of enhanced for loop or indexes
- Local declared in for loop
ā£ It cannot be used for member variables, method parameters,
return types, etc.
ā£ var is not a keyword ā this ensures backward compatibility for
programs using var as a function or variable name.
5
6. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.1 LOCAL VARIABLE TYPE INFERENCE
ā£ We canāt use āvarā in scenarios below:
- var n; // cannot use 'var' without initializer
- var emptyList = null; // variable initializer is ānull'
- public var = "hello"; // 'var' is not allowed here
- var p = (String s) -> s.length() > 10; // lambda expression
needs an explicit target-type
- var arr = { 1, 2, 3 }; // array initializer needs an explicit
target-type
6
7. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.1 LOCAL VARIABLE TYPE INFERENCE
ā£ Example:āØ
āØ
var numbers = List.of(1, 2, 3, 4, 5); // inferred value ArrayList<String>āØ
āØ
// Index of Enhanced For LoopāØ
for (var number : numbers) {āØ
System.out.println(number);āØ
}āØ
āØ
// Local variable declared in a loopāØ
for (var i = 0; i < numbers.size(); i++) {āØ
System.out.println(numbers.get(i));āØ
}
7
8. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.2 TIME-BASED RELEASE VERSIONING
ā£ The development of new Java versions was, up until now,
very feature driven.
ā£ This meant that you had to wait for a few years for the next
release.
ā£ Oracle has now switched to a new, time based model.
ā£ Not everyone agrees with this proceeding. Larger
companies also appreciated the stability and the low rate
of change of Java so far
8
9. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.2 TIME-BASED RELEASE VERSIONING
ā£ Oracle has responded to these concerns and continues to
offer long-term releases on a regular basis, but also at
longer intervals. And after Java 8, it is Java 11, which will
receive a long term support again.
ā£ Java 9 and Java 10 on the other hand will only be
supported for the time period of half a year, until the next
release is due.
ā£ In fact, Java 9 and Java 10 support has just ended, since
Java 11 is out.
9
10. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.2 TIME-BASED RELEASE VERSIONING
ā£ With adoption of time based release cycle, Oracle changed the version-string
scheme of the Java SE Platform and the JDK, and related versioning
information, for present and future time-based release models
ā£ The new pattern of the Version number is: FEATURE.INTERIM.UPDATE.PATCH
ā£ FEATURE: counter will be incremented every 6 months and will be based on
feature release versions, e.g: JDK 10, JDK 11.
ā£ INTERIM: counter will be incremented for non-feature releases that contain
compatible bug ļ¬xes and enhancements but no incompatible changes.
ā£ UPDATE: counter will be incremented for compatible update releases that ļ¬x
security issues, regressions, and bugs in newer features.
ā£ PATCH: counter will be incremented for an emergency release to ļ¬x a critical
issue.
10
11. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LANGUAGE
1.3 ROOT CERTIFICATES
ā£ The cacerts keystore, which was initially empty so far, is
intended to contain a set of root certiļ¬cates that can be used to
establish trust in the certiļ¬cate chains used by various security
protocols.
ā£ With Java 10, Oracle has open-sourced the root certiļ¬cates in
Oracleās Java SE Root CA program in order to make OpenJDK
builds more attractive to developers and to reduce the
differences between those builds and Oracle JDK builds.
ā£ Basically, this means that now doing simple things like
communicating over HTTPS between your application and, say,
a Google RESTful service will be much simpler with OpenJDK.
11
12. WHAT IS NEW IN JAVA 10
2. NEW FEATURES IN COMPILER
1. Experimental Java-Based JIT Compiler
2. Bytecode Generation for Enhanced for Loop
12
13. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN COMPILER
2.1 EXPERIMENTAL JAVA-BASED JIT COMPILER
ā£ The Just-In-Time (JIT) Compiler is the part of java that converts java
byte code into machine code at runtime. It was written in c++
ā£ This feature enables the Java-based JIT compiler, Graal, to be used as
an experimental JIT compiler on the Linux/x64 platform.
ā£ Graal is a complete rewrite of the JIT compiler in java from scratch.
ā£ To enable Graal, add these ļ¬ags to your command line arguments
when starting the application:āØ
āØ
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
ā£ Keep in mind that the Graal team makes no promises in this ļ¬rst release
that this compiler is any faster.
13
14. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN COMPILER
2.2 BYTE CODE GENERATION FOR ENHANCED FOR LOOP
ā£ Bytecode generation has been improved for enhanced for loops, providing
an improvement in the translation approach for them. For example:āØ
āØ
List<String> data = new ArrayList<>(); for (String b : data);āØ
āØ
The following is the code generated after the enhancement:āØ
āØ
{ /*synthetic*/ Iterator i$ = data.iterator(); for (; i$.hasNext(); ) { String b =
(String)i$.next(); } b = null; i$ = null; }
ā£ Declaring the iterator variable outside of the for loop allows a null to be
assigned to it as soon as it is no longer used
ā£ This makes it accessible to the GC, which can then get rid of the unused
memory.
14
15. WHAT IS NEW IN JAVA 10
3. NEW FEATURES IN LIBRARIES
1. Creating Unmodiļ¬able Collections
2. Optional.orElseThrow() Method
15
16. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LIBRARIES
3.1 CREATING UNMODIFIABLE COLLECTIONS
1. Several new APIs have been added that facilitate the creation of unmodiļ¬able
collections.
2. The List.copyOf, Set.copyOf, and Map.copyOf methods create new collection
instances from existing instances.
3. New methods toUnmodiļ¬ableList, toUnmodiļ¬ableSet, and
toUnmodiļ¬ableMap have been added to the Collectors class in the stream
package. These methods allow the elements of a Stream to be collected into
an unmodiļ¬able collection.āØ
āØ
Stream<String> myStream = Stream.of("a", "b", "c");āØ
List<String> unModiļ¬ableList =
myStream.collect(Collectors.toUnmodiļ¬ableList());āØ
unModiļ¬ableList.add(ād"); // throws java.lang.UnsupportedOperationException
16
17. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN LIBRARIES
3.2 CREATING UNMODIFIABLE COLLECTIONS
ā£ Optional, OptionalDouble, OptionalInt and OptionalLong each
got a new method orElseThrow() which doesnāt take any argument
and throws NoSuchElementException if no value is present: āØ
āØ
@TestāØ
public void whenListContainsInteger_OrElseThrowReturnsInteger() {āØ
Integer ļ¬rstEven = someIntList.stream()āØ
.ļ¬lter(i -> i % 2 == 0)āØ
.ļ¬ndFirst()āØ
.orElseThrow();āØ
is(ļ¬rstEven).equals(Integer.valueOf(2));āØ
}
17
18. WHAT IS NEW IN JAVA 10
4. NEW FEATURES IN TOOLS
1. JShell Startup
2. Removed Tools
18
19. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN TOOLS
4.1 JSHELL STARTUP
ā£ The time needed to start JShell has been signiļ¬cantly
reduced, especially in cases where a start ļ¬le with many
snippets is used
19
20. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN TOOLS
4.2 REMOVED TOOLS
ā£ Tool javah has been removed from Java 10 which
generated C headers and source ļ¬les which were required
to implement native methods. Now, javac -h can be used
instead.
ā£ policytool was the security tool for policy ļ¬le creation and
management. This has now been removed.
20
21. WHAT IS NEW IN JAVA 10
5. NEW FEATURES IN RUNTIME
1. Parallel Full GC for G1
2. Improvements for Docker Containers
3. Application Data-Class Sharing
4. Removed Options
21
22. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.1. PARALLEL FULL GC FOR G1
ā£ G1 garbage collector was made default in JDK 9.
ā£ However, the full GC for G1 used a single threaded mark-sweep-
compact algorithm.
ā£ This has been changed to the parallel mark-sweep-compact algorithm
in Java 10 effectively reducing the stop-the-world time during full GC.
ā£ This change wonāt help the best-case performance times of the
garbage collector, but it does signiļ¬cantly reduce the worst-case
latencies.
ā£ When concurrent garbage collection falls behind, it triggers a Full GC
collection.
22
23. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.2. IMPROVEMENTS FOR DOCKER CONTAINERS
ā£ The JVM now knows when it is running inside a Docker
Container.
ā£ This means the application now has accurate information
about what the docker container allocates to memory,
CPU, and other system resources.
ā£ Previously, the JVM queried the host operating system to
get this information.
ā£ However, this support is only available for Linux-based
platforms.
23
24. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.2. IMPROVEMENTS FOR DOCKER CONTAINERS
ā£ There are command line options to specify how the JVM inside a Docker container allocates
internal memory.
ā£ This new support is enabled by default and can be disabled in the command line with the
JVM option:āØ
āØ
-XX:-UseContainerSupport
ā£ To set the memory heap to the container group size and limit the number of processors you
could pass in these arguments:āØ
āØ
-XX:+UseCGroupMemoryLimitForHeapā-XX:ActiveProcessorCount=2
ā£ Three new JVM options have been added to allow Docker container users to gain more ļ¬ne-
grained control over the amount of system memory that will be used for the Java Heap:āØ
āØ
-XX:InitialRAMPercentageāØ
-XX:MaxRAMPercentageāØ
-XX:MinRAMPercentage
24
25. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.3. APPLICATION DATA-CLASS SHARING
ā£ Java 5 introduced Class-Data Sharing (CDS) to improve startup times of
smaller Java applications.
ā£ CDS only allowed the bootstrap class loader, limiting the feature to system
classes only.
ā£ This feature extends the existing CDS feature for allowing application classes
to be placed in the shared archive in order to improve startup and footprint.
ā£ The general idea was that when the JVM ļ¬rst launched, anything loaded was
serialized and stored in a ļ¬le on disk that could be reloaded on future
launches of the JVM.
ā£ This meant that multiple instances of the JVM shared the class metadata so it
wouldnāt have to load them all every time.
25
26. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.3. APPLICATION DATA-CLASS SHARING
ā£ We can use the following steps to make use of this feature:
1. Get the list of classes to archive:āØ
$ java -Xshare:off -XX:+UseAppCDS āØ
-XX:DumpLoadedClassList=hello.lst -cp hello.jar HelloWorld
2. Create the AppCDS archive:āØ
$ java -Xshare:dump -XX:+UseAppCDS āØ
-XX:SharedClassListFile=hello.lst āØ
-XX:SharedArchiveFile=hello.jsa -cp hello.jar
3. Use the AppCDS archive:āØ
$ java -Xshare:on -XX:+UseAppCDS āØ
-XX:SharedArchiveFile=hello.jsa -cp hello.jar HelloWorld
26
27. WHAT IS NEW IN JAVA 10 - NEW FEATURES IN RUNTIME
5.4. REMOVED OPTIONS
ā£ Removal of FlatProļ¬ler: The FlatProļ¬ler, deprecated in
JDK 9, has been made obsolete by removing the
implementation code. The FlatProļ¬ler was enabled by
setting the -Xprof VM argument. The -Xprof ļ¬ag remains
recognized in this release; however, setting it will print out
a warning message
ā£ Removal of Obsolete -X Options: The obsolete HotSpot
VM options (-Xoss, -Xsqnopause, -Xoptimize, -
Xboundthreads, and -Xusealtsigs) have been removed
27
28. WHAT IS NEW IN JAVA 10
6. MISCELLANEOUS CHANGES
ā£ Class File Version Number is 54.0:āØ
The class ļ¬le version has been changed from 53 (or 44 + 9) to 54 (44 +10), even though
JDK 10 did not introduce other changes to the class ļ¬le format.
ā£ Consolidate the JDK Forest into a Single Repository:āØ
Combined the numerous repositories of the JDK forest into a single repository to
simplify and streamline development. The code base until now has been broken into
multiple repos, which can cause problems with source-code management.
ā£ Additional Unicode Language-Tag Extensions:āØ
Enhanced the java.util.Locale and related APIs to implement additional Unicode
extensions of BCP 47 language tags.
ā£ Garbage Collector Interface:āØ
A clean garbage collector interface to improve source-code isolation of different
garbage collectors. The goals for this effort include better modularity for internal
garbage collection code in the HotSpot virtual machine and making it easier to add a
new garbage collector to HotSpot.
28
29. WHAT IS NEW IN JAVA 10
6. MISCELLANEOUS CHANGES
ā£ Heap Allocation on Alternative Memory Devices:āØ
It enables the HotSpot VM to allocate the Java object heap
on an alternative memory device, such as an NV-DIMM,
speciļ¬ed by the user.
ā£ Thread-Local HandshakesāØ
This is an internal JVM feature to improve performance.
This feature provides a way to execute a callback on
threads without performing a global VM safepoint. Make it
both possible and cheap to stop individual threads and
not just all threads or none.
29
30. WHAT IS NEW IN JAVA 10
SOURCES
- https://www.oracle.com/technetwork/java/javase/10-
relnote-issues-4108729.html
- http://cr.openjdk.java.net/~iris/se/10/latestSpec/
- https://www.baeldung.com/java-10-overview
- https://stackify.com/whats-new-in-java-10/
- https://www.journaldev.com/20395/java-10-features
- https://www.quora.com/What-is-new-in-Java-10
30