当前位置: 首页 > news >正文

Java如何提高代码效率

  无论学习什么都是需要讲究技巧的,学习Java语言也是如此。对于新手来说,Java如何提高代码效率呢?可以从指定类和方法的final修饰符、重用对象、使用局部变量、及时关闭流、减少变量的重复计算等这几个方面入手。

Java如何提高代码效率http://www.mobiletrain.org/ljc/java/

  1、尽可能指定类和方法的final修饰符

  具有 final 修饰符的类是不可派生的。在Java核心API中,有很多final的应用例子,比如java.lang.String,整个类都是final的。为类指定 final 修饰符使该类不可继承,为方法指定 final 修饰符使该方法不可覆盖。

  如果一个类被指定为final,则该类的所有方法都是final。 Java 编译器将寻找内联所有最终方法的机会。内联在提高 Java 的效率方面起着重要作用。有关详细信息,请参阅 Java 运行时优化。这可以将性能平均提高 50%。

  2、尽可能重用对象

  尤其是对于String对象的使用,在发生字符串连接时应该使用StringBuilder/StringBuffer。

  由于Java虚拟机不仅需要时间来生成对象,将来垃圾收集和处理这些对象也可能需要时间。因此,生成过多的对象会对程序的性能产生很大的影响。

  3、尽可能使用局部变量

  调用方法时传递的参数和调用过程中创建的临时变量更快的入栈。其他变量,如静态变量、实例变量等,都是在堆中创建的,比较慢。另外,栈中创建的变量随着方法结束就消失了,不需要额外的垃圾回收。

  4、及时关闭流

  在Java编程过程中,进行数据库连接和I/O流操作时一定要小心。使用后及时关闭释放资源。因为这些大对象的操作会给系统造成很大的开销,稍有不慎就会导致严重的后果。

  5、尽量减少变量的重复计算

  澄清一个概念,方法的调用,即使方法中只有一条语句,也是消耗的,包括创建栈帧,调用方法时保护场景,方法时恢复场景被调用。

相关文章:

  • docker修改挂载目录
  • JVM类加载器
  • 路由引入基本概念
  • centos安装Nginx
  • 学习笔记18--自动驾驶智能化指标评测体系(上)
  • 《Mycat分布式数据库架构》之配置详解
  • springboot bean找不到问题
  • [河北银行 2022 CTF]
  • 通过数据库建表实战来理解数据库知识
  • 200A FS3L200R10W3S7FB11 EasyPACK 950V IGBT模块
  • 微信小程序知识点汇总
  • 用于标记和纯化的325143-98-4,Biotin-SS-Sulfo-NHS ester生物素化 试剂
  • 多御安全浏览器全新chromium95内核全面兼容
  • opencv图像滤波
  • SAP事务码开关控制,TCODE
  • C学习-枚举(九)
  • Git初体验
  • JavaScript新鲜事·第5期
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Selenium实战教程系列(二)---元素定位
  • 多线程事务回滚
  • 让你的分享飞起来——极光推出社会化分享组件
  • 阿里云重庆大学大数据训练营落地分享
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Python 3 新特性:类型注解
  • ###项目技术发展史
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (arch)linux 转换文件编码格式
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • **CI中自动类加载的用法总结
  • .axf 转化 .bin文件 的方法
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET上SQLite的连接
  • .NET下ASPX编程的几个小问题
  • .NET中的Exception处理(C#)
  • /etc/shadow字段详解
  • @Not - Empty-Null-Blank
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [1127]图形打印 sdutOJ
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [android] 请求码和结果码的作用
  • [Avalon] Avalon中的Conditional Formatting.
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [Excel] vlookup函数
  • [flask]http请求//获取请求头信息+客户端信息
  • [HNOI2008]水平可见直线
  • [IE编程] IE中使网页元素进入编辑模式