1.尽量使用final修饰符。
带有final修饰符的类是不可派生的。在JAVA核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了使用者覆盖length()方法。另外,如果一个类是final的,则该类所有方法都是final的。java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。
2.尽量重用对象。
特别是String对象的使用中,出现字符串连接情况时应使用StringBuffer代替,由于系统不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理。因此生成过多的对象将会给程序的性能带来很大的影响。
3.尽量使用局部变量。
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量,实例变量等,都在堆(Heap)中创建,速度较慢。
4.不要重复初始化变量。
默认情况下,调用类的构造函数时,java会把变量初始化成确定的值,所有的对象被设置成null,整数变量设置成0,float和double变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键字创建一个对象时,构造函数链中的所有构造函数都会被自动调用。
这里有个注意,给成员变量设置初始值但需要调用其他方法的时候,最好放在一个方法比如initXXX()中,因为直接调用某方法赋值可能会因为类尚未初始化而抛空指针异常,public int state = this.getState();

java-优化-代码中的优化(1)相关推荐

  1. 怎样优化代码中那么多的if else

    if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼. 例如下面这个伪代码: 是不是很崩溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我 ...

  2. MDK AC6 不支持在代码中改变优化等级

    MDK AC6 不支持在代码中改变优化等级 MDK AC6 不支持在代码中改变优化等级 MDK AC6 不支持在代码中改变优化等级 armclang does not support changing ...

  3. xml中else if写法_面试官:优化代码中大量的if/else,你有什么方案?

    一个快速迭代的项目,时间久了之后,代码中可能会充斥着大量的if/else,嵌套6.7层,一个函数几百行,简!直!看!死!人! 这个无限循环嵌套,只是总循环的一部分...我已经绕晕在黄桷湾立交 仔细数了 ...

  4. 优化代码中的“坏味道”

    " 一颗老鼠屎,坏了一锅粥,代码也是如此." 在我们的项目中,也许在刚开始开发的时候,大家都会遵从一些规范来实施,但是当业务进度催的紧,或者人员变动,随着时间的迁移,项目不断的迭代 ...

  5. java else if和switch_如何优雅地优化代码中的的if else和switch

    引言 一般来说,随着我们项目的迭代以及业务的越来越复杂,项目中的分支判断会原来越多.当项目中涉及到复杂的业务判断或者分支逻辑时,我们就需要考虑是否需要对项目进行重构了,或者if else和switch ...

  6. gridview 中使用 if else_前端代码中如何优化if/else

    前端中的if/else 在编写业务代码的时候,经常会出现条件判断,如果判断条件众多,就会出现if/else天梯,如果新的业务场景出现,就需要再添加一个if/else,这样的代码维护起来,简直是灾难.i ...

  7. Vue中常见的性能优化,项目优化/单页面性能优化,Vue中六大优化方案

    1.编码优化 1. 下里将所有的数据都放在data中,data中的教据都会增加getter和setter,会收集对应的watcher 2. vue在v-for时给每项元素绑定事件需要用事件代理 3. ...

  8. java数据库表不存在_如果Java生产代码中不存在并在JUnit中确认,则创建数据库表...

    Code-Apprentice 2 java sql junit jdbc 我正在用Java编写数据库程序,并且想要创建一个表(如果它还不存在).我从中了解DatabaseMetaData.getTa ...

  9. 【Java】代码中的安全漏洞解决合集(更新中)

    汝之观览,吾之幸也!本文主要讲解Java的一些安全漏洞,并且给出浅知的解决方案. 具体国内的风险可查看网址工业和信息化部网络安全威胁和漏洞信息共享平台 1.Spring Framework反射型文件下 ...

最新文章

  1. 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
  2. 网站下载器WebZip、Httrack及AWWWB.COM网站克隆器
  3. 最大字段和 冲出暴力枚举
  4. 食品新消费的2021:站在逻辑跑通与成为品牌的隧道期
  5. QT的QDtls类的使用
  6. Html5音乐可视化之音乐的获取和播放
  7. 代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...
  8. 在Hibernate的session中同时有两个相同id的同类型对象,修改失败
  9. Hadoop2源码分析-RPC机制初识
  10. Visual C#设计多功能关机程序
  11. 无心剑2022年七绝83首
  12. 路径规划之DWA类算法简述
  13. JNI返回复杂对象之中的一个
  14. 进一步理解windows任务管理器
  15. 联想打印机测试软件,办公实用主义 联想LJ3800DW打印机测试
  16. android获取悬浮窗权限,Android 悬浮窗权限校验
  17. 推荐两个BAT编辑器
  18. python snownlp_SnowNLP情感分析+生成词云
  19. Excel表格常用函数
  20. 【Unity3D开发小游戏】Unity3D开发《3D迷宫》小游戏

热门文章

  1. XC6SLX25-3CSG324I二三事儿
  2. Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等
  3. React(5)React兄弟组件之间的通信
  4. GitHub上 7 个Spring Boot 优质开源项目
  5. ORA-00933: SQL 命令未正确结束
  6. 【pytorch卷1】=1= 泰坦尼克---pytorch深度学习
  7. SDUT 2022 Summer Individual Contest - 12(for 21)
  8. 鸿蒙系统上线意味着什么,鸿蒙系统今天上线,虽然体验肯定舒服,任正非指明方向...
  9. 深度研究5家TOP企业:巨变将至,不做矩阵的小程序没有未来!
  10. HSL值,HSLA,文档流,盒子模型等问题。