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

直接上代码:

1
2
3
4
5
6
7
8
@Test
public void testUnicode() {
    String a = "Hello";
    // \u000d a="world";
    System.out.println(a);
    // \u000a a="hello world!";
    System.out.println(a);
}

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

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

 

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

1
2
3
4
5
6
7
8
9
10
@Test
public void testUnicode() {
    String a = "Hello";
    //
    a="world";
    System.out.println(a);
    //
    a="hello world!";
    System.out.println(a);
}

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

posted @   菩提树下的杨过  阅读(1381)  评论(1)    收藏  举报
努力加载评论中...
编辑推荐:
· 当数据爆炸遇上SQL Server:优化策略全链路解析
· 记录一次线上问题排查:JDK序列化问题
· 微服务之间有哪些调用方式?
· 记一次SQL隐式转换导致精度丢失问题的排查
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
阅读排行:
· 一个基于 C# Unity 开发的金庸群侠传 3D 版,直呼牛逼!
· SQL Server 2025 中的改进
· 国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!
· 向商界大佬一样管理技术工作 - 以团队换将+技术重构为例
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(三)--一个综合的例子
点击右上角即可分享
微信分享提示