Ctrl+P again to print, arrows/tab to navigate results, enter to confirm

    Boilerplate

    The shortest Java boilerplate (valid program) is

    interface I{static void main(String[]a){}}
    

    The var data type

    Defining a type with var is often shorter. Note that multiple assignment is not possible with this method.

    String s="foo";
    // vs
    var s="foo";
    

    Unicode constants

    This can save 1 to 2 characters on char scoring. If you need a large integer constant between 1000 and 65535 (inclusive), it may help to use a char literal instead of a number:

    var n=30000;
    // vs
    var n='田';
    

    Scientific Notation

    This can save a few chars when using large numbers that end in zeros

    var n=30000;
    // vs
    var n=3e4;
    

    Loop n times

    Compare these two ways of looping n times. The latter is 2 bytes shorter.

    interface I{static void main(String[]s){for(int i=0;i++<n;)f();}}
    // vs
    interface I{static void main(String[]s){for(I m:new I[n])f();}}