I came across this little quine program, written without main method:
enum f {
f;
System z;
String s="enum f{f;System z;String s=%c%s%1$c;{z.out.printf(s,34,s);z.exit(0);}}";
{z.out.printf(s,34,s);
z.exit(0);}
}
Can somebody explain how does this work? Thanks.
Lines 5 and 6 are an instance initializer. It is called when the class is instantiated. Since this is an enum with one constant named f
, it is going to be instantiated once and the instance initializer block is executed.
Note that z
is null
, but out
is a static member of class System
, so you can call z.out.printf()
anyway. The printf
statement takes the string s
as a format string with two arguments, 34
and s
itself.
34
is the ASCII code for double quote "
. It is filled in for the %c
and %1$c
in the format string. The %s
in the format string is replaced by the format string s
itself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With