首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中,在开始时声明变量具有更好的性能?

在java中,在开始时声明变量具有更好的性能?
EN

Stack Overflow用户
提问于 2014-07-01 03:26:05
回答 1查看 148关注 0票数 0

在代码开始时声明变量与在需要时声明变量(可读性参数之外)在性能上是否有任何差异?

假设我有以下两个选项:

Option1:

代码语言:javascript
复制
 public void methodA () 
 {
   int  amount;
   long id;
   String name;
   //do something
 }

Option2:

代码语言:javascript
复制
 public void methodB () 
 {
   int  amount;
   //do something 
   long id;
   //do something
   String name;
   //do something
 }

在我看来,选项2更美观和可读性更强,因此是我的首选。

Q:,但我只是想知道,与这些声明的位置有关的性能是否存在差异。

编辑:由于maaartinus的输入,我发现我的基准测试示例是错误的(现在删除了),我正在进一步研究如何编写/使用基准代码。

EN

回答 1

Stack Overflow用户

发布于 2014-07-01 03:31:41

对于这些情况,我不希望看到性能上的任何差异,至少在C++中是这样的(尽管我也会对Java中的实际差异感到有点惊讶)。

如果您将变量的定义移到类似循环的内部,并且它是一种具有重要初始化的类型,则会出现异常的排序:

代码语言:javascript
复制
int func() { 
    int amount;
    long id;
    string name;

    while (something) { 
        // ...
    }
    // ...    
}

与:

代码语言:javascript
复制
int func() { 
    int amount;
    long id;

    while (something) { 
        string name;
    }
    // ...
}

在后一种情况下,需要在循环的每一次迭代中创建和初始化string,这可能比在循环执行之前创建和初始化它一次要慢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24502050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档