Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >30个精简代码的小技巧(第21-30个)

30个精简代码的小技巧(第21-30个)

作者头像
良月柒
发布于 2019-09-24 02:41:56
发布于 2019-09-24 02:41:56
43500
代码可运行
举报
运行总次数:0
代码可运行

接上一篇

21.将常量声明为 STATIC FINAL

这样在编译运行时就可以把这些内容放入常量池中,避免运行期间计算生成常量的值。另外,将常量的名字进行大写。

22.程序运行过程中避免使用反射

反射是java提供给用户一个很强大的功能,但是功能强大效率却不是很高。不建议在程序运行过程中频繁是哦那个反射机制,特别是Method的invoke方法。如果确实必要,建议将那些需要通过反射加载的类在项目启动的时候通过反射实例化出一个对象并放入内存。

23.使用数据库连接池和线程池

这两个池都是重用与对象的,前者可以避免频繁打开和关闭连接,后者可以避免频繁创建和销毁线程。

24.使用带缓冲的输入,输出流进行I/O操作

带缓冲的输入,输出流即:

BufferedReader,bufferedWrite,BufferedInputStream,BufferedOutputStream它们可以大大提升I/O的效率。

25.顺序插入和随机访问比较多的场景使用ArrayList,元素删除和中间插入比较多的场景使用LinkedList理解这两个集合有何不同即可。

26.不要让public方法中有太多形参

public方法是对外提供的方法,如果给这些方法太多形参的话有两点坏处:

(1) 违反面相对象的思想,java讲究万物皆对象,太多形参,和java编程思想不和

(2) 参数较多会导致出错概率增加

27.字符串变量和字符串常量equals的时候将字符串常量写在前面

如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Strring str = "123";
 if(str.equals("123")) {
        }
 可以替换为:
 Strring str = "123";
 if("123".equals(str)) {
        }

这么做是为了避免空指针的出现

28.不要对数组使用toString()方法

本意是想打印数组里的内容,却可能因为数组引用对象为空而导致空指针异常。虽然对数组toString()没有意义,但是对集合toString()是可以打印出集合中的内容的,因为集合的父类AbstractCollections重写了Object的toString()方法。

29.不要对超出范围的基本数据类型做向下强制转换

得到的结果绝对是错误的。

30.把一个基本数据类型转为字符串,对象点toString()是最快的方法,对象点valueOf(数据)次之,数据+""最慢

想把Integer i转为字符串类型,有三种方式:

(1) i.toString()

(2) i.valueOf(i)

(3) i+""

下面测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public static void main(String[] args) {
 int loopTime = 50000;
 Integer i = 0;
 long startTime = System.currentTimeMillis();
 for(int j = 0 ;j < loopTime;j++) {
 String str = String.valueOf(i);
 }
 System.out.println("String.valueOf():"+(System.currentTimeMillis()-startTime) +"ms");
 startTime = System.currentTimeMillis();
  for(int j = 0;j < loopTime;j++) {
 String str = i.toString();
 }
 System.out.println("Integer.toString():"+(System.currentTimeMillis()- startTime) +"ms");
 startTime = System.currentTimeMillis();
 for(int j = 0 ;j < loopTime;j++) {
 String str = i + "";
        }
        System.out.println("i+\"\":"+(System.currentTimeMillis()- startTime)+"ms");
}

结果:

String.valueOf():11ms;

Integer.toString():5ms;

i + "":25ms;

原理是:

(1) String.valueOf()方法调用了Integer.toString()方法,但是在调用前先做了一次空判断;

(2) Integer.toString()是直接调用;

(3) i + ""是使用了StringBuilder实现,先用了append方法拼接,在toString()获取字符串

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
30个精简代码的小技巧
优化代码,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对代码的运行效率有什么影响呢?这个问题我是真么考虑的,好比人吃饭,吃一粒米,没用,但是一万粒,十万粒呢,这样的效率就很可观了。
Java帮帮
2019/12/25
7070
30个编程小技巧,提高代码性能
以下是在日常工作中总结出的一些编码经验,还有一些提高程序运行效率的小技巧,让我们一起来写出更好的代码吧。
公众号 IT老哥
2020/09/16
3750
高效率编码小技巧,带你飞!
代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。
Java技术精选
2021/09/23
3730
代码开发优化细节
带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50% 。
程序员NEO
2023/09/23
2971
Java 代码性能调优“三十六”策
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。
技术zhai
2018/09/05
4670
Java 代码性能调优“三十六”策
35 个 Java 代码性能优化总结
本文主要讲解了Java开发中的一些常见陷阱和最佳实践,包括命名约定、代码格式化、异常处理、集合操作、线程同步、资源关闭等。通过这些实践,可以提高Java开发的质量和效率,同时也有利于团队协作和代码维护。
Java后端工程师
2017/12/07
4.3K0
Java 代码性能优化
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。
马士兵的朋友圈
2020/09/08
4770
提升java代码的运行效率
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。
conanma
2021/12/06
5340
Java代码优化总结(长期更新)
2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:
ZhangXianSheng
2019/07/02
6030
44个Java代码性能优化总结
代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言,最后一条其实影响是非常大的,这意味着这段时间用户无法访问应用。因此,在写代码的时候,从源头开始注意各种细节,权衡并使用最优的选择,将会很大程度上避免出现未知的错误,从长远看也极大的降低了工作量。 代码优化的目标是: 1
Java技术栈
2018/04/02
1.7K0
44个Java代码性能优化总结
Java 性能优化:教你提高代码运行的效率
我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。
好好学java
2019/05/23
7850
44个Java代码性能优化总结
代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。 很多时候,我们为了解
IT大咖说
2018/04/04
7770
44个Java代码性能优化总结
java基本数据类型转换为String
我们都知道把一个基本数据类型转为String类型,一般有三种方式,例如:有一个Integer型数据a,可以使用i.toString()、String.valueOf(i)、i+””三种方式,三种方式的效率如何,接下来我们做一个小测试:
程序员飞飞
2020/02/27
9520
java基本数据类型转换为String
22个Java 代码性能优化总结
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。
用户4447430
2019/03/13
4400
Java 常用类
String a="hello"+"abc";//==>优化等价 String a="helloabc";
用户9615083
2022/12/25
6470
Java 常用类
Java常用类应用详解
可以通过图查询到其含有的字段和方法,jump to source 可以查看到源码。
timerring
2023/05/01
5010
Java常用类应用详解
Java-常用类
哈喽!大家好,我是小简。今天开始学习《Java-常用类》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!
小简
2023/01/04
3960
Java-常用类
【Java面试题系列】:Java基础知识面试题,看这一篇就够了
参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定要不要继续此次面试,如果答的不好,有些公司可能会直接说“技术经理或者总监在忙,你先回去等通知吧”,有些公司可能会继续面试,了解下你的项目经验等情况。
用户5546570
2019/06/06
5080
相关推荐
30个精简代码的小技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验