[java性能优化.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[java性能优化

java性能优化-之一 1.对象的生成和大小的调整。? JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从而常常会生成大量的对象(或实例)。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。? 例1:关于String?,StringBuffer,+和append? JAVA语言提供了对于String类型变量的操作。但如果使用不当,会给程序的性能带来影响。如下面的语句:? String?name=new?String(“HuangWeiFeng”);? System.out.println(name+”is?my?name”);? 看似已经很精简了,其实并非如此。为了生成二进制的代码,要进行如下的步骤和操作。? (1)?生成新的字符串?new?String(STR_1);? (2)?复制该字符串。? (3)?加载字符串常量”HuangWeiFeng”(STR_2);? (4)?调用字符串的构架器(Constructor);? (5)?保存该字符串到数组中(从位置0开始)? (6)?从java.io.PrintStream类中得到静态的out变量? (7)?生成新的字符串缓冲变量new?StringBuffer(STR_BUF_1);? (8)?复制该字符串缓冲变量? (9)?调用字符串缓冲的构架器(Constructor);? (10)?保存该字符串缓冲到数组中(从位置1开始)? (11)?以STR_1为参数,调用字符串缓冲(StringBuffer)类中的append方法。? (12)?加载字符串常量”is?my?name”(STR_3);? (13)?以STR_3为参数,调用字符串缓冲(StringBuffer)类中的append方法。? (14)?对于STR_BUF_1执行toString命令。? (15)?调用out变量中的println方法,输出结果。? 由此可以看出,这两行简单的代码,就生成了STR_1,STR_2,STR_3,STR_4和STR_BUF_1五个对象变量。这些生成的类的实例一般都存放在堆中。堆要对所有类的超类,类的实例进行初始化,同时还要调用类极其每个超类的构架器。而这些操作都是非常消耗系统资源的。因此,对对象的生成进行限制,是完全有必要的。? 经修改,上面的代码可以用如下的代码来替换。? StringBuffer?name=new?StringBuffer(“HuangWeiFeng”);? System.out.println(name.append(“is?my?name.”).toString());? 系统将进行如下的操作。? (1)?生成新的字符串缓冲变量new?StringBuffer(STR_BUF_1);? (2)?复制该字符串缓冲变量? (3)?加载字符串常量”HuangWeiFeng”(STR_1);? (4)?调用字符串缓冲的构架器(Constructor);? (5)?保存该字符串缓冲到数组中(从位置1开始)? (6)?从java.io.PrintStream类中得到静态的out变量? (7)?加载STR_BUF_1;? (8)?加载字符串常量”is?my?name”(STR_2);? (9)?以STR_2为参数,调用字符串缓冲(StringBuffer)实例中的append方法。? (10)?对于STR_BUF_1执行toString命令。(STR_3)? (11)调用out变量中的println方法,输出结果。? 由此可以看出,经过改进后的代码只生成了四个对象变量:STR_1,STR_2,STR_3和STR_BUF_1.你可能觉得少生成一个对象不会对程序的性能有很大的提高。但下面的代码段2的执行速度将是代码段1的2倍。因为代码段1生成了八个对象,而代码段2只生成了四个对象。? 代码段1:? String?name=?new?StringBuffer(“HuangWeiFeng”);? name+=”is?my”;? name+=”name”;? 代码段2:? StringBuffer?name=new?StringBuffer(“HuangWeiFeng”);? name.append(“is?my”);? name.append(“name.”).toString();? 因此,充分的利用JAVA提供的库函数来优化程序,对提高JAVA程序的性能时非常重要的.其注意点主要有如下几方面;? (1)?尽可能的使用静态变量(Static?Class?Variables)? 如果类中的变量不会随他的实例而变化,就可以定义为静态变量,从而使他所有的实例

文档评论(0)

xiayutian80 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档