http:在主要方法中 - 为啥没有错误?奇怪的行为

Posted

技术标签:

【中文标题】http:在主要方法中 - 为啥没有错误?奇怪的行为【英文标题】:http: in main method - why no errors? Strange behaviourhttp:在主要方法中 - 为什么没有错误?奇怪的行为 【发布时间】:2016-03-03 12:49:13 【问题描述】:
public static void main(String args[])  

    http: //vk.com
    System.out.println ("Hello world");

我想知道为什么这段代码没有抛出任何异常或错误。你能给我提供任何文件来解释这个案例吗?谢谢

【问题讨论】:

"loop:" in Java code. What is this, why does it compile?的可能重复 Please explain the usage of Labeled Statements的可能重复 【参考方案1】:

这是有效的,因为:

http: 是一个标签,可以与breakcontinue 语句一起使用。 //vk.com 是评论。

其余的是普通的、有效的 Java 语法。

【讨论】:

【参考方案2】:

方法的主体解析为带标签的语句。

  http:       <-- label
  //vk.com    <-- comment
  System.out.println ("Hello world");  <-- statement

在这种情况下,标签是多余的,但如果语句(例如)是一个循环,那么您可以使用 break http; 语句来中断循环。

例如

some_label: for (int i = 1; i < 100; i++) 
                for (int j = 1; j < 100; j++) 
                   if (something(i, j)) 
                       break some_label;
                   
                
            

语句标签在 Java 中很少使用,以至于很多程序员不知道它们的含义。这是(IMO)不使用它们的一个很好的理由。

【讨论】:

【参考方案3】:

这个语法:

whatever:

创建一个名为whatever标签。 它通常用于控制循环流,如this 答案。

Java 也保留了 goto 关键字,但未使用。

然后是注释:

//vk.com

没有理由做任何事情。

【讨论】:

【参考方案4】:

您定义了一个名为http 的标签。在这里没用,但合法。

见Oracle's tutorial。

【讨论】:

以上是关于http:在主要方法中 - 为啥没有错误?奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

为啥主要方法应该是静态的[重复]

自定义扩展方法与框架扩展方法发生冲突。为啥?

BatchingBatcher 上的奇怪 NPE“JDBC 驱动程序未返回预期的行数”

为啥写作主要;在 C 中给出一个段错误

为啥我的光标在 NextLine() 之后出现在错误的行上?

为set方法获取致命错误