Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量初始化/赋值语句是单个操作还是多个操作?_Java_C++11 - Fatal编程技术网

Java 变量初始化/赋值语句是单个操作还是多个操作?

Java 变量初始化/赋值语句是单个操作还是多个操作?,java,c++11,Java,C++11,我只是在学习算法的性能分析 我的问题是:int i=0;被计算为两个操作:辅助、初始化。或者它只是一个紧凑的操作? 我使用的是渐近分析,它使用运算次数作为一个例子来描述性能没有一个正确的答案 在某些情况下,人们可能将单个算术运算分析为一个运算。其他时候,他们可能非常关心一个操作将需要多少个周期,并且他们可能想说,例如,添加整数比乘浮点数便宜 在许多情况下,程序员说取消对指针的引用是O1。然而,如果你真的在考虑n趋于无穷大的情况,如果你的n就像宇宙的大小,那么说将指针解引用到其中就是O1操作,还有

我只是在学习算法的性能分析

我的问题是:int i=0;被计算为两个操作:辅助、初始化。或者它只是一个紧凑的操作?
我使用的是渐近分析,它使用运算次数作为一个例子来描述性能

没有一个正确的答案

在某些情况下,人们可能将单个算术运算分析为一个运算。其他时候,他们可能非常关心一个操作将需要多少个周期,并且他们可能想说,例如,添加整数比乘浮点数便宜

在许多情况下,程序员说取消对指针的引用是O1。然而,如果你真的在考虑n趋于无穷大的情况,如果你的n就像宇宙的大小,那么说将指针解引用到其中就是O1操作,还有意义吗,人们会说,从本质上来说,取消对指针的引用是错误的

然而,我曾经和一位物理学家谈过,他说即使是Olog n也可能不是物理上真实的——他说在给定的体积空间中,宇宙可以有一个最大的信息密度。这被称为,最大熵是由黑洞实现的。如果你假设在一个体积为n的空间中,你只能有一个位的内存,这基本上意味着在一个银河系大小的计算机中,位必须像球一样被压缩,然后一对典型的位之间的距离在^{1/3}上增长。因为信息的传播速度不会超过光速。。。也许取消对指针的引用需要在^{1/3}上渐近进行?O.O

关键是,不要想得太多。在渐近分析中,你所做的任何事情最终都是一个近似值,你只是想得到一个有用的关于它需要多长时间的概念。在你的案例中,你非常确定的事情实际上并不重要,你可以作为O1进行分析,以便专注于真正重要的事情。在另一种情况下,如果这些东西代表了大部分工作,那么您可能需要以不同的方式分析它们


在我看来,如果你想知道如何在面试中回答关于这方面的问题,你应该准备好用多种不同的方式进行分析,并向他们表明你理解int i=0;算作一个操作或两个基本上是一个约定。< /P>这是在java或C++环境下的吗?请澄清。这只是计算运算的一种方式,该语句在两种语言中是通用的。我想!java java程序员java,不知道C++,引用@ kReMeMad——这个实例在一个类成员中的实例成员变量“i”可能是C++和Java中不同的东西。在C++中,将用提供的值初始化,但在java中,默认值初始化,然后赋值指定赋值。