Uro*_*s K 12 java enums quine
我遇到了这个没有主要方法的小quine程序:
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);} }
有人可以解释这是如何工作的?谢谢.
Jes*_*per 9
第5行和第6行是实例初始化器.在实例化类时调用它.由于这是一个带有一个常量命名的枚举f,因此它将被实例化一次并执行实例初始化程序块.
f
请注意,z是null,但是out是类的静态成员System,这样你就可以打电话z.out.printf()呢.该printf语句将字符串s作为带有两个参数的格式字符串34及其s自身.
z
null
out
System
z.out.printf()
printf
s
34
34是双引号的ASCII码".填写格式字符串%c和%1$c格式字符串.该%s格式字符串由格式字符串替换s本身.
"
%c
%1$c
%s
归档时间:
13 年,9 月 前
查看次数:
618 次
最近记录:
9 年,11 月 前