PFB - the abstracts of talks Chandra could present, and a speaker bio.
Preferred: Abstract (Reflection and Unsafe Usage - a Code Kata, 1h - 1:15h)
This session covers Method and Var Handles. Attendees can code along/download the "kata" with failing tests that need to be fixed with the provided hints. The session focuses on a live demonstration of a few tests being fixed to explain the differences between erstwhile Reflection API and the lightweight replacements introduced via Method Handles. Additionally, the session will also cover the (ab)use of sun.misc.Unsafe and its newer safer complimentary VarHandles.
Java reflection has always been a subtle presence since Java 1.1 (circa 1997) but when used it does present challenges that are visible only at runtime and also subverts the "strongly typed" nature of the Java language.
This session highlights JSR 292 (Da Vinci Machine Project), set out to ease the implementations of dynamic language implementation and improve their performance on the JVM; chief among them being the lightweight references to methods. Several code examples are then shown that demonstrate how a parity between the heavyweight reflection API of the yore can be achieved with a cleaner, modern and more lightweight API that is as performant as a statically linked Java call.
Examples of the usage of sun.misc.Unsafe and its newer complementary API in Var Handles is similarly demonstrated with some code samples that will be made public for post-session offline experimentation by attendees.
Preferred: Abstract (Java Date Time API - a Kata, 1h)
Introduction to Java Date/Time API and a workshop that covers most of the API. The workshop is to fix broken unit tests that demonstrate the similarities and differences between the two APIs. Comparisons between the existing styles of using java.util.Date, java.util.Calendar and java.text.* formatters with the newer Java Time APIs are highlighted via these tests. In addition, means of converting to and from the older temporal utils to the new Java Time API are covered.
Java Date and Time prior to Java 8 was via utility classes that existed in a misplaced java.util package. Without proper organization and hierarchy as well as a growing demand for more functionality, these classes quickly grew into a unusably large blob. Java 8 Time API (as a solution to the java.util temporal classes), is modeled after JodaTime library, which most Java developers resorted to, anyways, since it had proper structure and hierarchy. Significant changes from the JodaTime library were made when creating the Java Time API. This kata focuses on teaching how to use the Java Time API.
Abstract (Java's Garbage Collection - A Journey until Java 12, 1h)
Modern Java has a collection of sophisticated Garbage Collection patterns and models.
This session will provide an overview of how basic Garbage Collection patterns and models work in Java. The presentation material includes various Regional Collector JVM options and flags for tuning GC behavior as well as new logging techniques using Java Unified Logging.
Details will be shared about the new garbage collectors being introduced since Java 10, covering Shenandoah, ZGC and Epsilon.
About Speaker: Chandra Guntur
Chandra Guntur is a Director and Java Advocate in Resilient Systems Engineering, BNY Mellon. Chandra has been a technologist in the financial services industry since 2003 and is programming with Java since 1998. He is one of the representatives for BNY Mellon in the Java Community Process (JCP) Executive Committee. He is a Java User Group (JUG) Leader, and helps run one of the largest groups, NYJavaSIG. Chandra is also responsible for running the NYJavaSIG Hands-On-Workshops (HOW), conducting code workshops and Code Katas on core Java features. He is a frequent speaker at Java meetups, user groups, and key conferences including Oracle CodeOne, Oracle Code NY, QCon New York, Devnexus and GIDS India.
- NetBeans Dream Team
- 12 Awards till date, recently received "Rashtriya Pratibha Award"
- Author of "Instant NetBeans IDE How-to" by Packt Pub, UKatul.pal...@gmail.com