奇怪的Java代码及其工作方式

我发现以下打印的奇怪Java代码只是另一个Java黑客在您的终端上。

显然,这段代码看起来很混乱。 即使您将此代码复制到自己喜欢的IDE中,IDE也无法弄清楚该代码的语法。 相信我,这段代码可以工作,这就是它的工作方式。

显然,它具有main方法的类名。 让我们清除代码并将其格式化。 现在看起来像这样。

class Sig{
    public static void main(String...args){
        \u0066or(int\u0020$:"vÌÈÊ\"¤¾Àʲ¬Æ\"v¤Î¤\"²¤¨¸¬Æ".to\u0043h\u0061rArray()
        )System./*goto/*$/%\u0126//^\u002A\u002Fout.print((char)(($>>
        +(~'"'&'#'))+('<'>>('\\'/'.')/\u002Array.const(~1)\*\u002F)));
    }
}

现在您可以看到此代码中包含一些unicode字符。 接下来,我们将提取所有unicode字符。 我也要删除/ * goto / * $ /%\ u0126 // ^ \ u002A \ u002F和\ u002Array.const(〜1)\ * \ u002F因为这些代码段只是用unicode字符编写的注释行。

class Sig{
    public static void main(String...args){
        for(int $:"vÌÈÊ\"¤¾Àʲ¬Æ\"v¤Î¤\"²¤¨¸¬Æ".toCharArray())
            System.out.print((char)(($>>+(~'"'&'#'))+('<'>>('\\'/'.'))));
    }
}

如果您更换(char)(($>>+(~'"'&'#'))+('<'>>('\\'/'.')))带有相关ascii值的表达式,那么它就像(char)(($>>+(~42&35))+(60>>(92/46)))。 这相当于(字符)(c / 2 + 15)。 简化代码的最终输出如下所示。

class Sig{
    public static void main(String...args){
        for(int $:"vÌÈÊ\"¤¾Àʲ¬Æ\"v¤Î¤\"²¤¨¸¬Æ".toCharArray())
            System.out.print((char)($ / 2 + 15));
    }
}

现在,这个谜团已经解决。 对于循环,请从字符串中提取每个字符,然后根据公式更改其值并打印出来。

您为什么不尝试用自己喜欢的语言编写这样的代码并将其注释掉?

警告:切勿在生产资料库中编写此类代码。

from: https://dev.to//dhanushkadev/a-weird-java-code-and-how-it-works-1ll

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值