`
- 浏览:
743145 次
- 性别:
- 来自:
长春
-
-
将类尽可能的设置为Final,更深入点说,如果类是final的,所有类的方法也是final的。Java编译器可能会内联所有的方法(这依赖于编译器的实现)。
- 异常在需要抛出的地方抛出,try catch能整合就整合
try {
some.method1(); // Difficult for javac
} catch( method1Exception e ) { // and the JVM runtime
// Handle exception 1 // to optimize this
} // code
try {
some.method2();
} catch( method2Exception e ) {
// Handle exception 2
}
try {
some.method3();
} catch( method3Exception e ) {
// Handle exception 3
}
已下代码 更容易被编译器优化
try {
some.method1(); // Easier to optimize
some.method2();
some.method3();
} catch( method1Exception e ) {
// Handle exception 1
} catch( method2Exception e ) {
// Handle exception 2
} catch( method3Exception e ) {
// Handle exception 3
}
- For循环的优化 ,不要在循环中使用collection.size();先取到保存直接用。因为你不知道size()方法是返回的属性值还是进行了运算来取得的。
错误:
for( int i = 0; i < collection.size(); i++ ) {
...
}
正确:
for( int i = 0, n = collection.size(); i < n; i++ ) {
...
}
-
字符串操作优化
在对字符串实行+操作时,最好用一条语句
错误:
String tmp = "kiss" + " me";
tmp = tmp + "?";
这样会导致编译出两条new StringBuffer的语句。
正确:
String tmp = "kiss" + " me" + "?";
这样能编译成
String tmp = new StringBuffer( ).append( “kiss“ ).
append(“ me”).append( “?“ ).toString( );
在循环中对字符串操作时改用StringBuffer.append()方法
String sentence = “”;
for( int i = 0; i < wordArray.length; i++ ) {
sentence += wordArray[ i ];
}
优化为
StringBuffer buffer = new StringBuffer( 500 );
for( int i = 0; i < wordArray.length; i++ ) {
buffer.append( wordArray[ i ] );
}
String sentence = buffer.toString( );
StringBuffer在内部维护一个字符数组,当你使用缺省的构造函数来创建StringBuffer对象的时候,因为没有设置初始化字符长度,StringBuffer的容量被初始化为16个字符,也就是说缺省容量就是16个字符。当StringBuffer达到最大容量的时候,它会将自身容量增加到当前的2倍再加2,也就是(2*旧值+2)。如果你使用缺省值,初始化之后接着往里面追加字符,在你追加到第16个字符的时候它会将容量增加到34(2*16+2),当追加到34个字符的时候就会将容量增加到70(2*34+2)。无论何事只要StringBuffer到达它的最大容量它就不得不创建一个新的字符数组然后重新将旧字符和新字符都拷贝一遍――这也太昂贵了点。所以总是给StringBuffer设置一个合理的初始化容量值是错不了的,这样会带来立竿见影的性能增益。
- 使用预编译语句prepareStatement代替createStatement 。
- 尽可能使用连接池。
- 内存溢出是可以捕获的
try
{
// simulate getting lots of data
obj = new Double[1000000];
data.put (key, obj);
}
catch (OutOfMemoryError e)
{
//do something flush cache.
}
-
如果只是查找单个字符的话,用charAt()代替startsWith()
if (s.startsWith("a"))
优化后
if (s.charAt(0) == 'a')
-
只有一个字符的字符串拼接,用''代替""
String s = "123";
for (int i = 0; i < 10000000; i++) {
String a = s + "d";
}
优化后
for (int i = 0; i < 10000000; i++) {
String a = s + 'd';
}
- try catch最好不要放在循环里
- if最慢,switch在数量少于10个时最快,随着数量增加下降厉害,在switch最好把出现次数最多的判断放在最前面
- 在创建 StringBuffer的时候指定大小,这样就避免了在容量不够的时候自动增长,以提高性能。
- 复制数组最好用System.arraycopy 批量复制,最快;逐个复制,最慢;
- 复制ArrayList数组最好用addAll addAll,最快;clone,次之;逐个最慢 。
- 在JAVA + ORACLE 的应用系统开发中,java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。
- 数据库连接的取得要在使用前再取得,使用完马上关闭。不要很早就取得很晚才关闭这样会增加连接的占用时间。
- JVM回收垃圾的条件是:对象不在被引用;然而,JVM的GC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null。
- 使用已经存在的对象来生成新对象。不要用手动初始化的方式生成对象的拷贝。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
AdaBoost算法Java实现提供了高效的分类解决方案。该资源包含完整的Java源代码、教程文档、示例数据和测试脚本,旨在帮助用户快速理解和应用AdaBoost算法。适用于对机器学习感兴趣的开发者、数据科学家以及需要提升...
本项目是一个基于Java语言开发的Sagacity SQLToy数据库查询优化工具,包含420个文件,主要文件类型包括Java源代码、XML配置文件、BAT批处理文件、文本文件、Git忽略文件、Markdown文档、图片、属性文件和XSD文件。...
**JAVA SMART系统:系统框架设计与开发** ...总之,JAVA SMART系统框架设计与开发资源为Java开发者提供了一个高效、稳定且易于扩展的企业级应用解决方案,无论是对于学习还是实际应用都具有很高的价值。
本资源提供了一个全面的JAVA网络通信系统的研究与开发解决方案,包括详细的设计文档、源代码和开题报告。该系统采用先进的JAVA技术,实现了高效、稳定的网络通信功能,可广泛应用于各种网络应用场景。 **论文部分**...
“Java毕业设计-基于springboot开发的Java家政服务平台设计与实现-毕业论文(附毕设源代码).rar”是一份全面而详尽的毕业设计资源包,它涵盖了基于Spring Boot框架开发的家政服务平台的设计思路、实现过程以及相应...
打造高效代码结构(java性能优化) 新版本通俗易懂_观察者模式递进时讲解 ibatis连接数据库 高并发之单(多)生产者消费者线程 高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密...
源代码采用Java语言编写,实现了遗传算法的各个组件,包括编码、选择、交叉、变异等操作,以及适应度函数的定义和优化。同时,系统还集成了中药数据库,用于存储和管理中药的基本信息和方剂数据。 设计论文详细阐述...
基于java房产中介管理系统设计方案 摘 要 房屋中介行业是房地产业的重要组成部分,贯穿于房地产业经济运行的全过程之中,为 房地产业的生产、流通和消费提供了多元化的中介服务。其作为一个管理房屋信息的机 构,对...
通过对java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。 本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。本书内容全面...
系统设计旨在为用户提供一个高效、便捷的停车场管理解决方案,支持系统信息管理、车位信息管理、IC卡信息管理、固定车主停车管理、临时车辆信息管理和系统功能操作等模块,以帮助用户更好地管理和优化停车场运营。
本资源为基于Spring Boot开发的JAVA民族婚纱预定系统的毕业论文及其相应的源代码。该系统旨在为用户提供一个便捷、高效的婚纱预定平台,尤其关注于满足用户对于民族特色婚纱的个性化需求。 在系统设计方面,该系统...
优化资源调度:通过标准协议实现设备间的互联互通,有助于企业优化生产线资源分 拥有完善的方案 ,软件开发时间可缩短80% 。 已经集成大量的逻辑和各类的应用场景,稳定运行于多个工厂 提供源代码 ...
本研究与开发项目旨在构建一个基于Java语言的网络通信系统,以提供高效、稳定的数据交换解决方案。该系统的源代码文件包内包含完整的开发文档和必要的资源文件,为毕业设计或课程设计提供了扎实的基础。通过深入分析...
《电子通讯录带系统托盘》介绍了一款基于Java语言开发的电子通讯录系统,旨在提供便捷高效的联系管理解决方案。本论文首先概述了电子通讯录的重要性和发展趋势,随后详细描述了系统的设计与实现过程,包括功能模块、...
读者可以通过阅读源代码,了解Spring Boot框架在实际项目中的应用,学习如何构建一个高效、稳定的Web应用。 此外,值得一提的是,本项目的源代码具有良好的扩展性和可定制性。读者可以根据自己的需求,对系统进行二...
源代码结构清晰、注释详尽,方便读者在阅读与理解的基础上,根据自己的需求进行功能扩展或系统优化。无论是对于初学者还是有一定开发经验的同学来说,都是一个不可多得的学习与实践的好机会。 总的来说,“Java毕业...
该项目不仅满足了学生毕业设计的要求,同时也具备实际应用的价值,能够为旅游行业提供一套高效、便捷的管理系统解决方案。 资源包中包含了完整的毕业论文和毕设源代码,两者相辅相成,使得读者在理解系统设计的同时...