如何写出优质Java代码的4个技巧?

1.只做有目的性的优化 大型软件系统肯定非常关注性能问题。虽然我们希望能够写出最高效的代码,但很多时候,如果想对代码进行优化,我们却无从下手。最重要的是天下没有免费的午餐,因此为了降低代价,我们通常会通过类似于缓存、循环展开或预计算值这类技术去实现优化,这样反而增加了系统的复杂性,也降低...
如何写出优质Java代码的4个技巧?
如果现在要求对你写的Java代码进行优化,那你会怎么做呢?作者在本文介绍了可以提高系统性能以及代码可读性的四种方法,如果你对此感兴趣,就让java课程一起来看看吧。

我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的。然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最有效的方法。在以前一篇文章中,我们讨论了必要时可以使用的四种特殊技术,这些特殊技术可以创建更好的Java软件;而本文我们将介绍一些有助于解决常见问题的通用设计策略和目标实现技术,即:
1.只做有目的性的优化
2.常量尽量使用枚举
3.重新定义类里面的equals()方法
4.尽量多使用多态性

值得注意的是,本文中描述的技术并不是适用于所有情况。另外这些技术应该什么时候使用以及在什么地方使用,都是需要使用者经过深思熟虑的。

1.只做有目的性的优化
大型软件系统肯定非常关注性能问题。虽然我们希望能够写出最高效的代码,但很多时候,如果想对代码进行优化,我们却无从下手。

最重要的是天下没有免费的午餐,因此为了降低代价,我们通常会通过类似于缓存、循环展开或预计算值这类技术去实现优化,这样反而增加了系统的复杂性,也降低了代码的可读性。如果这种优化可以提高系统的性能,那么即使变得复杂,那也是值得的,但是做决定之前,必须首先知道这两条信息:
1.性能要求是什么
2.性能瓶颈在哪里

首先我们需要清楚地知道性能要求是什么。如果最终是在要求以内,并且最终用户也没有提出什么异议,那么就没有必要进行性能优化。但是,当添加了新功能或者系统的数据量达到一定规模以后就必须进行优化了,否则可能会出现问题。

在这种情况下,不应该靠直觉,也不应该依靠检查。因为即使是像MartinFowler这样有经验的开发人员也容易做一些错误的优化,正如在重构(第70页)一文中解释的那样:

如果分析了足够多的程序以后,你会发现关于性能的有趣之处在于,大部分时间都浪费在了系统中的一小部分代码中里面。如果对所有代码进行了同样的优化,那么最终结果就是浪费了90%的优化,因为优化过以后的代码运行得频率并不多。因为没有目标而做的优化所耗费的时间,都是在浪费时间。

2023-04-03
mengvlog 阅读 7 次 更新于 2025-07-20 00:09:21 我来答关注问题0
  • 4.尽量多使用多态性 值得注意的是,本文中描述的技术并不是适用于所有情况。另外这些技术应该什么时候使用以及在什么地方使用,都是需要使用者经过深思熟虑的。1.只做有目的性的优化 大型软件系统肯定非常关注性能问题。虽然我们希望能够写出最高效的代码,但很多时候,如果想对代码进行优化,我们却无从下手...

  •  卓行天下34 一段java代码的4个问题

    1,其实是一样的,要这么写也是对的,都是定义一个String[]数组,自身起的名字不一样而已,只是习惯写成String args[],语法上是没有错误的。这里String[]数组的作用是接受运行时外部传来的数据。2.对,show方法里面的a是表示Animal的对象。就是调用这个方法时必须传一个Animal对象进来,当然也可传A...

  •  养初厹06 编写一个Java程序 用1、2、3、4这四个数组成一个四位数,要求每位不能重复,输出其所有组合

    方法1:public class PaiLie {// 对一组数字进行全排列 public static void main(String[] args) { int a[] = new int[5];for (int i = 1; i < a.length; i++)a[i] = i;pailie(a, 1);} public static void pailie(int[] a, int n) {// n 待交换数的索引 if (n

  •  校企律说法 JAVA怎么输出5个数换一行4个数

    1、JAVA输出5个数换一行4个数的编程如下:public class 类名(自己定义) {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.print( +2+ +3+ +5+ +7);2、int c=4;for(int n=2;n

  •  Ethan666888 如何优化java程序设计和编码,提高java性能

    如果在程序中使用StringBuffer的空间大小不是16个字符,那么就必须进行正确的初始化。 (4) 避免生成不太使用或生命周期短的对象或变量。对于这种情况,因该定义一个对象缓冲池。以为管理一个对象缓冲池的开销要比频繁的生成和回收对象的开销小的多。 (5) 只在对象作用范围内进行初始化。JAVA允许在代码的任何地方定义...

檬味博客在线解答立即免费咨询

代码相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部