Java .startsWith优化

tam*_*bre 0 java optimization startswith

所以我有一个问题.今天我开始优化我的代码,并以此为例:

return !this.message.startsWith("/");
Run Code Online (Sandbox Code Playgroud)

那么我从这里采取我的优化技巧(链接到规则)

那么应该如何将代码写入更优化的版本?我目前得到:

return !(this.message.length () > ZERO) && this.message.charAt(ZERO) == Slash;
Run Code Online (Sandbox Code Playgroud)

我写得对吗?如果我写错了,那么我写错了什么?

谢谢,tambre

Ted*_*opp 5

抛开你引用的规则的有效性(顺便说一句,我认为这样做不同意,因为我认为使代码不易读取比任何次要的性能改进更糟糕 - 如果任何转换可能提供的话),结果代码应该是:

return !(this.message.length () > ZERO && this.message.charAt(ZERO) == Slash);
Run Code Online (Sandbox Code Playgroud)

只有条件的第一个术语周围有括号,这是错误的.稍微可读的版本将是:

return this.message.length () <= ZERO || this.message.charAt(ZERO) != Slash;
Run Code Online (Sandbox Code Playgroud)

  • 一个优化的好例子,没有优化任何东西,并将正确的代码变成一个错误的代码:-) (9认同)
  • @anakata - 或者,俗话说,"我宁愿优化调试程序而不是调试优化程序." (5认同)