`

字符串的length - 性能优化

阅读更多
尽量提前计算length:

(1) 好的风格:

 
String str = "##########################################";
  int len = str.length();
  
  for(int i = 0; i < len; i++) {

  }

(2) 不好的风格:

 
String str = "##########################################";
 
  for(int i = 0; i < str.length(); i++) {

  }
1
3
分享到:
评论
6 楼 mercyblitz 2010-06-01  
maozj 写道
mercyblitz 写道
即不是优化,又不能说是好的代码。建议楼主看一看方法内联(inline)。


没看懂 仔细看


内联能够复制代码,因此调用方法的时间和消耗可以不计。
5 楼 maozj 2010-06-01  
zhxing 写道
    public int length() {
        return count;
    }


希望楼主不要迷惑人。。看上面的JDK 源码,其实都是一个引用而已,没性能问题。。



呵呵,是这样的...

for(int i = 0; i < str.length(); i++) {   
  
}  


如果说str.length很大的话 > 1000000;
上面的循环中:

i < str.length 该条件要判断1000000次。。。。
4 楼 zhxing 2010-05-31  
    public int length() {
        return count;
    }


希望楼主不要迷惑人。。看上面的JDK 源码,其实都是一个引用而已,没性能问题。。
3 楼 snowolf 2010-05-31  
maozj 写道
mercyblitz 写道
即不是优化,又不能说是好的代码。建议楼主看一看方法内联(inline)。


没看懂 仔细看

方法内联?C++?
2 楼 maozj 2010-05-31  
mercyblitz 写道
即不是优化,又不能说是好的代码。建议楼主看一看方法内联(inline)。


没看懂 仔细看
1 楼 mercyblitz 2010-05-31  
即不是优化,又不能说是好的代码。建议楼主看一看方法内联(inline)。

相关推荐

    Java优化编程(第2版)

    4.2.2 字符串的length()方法与性能优化 4.2.3 tochararray()方法与性能优化 4.2.4 字符串转化为数字 4.3 系统i/o类 4.3.1 java语言中输入/输出流 4.3.2 通过系统缓冲流类提高i/o操作效率 4.3.3 通过自定制缓冲区提高...

    SQLServer2008查询性能优化 2/2

    9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...

    C#减少垃圾回收压力的字符串操作详解

    C# 性能优化细节 1、使用string.Empty给一个空字符串变量赋初始值 String.Empty是一个指代,而””是具体的实现 string filter=“”;//不建议 string filter=string.Empty; //建议 2、使用str.Length == 0做空串...

    SQLServer2008查询性能优化 1/2

    9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...

    SQL优化面试专题.pdf

    列的字符串类型可以是什么?如何获取当前的 Mysql 版本?Mysql 中使用什么存储引擎?Mysql 驱动程序是什么?TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?如何使用 Unix shell 登录 Mysql?myisamchk ...

    JavaScript脚本性能优化注意事项

    循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in)三种循环,事实上,这三种... 如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量

    jQuery 性能优化指南(2)

    4,对直接的DOM操作进行限制 ...var top_100_list = […], // 假设这里是100个独一无二的字符串 $mylist = $(“#mylist”); // jQuery 选择到 &lt;ul&gt; 元素 for (var i=0, l=top_100_list.length; i” +

    WP Rocket v3.7 WordPress缓存插件+预加载链接

    增强功能:使用专用查询字符串绕过 WP Rocket 的问题进行故障排除(#2576) 删除选项:删除 minify HTML 选项,因为它对加载时间和文件大小的影响可以忽略不计 错误修正:防止 PHP 通知与未定义的变量$ home_root_...

    delphi 开发经验技巧宝典源码

    0095 使用Length函数取得一段字符串的长度 65 0096 使用Pos函数返回子字符串第一次出现的索引值 66 0097 使用Quotedstr函数返回字符串的引证串 66 0098 使用Trim函数删除字符串的首尾空格 66 4.2 数学计算...

    delphi 开发经验技巧宝典源码06

    0095 使用Length函数取得一段字符串的长度 65 0096 使用Pos函数返回子字符串第一次出现的索引值 66 0097 使用Quotedstr函数返回字符串的引证串 66 0098 使用Trim函数删除字符串的首尾空格 66 4.2 数学计算...

    千方百计笔试题大全

    56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前时刻。 15 60、java 和javasciprt 的区别。 15 61、什么时候用assert? 16 62、error和exception有什么...

    java面试宝典

    56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前时刻。 15 60、java 和javasciprt 的区别。 15 61、什么时候用assert? 16 62、error和exception有什么...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    基于lucene的搜索引擎总结

    最大匹配法(机械分词):按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功。 二元分词 一元分词 自动分类 向量距离分类算法 根据算术平均,为每类...

    Oracle9i的init.ora参数中文说明

    说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。 语法: TIME '09:26:50' (将值存储为 7 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_time...

    C# 控制台应用程序——随机数

    生成一个从0到strTableChar.Length的数字a,然后使用strTableChar[a]就可以随机返回一个字母,重复n次(n等于防伪码的长度),这样就可以组合到一串随机字符串,也就是防伪码了。 6、思路及技巧 1)随机数生成...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    最新Java面试宝典pdf版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

Global site tag (gtag.js) - Google Analytics