A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡宝林 中级黑马   /  2012-6-3 15:15  /  1411 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hy19985125 于 2012-6-4 10:54 编辑

public class A {
    public static void main(String[] args) {
        System.out.print("a");
    http://www.google.com;
        System.out.println("b");
    }
}
中间有 http://www.google.com;
这么一句代码,应该编译的时候报错的,但是神奇的是可以编译,
也可以运行,运行的结果是ab,
这是怎么一回事,求解!!!!!

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

5 个回复

正序浏览
这个属于小彩蛋哈~确实很有意思- -

符号//
大家都知道是单行注释符号,将之后的此行内容转变成没有实际意义的注释

而前面的http:正好是格式为
             字符串+:
这个就相当于在你程序里给此行注释加了个标记,这个标记名就是http啦~
这个小方法和C++里面,用于goto语句时加的标记是一样的哟。
回复 使用道具 举报
public class A {
     public static void main(String[] args) {
         System.out.print("a");
     http:    /* 这成一个标签了*/                                     //www.google.com;
         System.out.println("b");
     }
}

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
你问的这几个问题都比较典型啊。
  http://www.google.com;
这句话中编译器会把http:当成一个标签!就是break http;的标签;
而//后面的代码会当成注释!
所以没有错!

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
那个http://www.google.com[/url];
“//”相当于注释,所以在代码中只有http:而这个http:是一个没有意义的引用,所以编译不会报错
回复 使用道具 举报
那个http://www.google.com;
“//”相当于注释,所以在代码中只有http:而这个http:是一个没有意义的引用,所以编译不会报错

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马