java – 为什么用连续的分号编译代码?

前端之家收集整理的这篇文章主要介绍了java – 为什么用连续的分号编译代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
根据我的科学 Java实验,int x = 0;相当于int x = 0 ;;这相当于int x = 0 ;;;;;;;;;;;;;;

>为什么Java允许这个?有什么实际应用吗?
这些都是空的吗?他们在运行时实际上占用了任何额外的处理时间吗? (我假设他们只是优化了?)
>其他语言做这个吗我猜这是继承自C的东西,就像Java中的很多东西一样.这是真的?

解决方法

正如Jake King写道,你可以产生一个空的语句,在循环中什么都不做:
while (condition);

但要明确,你会写

while (condition)
    ;

甚至更好:

while (condition)
/** intentionally empty */
    ;

甚至更好,正如MichaelKjörling在评论中指出的那样,

while (condition)
{
    /** intentionally empty */
}

更多的时候,你会看到它在for-statements中无限循环:

for (;;)

或只有一个空的语句

for (start;;) 
for (;cond;) 
for (;;end)

另一件可以做的事情就是写一个程序,一次一次,一次用2个分号:

public class Empty
{
    public static void main (String args[])
    {
        System.out.println ("Just semicolons");;
    }
}

编译它,并运行列表字节码(标识)的大小,并在字节码(identic)上做一个md5sum.

因此,在语义不变的情况下,它被明确优化,至少对于1.6-Oracle编译器,我可以这么说.

猜你在找的Java相关文章