eatmore's blog

By eatmore, history, 6 years ago, In English

Java 15 was released a few days ago. Here are some changes that may be useful for competitive programming.

  • Pattern matching for instanceof, first introduced in Java 14, is still a preview.
  • Text blocks, first introduced in Java 13, are now final:
String input = """
	3 3
	1 2
	1 3
	2 3""";
  • Records, first introduced in Java 14, are now final:
record Fraction(int num, int den) {
	Fraction {
		if (den == 0) {
			throw new IllegalArgumentException("zero denominator");
		}
		if (den < 0) {
			num = -num;
			den = -den;
		}
	}

	Fraction add(Fraction o) {
		return new Fraction(num * o.den + den * o.num, den * o.den);
	}

	// ...
}
  • Useful new methods: CharSequence.isEmpty() (also inherited by String), String.stripIndent() (useful for text blocks), String.formatted(), Math.absExact().

Previous posts: Java 8, 9, 10, 11, 12, 13 and 14.

  • Vote: I like it
  • +83
  • Vote: I do not like it

| Write comment?
»
6 years ago, hide # |
 
Vote: I like it -32 Vote: I do not like it

Who uses Java pft

»
6 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

A new feature is added in the form of sealed classes. Here no interface or class can inherit the parent sealed class. Only those class/interface can use the class features which are permitted by the sealed parent class.

Previously, inheritance was revoked by final class. Now, sealed class provide partial revokation with allowing only few structures to inherit them.

»
6 years ago, hide # |
 
Vote: I like it +78 Vote: I do not like it

the feeling from looking away from java 8 for 2 minutes and coming back to find oracle has made java 15 must be what parents feel when their kid goes to university