$ javac preview/PrimitiveInstanceof.java (25.0.4.1+1-LTS) preview/PrimitiveInstanceof.java:3: error: primitive patterns are a preview feature and are disabled by default. if (i instanceof byte b) return i + " fits in a byte: " + b; ^ (use --enable-preview to enable primitive patterns) 1 error $ javac preview/PrimitiveInstanceof.java (27+35) preview/PrimitiveInstanceof.java:3: error: primitive patterns are a preview feature and are disabled by default. if (i instanceof byte b) return i + " fits in a byte: " + b; ^ (use --enable-preview to enable primitive patterns) 1 error $ javac --enable-preview --release 25 preview/PrimitiveInstanceof.java && java --enable-preview PrimitiveInstanceof (25.0.4.1+1-LTS) 100 fits in a byte: 100 1000 fits in a short: 1000 100000 needs an int 0.5 converts to float 0.5 without loss 0.1 does NOT convert to float without loss $ javac --enable-preview --release 27 preview/PrimitiveInstanceof.java && java --enable-preview PrimitiveInstanceof (27+35) 100 fits in a byte: 100 1000 fits in a short: 1000 100000 needs an int 0.5 converts to float 0.5 without loss 0.1 does NOT convert to float without loss $ javac --enable-preview --release 25 preview/PrimitiveSwitch.java && java --enable-preview PrimitiveSwitch (25.0.4.1+1-LTS) OK | other success 204 | client error 404 | something else 500 yes no zero one many (9223372036854775807) $ javac --enable-preview --release 27 preview/PrimitiveSwitch.java && java --enable-preview PrimitiveSwitch (27+35) OK | other success 204 | client error 404 | something else 500 yes no zero one many (9223372036854775807) $ javac --enable-preview --release 25 preview/PrimitiveInRecord.java && java --enable-preview PrimitiveInRecord (25.0.4.1+1-LTS) whole degrees: 21 fractional: 21.5 not a reading $ javac --enable-preview --release 27 preview/PrimitiveInRecord.java && java --enable-preview PrimitiveInRecord (27+35) whole degrees: 21 fractional: 21.5 not a reading $ javac --enable-preview --release 25 preview/PrimitiveEdges.java && java --enable-preview PrimitiveEdges (25.0.4.1+1-LTS) 0.0 int? true float? true -0.0 int? false float? true NaN int? false float? true 1.6777217E7 int? true float? false 1.0E10 int? false float? true 3.0 int? true float? true 1099511627776 instanceof int? false Object holding Integer matches int pattern: 42 Short in Object does not match int 65 as char: A $ javac --enable-preview --release 27 preview/PrimitiveEdges.java && java --enable-preview PrimitiveEdges (27+35) 0.0 int? true float? true -0.0 int? false float? true NaN int? false float? true 1.6777217E7 int? true float? false 1.0E10 int? false float? true 3.0 int? true float? true 1099511627776 instanceof int? false Object holding Integer matches int pattern: 42 Short in Object does not match int 65 as char: A $ javac --enable-preview --release 25 preview/BoxedToNarrower.java && java --enable-preview BoxedToNarrower (25.0.4.1+1-LTS) preview/BoxedToNarrower.java:4: error: incompatible types: Integer cannot be converted to byte if (boxed instanceof byte b) System.out.println("fits a byte: " + b); // Integer to byte is not allowed ^ 1 error Error: Could not find or load main class BoxedToNarrower Caused by: java.lang.ClassNotFoundException: BoxedToNarrower $ javac --enable-preview --release 27 preview/BoxedToNarrower.java && java --enable-preview BoxedToNarrower (27+35) preview/BoxedToNarrower.java:4: error: incompatible types: Integer cannot be converted to byte if (boxed instanceof byte b) System.out.println("fits a byte: " + b); // Integer to byte is not allowed ^ 1 error Error: Could not find or load main class BoxedToNarrower Caused by: java.lang.ClassNotFoundException: BoxedToNarrower