This document discusses new features and changes in Java 14 and previews for Java 15. For Java 14, it outlines 16 JEPs including helpful null pointer exceptions, NUMA-aware memory allocation, and removing legacy garbage collectors. It also covers new tools like JFR event streaming and the packaging tool. For Java 15, hidden classes, removing Nashorn, and low-latency garbage collectors like ZGC and Shenandoah are previewed. Overall it provides a concise yet informative summary of major changes and previews for Java 14 and 15.
10. 4: String name = person.getName().toUpperCase();
public class Sample {
public static void main(String... args){
Person person = new Person();
String name = person.getName().toUpperCase();
}
static class Person {
String name = null;
Person() {
}
String getName() {
return name;
}
}
}
10
12. -XX:+ShowCodeDetailsInExceptionMessages
$ java -XX:+ShowCodeDetailsInExceptionMessages Sample
Exception in thread "main" java.lang.NullPointerException: Cann
at Sample.main(Sample.java:4)
Exception in thread "main" java.lang.NullPointerException:
Cannot invoke "String.toUpperCase()" // When
because the return value of "Sample$Person.getName()" is null // What
12
13. Case:localvariable
3: String[] names = null;
4: names[1].toLowerCase();
$ java -XX:+ShowCodeDetailsInExceptionMessages LocalStringArray
Exception in thread "main" java.lang.NullPointerException:
Cannot load from object array // When
because "<local1>" is null // What
at LocalStringArray.main(LocalStringArray.java:4)
$ javac -g LocalStringArray.java // Add all debugging information
$ java -XX:+ShowCodeDetailsInExceptionMessages LocalStringArray
Exception in thread "main" java.lang.NullPointerException:
Cannot load from object array // When
because "names" is null // What
at LocalStringArray.main(LocalStringArray.java:4)
13