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

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

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

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来编写。

给大家看一个别人写的:

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020
\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079
\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020
\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063
\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028
\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020
\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d

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

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

本文作者:flydean程序那些事

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

本文来源:flydean的博客

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

什么?注释里面的代码居然能够执行相关推荐

  1. java的注释规范_Java代码注释规范

    1,单行(单行)-简短说明: ///... 单行注释: 代码中的单行注释. 最好在注释前有一个空行,并在其后加上与代码相同的缩进级别. 如果无法完成一行,则应使用块注释. 评论格式: 在行首注释: 在 ...

  2. Java笔记——Java代码块的执行顺序

    Java代码块的执行顺序 Java程序中代码块的执行顺序对于学习Java的人来说是必不可少需要掌握的. 代码块 在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为: 局 ...

  3. 注释 向 Java 代码中添加元数据

    注释,J2SE 5.0 (Tiger) 中的新功能,将非常需要的元数据工具引入核心 Java 语言.该系列文章分为两部分,在这第 1 部分中,作者 Brett McLaughlin 解释了元数据如此有 ...

  4. vscode 注释多行代码_如何在Visual Studio Code中注释多行?

    我找不到在Visual Studio Code中注释和取消注释多行代码的方法. 是否可以使用某些快捷方式在Visual Studio Code中注释和取消注释多行? 如果是,该怎么办? 当其中一行已被 ...

  5. python如何注释一段代码_python如何注释

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我是多行注释1 我是多行注释2 我是多行注释3print(我上面的是多行注释)内 ...

  6. 【Python】Python 注释 ( 单行注释 | 多行注释 | 代码示例 )

    文章目录 一.Python 注释 1.单行注释 2.多行注释 3.代码示例 单行注释 : # 单行注释 多行注释 : """ 多行注释 多行注释 多行注释 "& ...

  7. Python03(注释、算术运算符、程序执行原理、变量使用)

    注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释) 以 # 开头,# ...

  8. RCE代码及命令执行漏洞简解

    在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用 代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代 码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏 洞 ...

  9. Java 代码编译和执行的整个过程

    一.简述 Java代码编译和执行的整个过程包含了三个重要的机制: ①Java 源码编译机制: ②类加载机制: ③类执行机制 二.Java 源码编译机制 Java 代码编译是由 Javac 编译器来完成 ...

最新文章

  1. 干货 | 如何使用 CNN 推理机在 IoT 设备上实现深度学习
  2. 4.内核APC执行过程
  3. Scribe应用实例
  4. flutter的按钮如何变为不可选中_Flutter 61: 图解基本 Button 按钮小结 (一)
  5. memcached安装及.NET中的Memcached.ClientLibrary使用详解
  6. redis 管理工具_「程序猿同事的分享」redis cluster管理工具redis-trib.rb详解
  7. 遍历INI文件和删除指定域内容
  8. PHP数据处理基本校验
  9. 计算机的科学导论pdf,教材计算机科学导论.PDF
  10. latch:cbc等待
  11. 关于idea单元测试键盘无法输入的解决方法(终极版)
  12. JBOSS启动错误:Not pointing to a directory
  13. 独家!阿里开源自用OpenJDK版本,Java社区迎来中国力量
  14. iptables --algo 字符串匹配算法 bm kmp
  15. 基于ROS的语音控制机器人(一):基本功能的实现
  16. python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法
  17. Linux操作系统的基本命令
  18. netstat+taskkill命令解决windows端口占用问题
  19. 新南威语言班C加,2020年新南威尔士大学语言班要求高不高
  20. 华为hicar支持车型列表_华为重申不造车:谁再建言造车调岗处分

热门文章

  1. 视觉注意力机制(中)
  2. EOJ_1020_铁路调度
  3. linux 键盘 数值,键盘数值对照表
  4. jbpm springboot mysql_SpringBoot开发案例之整合Activiti工作流引擎
  5. HDU4321(位运算二进制1的统计)
  6. PE文件结构详解(三)PE导出表
  7. 详细解析Raid0、Raid0+1、Raid1、Raid5四者的区别
  8. 重磅!腾讯云首次披露自研业务上云历程
  9. 超多干货!支撑起腾讯公司计费业务的TDSQL(附PPT)
  10. Syslog系统日志配置