c—在java中保存变量中通常称为的属性?

6xfqseft  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(269)

当我学习c语言的时候,我被教导去做一些事情,比如说,如果我想循环某个东西 strlen(string) 我应该把这个值保存在一个“辅助”变量中,比如 count 把它放在for condition子句中,而不是 strlen ,因为我省去了多次处理的需要。
现在,当我开始学习java时,我注意到这并不是一种常态。我见过很多代码和程序员在做我在c中被告知不能做的事情。
为什么会这样?他们是在用效率换取“可读性”吗?或者编译器能解决这个问题吗?
e:这不是一个重复的问题。我不是简单地问字符串长度,我的问题更一般。

insrf1ej

insrf1ej1#

在旧时代,每一个函数调用都是昂贵的,编译器是愚蠢的,可用的探查器还没有出现,计算机运行缓慢。c宏和其他可怕的东西就是这样诞生的。java没有那么古老。
效率很重要,但大多数程序部分对效率的影响很小。但是,阅读代码仍然需要程序员的时间,而且这比cpu要昂贵得多。所以我们最好在大多数时候优化可读性,在最重要的地方关注速度。
局部变量可以使代码更简单,因为它避免了复杂表达式的重复-这种情况有时会发生。它可以使它更快,当它避免了昂贵的计算编译器不能做-这种情况很少发生。当这两个条件都不满足时,这只是一条虚线,何必费心呢?

相关问题