以下程序没有自己的重要性.它只计算使用类计数器内部的静态字段通过使用for循环创建的对象数,如下所示.
package temp;
final class Counter
{
private static int cnt;
public Counter()
{
cnt++;
}
public static int show()
{
return(cnt);
}
}
final public class Main
{
public static void main(String[] args)
{
for (int i=0;i<50;i++)
{
Counter counter=new Counter();
}
/*for (int i=0;i<50;i++)
Counter counter=new Counter();*/
System.out.print("\nNumber of objects constructed:->"+Counter.show()+"\n\n");
}
}
Run Code Online (Sandbox Code Playgroud)
这里唯一的问题是注释for循环意味着与上面的for循环相同(同样的东西也应用于while循环)根本不起作用导致编译时错误,表明" 不是语句 "意味着在这种特殊情况下,即使for循环只包含一个语句,这对括号也是必需的!为什么?
我一直以为标签必须只用于循环,但似乎不是.给这样的代码:
public class LabelTest {
public static void main(String[] args) {
label1: System.out.println("");
label2: LabelTest t = new LabelTest();
}
}
Run Code Online (Sandbox Code Playgroud)
当标记为"label1"的编译行编译时,"label2"处的代码会出错.为什么?为什么我要标记不是"循环"的语句?
在演示期间,我看到了一段测试代码,开发人员在代码中粘贴了一个url.当开发人员构建应用程序时一切正常,但我们都非常好奇为什么编译器接受了url作为一行.
public class Foo
{
// Why doesn't 'http://www.foo.org' break the build?
public void Bar()
{
http://www.foo.org
Console.WriteLine("Do stuff");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码构建?编译器是否将该行视为注释?
一位同事遇到了一些看似这样的代码,无法理解它是如何编译的:
class FooClass {
public static void bar(String arg) {
System.out.println("arg = " + arg);
http://www.google.com
System.out.println("Done!");
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,在方法中间粘贴了一个随机URL,但javac并不关心.
我们解决了所以如果没有其他人发现,我会发布答案,但我觉得发帖很有意思.
在某个地方浏览java好文章,我发现这样的代码完美编译.
public int myMethod(){
http://www.google.com
return 1;
}
Run Code Online (Sandbox Code Playgroud)
描述说http:该词将被视为标签和//www.google.com评论
我不知道Java Label在循环外是如何有用的?在什么情况下应该使用Java Label外部循环?
在源代码中,我忘了在链接之前添加注释.例如,以下代码:
public class HelloWorld
{
public static void main(String[] args)
{
http://www.example.com/random-link-here
System.out.println("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么编译?不知何故无法弄清楚它做了什么...它像Goto +评论的标签,但Java没有goto ...