• 什么?注释里面的代码居然能够执行


    注释大家都写过,应该都懂。注释就是给人看的,不是给机器看的,自然也就无法执行。

    但是今天就有一个例外,快让我们看一下吧。

    如果是下面一段代码,大家期望的输出是什么?

    public class escapesUsage {
    
        public static void main(String[] args) {
            // u000d System.out.println("www.flydean.com");
        }
    }
    

    main方法中的System.out.println被注释掉了。我们运行下看:

    www.flydean.com
    

    居然输出了结果。为什么呢?

    我们注意在注释后面,我们添加的是u000d,这是一个unicode编码,转换成ASCII编码就是换行符。

    在java中,unicode转换成ASCII是在任何词法翻译之前,所以上面的例子中的unicode会转换成为换行符,最终导致输出结果。

    实际上整个java程序都可以使用unicode来编写。

    给大家看一个别人写的:

    u0070u0075u0062u006cu0069u0063u0020u0020u0020u0020
    u0063u006cu0061u0073u0073u0020u0055u0067u006cu0079
    u007bu0070u0075u0062u006cu0069u0063u0020u0020u0020
    u0020u0020u0020u0020u0073u0074u0061u0074u0069u0063
    u0076u006fu0069u0064u0020u006du0061u0069u006eu0028
    u0053u0074u0072u0069u006eu0067u005bu005du0020u0020
    u0020u0020u0020u0020u0061u0072u0067u0073u0029u007b
    u0053u0079u0073u0074u0065u006du002eu006fu0075u0074
    u002eu0070u0072u0069u006eu0074u006cu006eu0028u0020
    u0022u0048u0065u006cu006cu006fu0020u0077u0022u002b
    u0022u006fu0072u006cu0064u0022u0029u003bu007du007d
    

    上面的代码输出”hello world“,不信可以自己去试试。

    本文作者:flydean程序那些事

    本文链接:http://www.flydean.com/unicode-in-comments/

    本文来源:flydean的博客

    欢迎关注我的公众号:程序那些事,更多精彩等着您!

  • 相关阅读:
    Python pandas 入门 05 JSON
    Python matplotlib 画图入门 07 散点图
    Python matplotlib 画图入门 06 绘制多图
    Python pandas 入门 04 CSV 文件
    Python pandas 入门 01 安装
    Python 入门示例系列 35 迭代器与生成器
    Python matplotlib 画图入门 03 绘图线
    Python pandas 入门 目录
    Python 零散知识点琐碎知识
    Python numpy 入门系列 目录
  • 原文地址:https://www.cnblogs.com/flydean/p/unicode-in-comments.html
Copyright © 2020-2023  润新知