前言
前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉满了。五花八门的代码让我不禁感叹,代码规范这条道路还是任重而道远…
那么今天就来给大家总结一波Java中的代码小技巧,熟练掌握这些小技巧后,保证能让你写出同事看不懂的代码~
至于为啥要写出同事看不懂的代码,通过这次教训,我发现好处还是挺多的,简单举几个例子:
-
同事无法轻易修改你的代码,避免团队协作不当引入bug
-
塑造个人能力的不可替代性,规避被辞退的风险
-
代码review时,帮助同事治疗好多年的低血压
好了,一本正经的胡说八道环节就此打住……废话不多说了,下面正式开始。没用的知识又要增加了…
壹、瞒天过海
我打赌你肯定想不到,有人居然会在注释里下了毒。看看下面的代码,简单到main方法中只有一行注释。
public static void main(String[] args) { // \u000d System.out.println("coder Hydra"); }
猜猜看,这段程序运行结果如何?执行后它居然会在控制台打印:
coder Hydra
看到这你是不是一脸懵逼,为什么注释中的代码会被执行?
其实原理就在于大家熟悉的unicode编码,上面的\u000d就是一个unicode转义字符,它所表示的是一个换行符。而java中的编译器,不仅会编译代码,还会解析unicode编码将它替换成对应的字符。所以说,上面的代码解析完后实际是这样的:
public static void main(String[] args) { // System.out.println("coder Hydra"); }
这样,就能解释为什么能够执行注释中的语句了。当然,如果你觉得上面的代码不够绝,想要再绝一点,那么就可以把代码写成下面这个样子。
public static void main(String[] args) { int a=1; // \u000d \u0061\u002b\u002b\u003b System.out.println(a); }
执行结果会打印2,同理,因为后面的unicode编码的转义后表示的是a++;。
至于这么写有什么好处,当然是用在某些不想让别人看懂的地方,用来掩人耳目了,估计大家都看过下面这个笑话。
你这么写的话客户如果懂点代码,看一下就穿帮了啊,但是你如果写成下面这样