专栏首页菩提树下的杨过如何让java中的注释代码执行?

如何让java中的注释代码执行?

直接上代码:

@Test
public void testUnicode() {
    String a = "Hello";
    // \u000d a="world";
    System.out.println(a);
    // \u000a a="hello world!";
    System.out.println(a);
}

猜一猜,最后会输出什么?

world
hello world!

是的,没看错,那二行看似“注释掉的代码”,被执行了!

原因:java编译器会处理unicode字符,\u000d以及\u000a 正好对应“\r”回车、“\n”换行,经过编译器处理后,等效于下面的代码:

@Test
public void testUnicode() {
    String a = "Hello";
    // 
    a="world";
    System.out.println(a);
    // 
    a="hello world!";
    System.out.println(a);
}

个人建议:正式项目中,严禁在注释中使用这一类unicode字符,否则如果利用这个特性干点坏事,埋个坑,基本上很难发现!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表

    zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机...

    菩提树下的杨过
  • NIO复习(1):buffer

    <!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'H...

    菩提树下的杨过
  • java基础:所有参数皆是按值参数

    c#中对于参数的传递,有二种处理方式,默认情况下:值类型的参数,按值传递(即:方法体内的参数是原值的副本);引用类型的参数,"加ref关键字后“,按引用传递(即...

    菩提树下的杨过
  • 怎么用wait、notify巧妙的设计一个Future模式?

    我们知道多线程可以实现同时执行多个任务(只是看起来是同时,其实是CPU的时间片切换特别快我们没感觉而已)。

    烟雨星空
  • JavaSocket应用

    待你如初见
  • Java实现操作系统实验之磁盘调度

    这一版的磁盘调度,作者只分析了磁盘通道号,之后作者会加入对最晚完成时间的分析。 首先理解一下,什么是磁盘调度,磁盘调度的意思是,所有的进程都是在磁盘中得某个同...

    萌萌哒的瓤瓤
  • 一天一大 lee(有序链表转换二叉搜索树)难度:中等-Day20200818

    本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

    用户6549452
  • java字符串操作

    说故事的五公子
  • Java8新特性之日期-时间API

    在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类。

    Java团长

扫码关注云+社区

领取腾讯云代金券