Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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_Performance - Fatal编程技术网

用Java在变量中保存常用的属性?

用Java在变量中保存常用的属性?,java,c,performance,Java,C,Performance,当我学习C语言时,有人教我做一些事情,比如说,如果我想循环一个strlen(string)次,我应该将该值保存在一个“辅助”变量中,比如count,并将其放在for condition子句中,而不是strlen,因为这样可以省去多次处理的需要 现在,当我开始学习Java时,我注意到这并不是常态。我见过很多代码和程序员在做我在C语言中被禁止做的事情 这是什么原因?他们是否在用效率换取“可读性”?或者编译器能够修复这个问题吗 E:这不是与链接问题重复的问题。我不是简单地问字符串长度,我的问题是一个更

当我学习C语言时,有人教我做一些事情,比如说,如果我想循环一个
strlen(string)
次,我应该将该值保存在一个“辅助”变量中,比如
count
,并将其放在for condition子句中,而不是
strlen
,因为这样可以省去多次处理的需要

现在,当我开始学习Java时,我注意到这并不是常态。我见过很多代码和程序员在做我在C语言中被禁止做的事情

这是什么原因?他们是否在用效率换取“可读性”?或者编译器能够修复这个问题吗


E:这不是与链接问题重复的问题。我不是简单地问字符串长度,我的问题是一个更一般的问题。

在旧时代,每个函数调用都很昂贵,编译器很笨,可用的分析器还没有出现,计算机速度也很慢。C宏和其他可怕的东西就是这样诞生的。Java没有那么古老

效率很重要,但大多数程序部分对效率的影响很小。但读取代码仍然需要程序员的时间,而且这比CPU的成本要高得多。因此,我们最好在大多数情况下优化可读性,并在最重要的地方关注速度


局部变量可以使代码更简单,因为它避免了复杂表达式的重复——这种情况有时会发生。当它避免了编译器无法完成的昂贵计算时,它可以使它更快——这种情况很少发生。当两个条件都不满足时,这只是一个浪费的行,为什么还要麻烦呢?

现代编译器现在已经足够智能,可以隐式地完成这项工作。这主要是程序员的偏好。一般来说,如果需要在多个位置调用函数的结果,最好将其设置为初始变量。根据您使用的编译器,它很可能会为您进行优化。
Java!=C
C!=Java
仅仅因为语法相似并不意味着其他任何东西都相似。@Casey有没有办法看看编译器是否真的会改变这一点?@YoTengoUnLCD当然,编译Java类并查看它生成的字节码。