程序中的变量有3种,局部变量,实例变量,类变量,他们在使用时,哪种效率最高呢,看下面的例子
public class StackTest
{
private int intValue;
private static int staticValue;
public static final int times = 1000000000;
public static void main(String[] args)
{
StackTest s = new StackTest();
long start = System.currentTimeMillis();
//code here....
long end = System.currentTimeMillis();
long time = end -start;
System.out.println("用局部变量的时间"+time);
//后面省略
}
public void stack()
{
int j = 0;
for (int i = 0; i < times; i++)
{
j+=i;
}
}
public void field(){
for (int i = 0; i < times; i++)
{
intValue+=i;
}
}
public void staticField(){
for (int i = 0; i < times; i++)
{
staticValue+=i;
}
}
}
打印结果:
用局部变量的时间1485
用实例变量的时间2390
用静态变量的时间2125
如果全部改为局部变量,会是这样:
public void stack()
{
int j = 0;
for (int i = 0; i < times; i++)
{
j+=i;
}
}
public void field(){
int j = intValue;
for (int i = 0; i < times; i++)
{
j+=i;
}
}
public void staticField(){
int j = staticValue;
for (int i = 0; i < times; i++)
{
j+=i;
}
}
运行结果:
用局部变量的时间1328
用实例变量的时间1344
用静态变量的时间1359
代码的运行速度有很大提升,不要瞧不起这些小的优化,积少成多,会对系统有很大的性能提升
当然实例和类变量,该用还给用,如果在循环里面出现了,可以考虑改进的方法,把他们先编程局部变量,提高速度。
分享到:
相关推荐
让用户操作更少但开展建设的效率更高。因此我们做了许多交互细节上的优化和创新以及一些大胆的设计,比如:取消了局部变量、前后置计划、抛弃“先接口后用例”的传统建设思想,甚至还取消了“登录”!
4. 更好的类型推断:Java 17改进了局部变量类型推断,使得开发人员能够更方便地使用局部变量,并减少了一些常见的错误。 总的来说,Java 17的新特性使得Java更加健壮、易于使用和高效。这些新特性将帮助开发人员更...
让用户操作更少但开展建设的效率更高。因此我们做了许多交互细节上的优化和创新以及一些大胆的设计,比如:取消了局部变量、前后置计划、抛弃“先接口后用例”的传统建设思想,甚至还取消了“登录”! 你是否会疑问...
让用户操作更少但开展建设的效率更高。因此我们做了许多交互细节上的优化和创新以及一些大胆的设计,比如:取消了局部变量、前后置计划、抛弃“先接口后用例”的传统建设思想,甚至还取消了“登录”! 你是否会疑问...
基于部分基变量提出了LP问题的矩阵算法。...算法的求逆问题,讨论并给出了求逆快速算法,该算法充分利用了矩阵算法分解过程中提供的原来的逆矩阵的信息经过简单的变换得到新的逆矩阵,该算法比直接求逆法计算效率更高。
final类比普通类有更高的效率 Ø 修饰方法,代表该方法不能被子类重写;private方法会都隐式的指定为final的;final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时在动态绑定; Ø 修饰...
Lambda可以引用类的成员变量与局部变量(如果这些变量不是final的话,它们会被隐含的转为final,这样效率更高)。Lambda可能会返回一个值。返回值的类型也是由编译器推测出来的。如果lambda的函数体只有一行的话,...
Lim是Less is More(少即是多)的缩写,如它的名字一样我们希望用户在开展接口测试时所需的操作更少,但建设效率更高、实现的功能更多。因此我们做了许多交互细节上的优化和创新以及一些大胆的设计,比如:取消了...
在主函数中输入n值,并作为实参,在调用时传送给s 函数的形参量n( 注意,本例的形参变量和实参变量的标识符都为n, 但这是两个不同的量,各自的作用域不同)。 在主函数中用printf 语句输出一次n值,这个n值是实参n的...
0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是...
let 和 const:提供了块级作用域的变量声明,使用 let 可以声明局部变量,而 const 用于声明不可重新赋值的常量。 函数的新写法: 箭头函数:这是函数的一种简洁表达方式,它允许我们以更简短的形式写函数,并且改变...
为解决传统TDOA 定位估计所带来的非线性优化问题,首先通过最大似然估计将其转换为峰值搜索...仿真实验表明,在保证一定抗体数目的前提下,该算法适应性强,性能稳定,能快速逼近全局最优的解,且算法定位精度更高。
理论上可证明算法IPC-GBNC是正确的,而基于仿真和真实数据的实验进一步验证了其学习效果和效率的优势:a)可输出和执行全局搜索的PC算法相同甚至更高质量的结构;b)较全局搜索消耗少得多的计算量;c)同时实现了...
优化的动画刷新,效率更高。 强大的脚本语言 强大的功能 使用VBScript作为脚本语言,VBScript脚本语言是微软VBA的一个子集。VBScrip易学易懂,功能强大,广泛使用于web动态网页的开发中。 ...
主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用。根据前面提到的引用...
泛型无疑是C#2.0最重大的改进,它的出现赋予了C#代码更强的类型安全,更好的复用,更高的效率和更清晰的约束。 2、 匿名方法:匿名方法允许我们将代码直接与委托实例相关联,使委托实例化工作更加直观和方便。在我...
* 使用局部变量 * 附加项目使用变量 (例:MOVJ VJ=I000) 1.3.1 命令集的切换 在 〔示教条件〕画面切换命令集。 输入输出命令 执行输入输出控制的命令。 DOUT、 WAIT 控制命令 执行处理和作业控制的命令。 JUMP、 ...
添加额外的换行符和分配额外的局部变量不会损失性能,但效率提升可能是巨大的。 本指南比我从中汲取灵感的个别指南更全面,也更具体。 我相信它现在功能非常完整,可以应用于您自己的代码或您组织的代码。 我欢迎...