加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:31:07 所属栏目:Java 来源:网络整理
导读:根据我的科学 Java实验,int x = 0;相当于int x = 0 ;;这相当于int x = 0 ;;;;;;;;;;;;;; 为什么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编译器,我可以这么说.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读