注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Reloadbug

黑夜给了我黑色的眼睛,我用她寻找Bug

 
 
 

日志

 
 

Java 解惑(java puzzlers) 神秘的转义字符之二  

2007-01-23 13:25:31|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

又是一道关于转义字符的谜题,可以很充分的反应java的编译机制。先看代码:

/**
 * Generated by the IBM IDL-to-Java compiler, version 1.0
 * from F:\TestRoot\apps\a1\units\include\PolicyHome.idl
 * Wednesday, June 17, 1998 6:44:40 o'clock AM GMT+00:00
 */
public class Test {
    public static void main(String[] args) {
        System.out.print("Hell");
        System.out.println("o world");
    }
}

乍看一下好像会输出 Hello World 但是,它不会通过编译。关键是为什么不会通过编译呢?

答案就在那段注释里,仔细看注释中使用的是Windows的路径分割方式,而\units这个目录是u开头的,编译器会认为这是转义字符,而转义字符必须是在\u后跟4位16进制数,\units不符合转义字符的规定,所以编译失败。关键的一点是,在编译之前会进行一次将所有转义字符替换成实际字符的过程,就像前一篇关于转义字符的文章中的情形一样,这也就导致了上面的代码不能编译。

  评论这张
 
阅读(136)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017