Java程序员如何写出“优美”代码,请往下看:

1、注释尽可能全面

对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述;类的注释应该包含类的功能说明、作者和修改者。

2、多次使用的相同变量最好归纳成常量

多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。

3、尽量少的在循环中执行方法调用

尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:

1.for(int i=0;i<list.size();i++){
2. System.out.println(i);
3.}
可以修改为:1.for(int i=0,size=list.size();i<size;i++){ 2. System.out.println(i); 3.}复制代码

4、常量的定义可以放到接口中

在Java中,接口里只允许存在常量,因此把常量放到接口中声明就可以省去public static final这几个关键词。

5、ArrayList和LinkedList的选择

这个问题比较常见。通常程序员最好能够对list的使用场景做出评估,然后根据特性作出选择。ArrayList底层是使用数组实现的,因此随机读取数据会比LinkedList快很多,而LinkedList是使用链表实现的,新增和删除数据的速度比ArrayList快不少。

6、String,StringBuffer和StringBuilder

这个问题也比较常见。在进行字符串拼接处理的时候,String通常会产生多个对象,而且将多个值缓存到常量池中。例如:

1.String a="a";
2.String b="b";
3.a=a+b;复制代码

这种情况下jvm会产生"a","b","ab"三个对象。而且字符串拼接的性能也很低。因此通常需要做字符串处理的时候尽量采用StringBuffer和StringBuilder来。

7、包装类和基本类型的选择

在代码中,如果可以使用基本数据类型来做局部变量类型的话尽量使用基本数据类型,因为基本类型的变量是存放在栈中的,包装类的变量是在堆中,栈的操作速度比堆快很多。

8、尽早的将不再使用的变量引用赋给null

这样做可以帮助jvm更快的进行内存回收。当然很多人其实对这种做法并不感冒。

9、在finally块中对资源进行释放

典型的场景是使用io流的时候,不论是否出现异常最后都应该在finally中对流进行关闭。

10、在HashMap中使用一个Object作为key时要注意如何区分Object是否相同

在jdk的HashMap实现中,判断两个Object类型的key是否相同的标准是hashcode是否相同和equals方法的返回值。如果业务上需要对两个数据相同的内存对象当作不同的key存储到hashmap中就要对hashcode和equals方法进行覆盖。

一个程序员学习平台分享给你们,让你在实践中积累经验掌握原理。主要方向是JAVA工程师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,担心面试不过的,可以加我的Java高级进阶群:230419550

Java程序员实现完美代码的十大要素相关推荐

  1. Java程序员之完美代码

    Java程序员如何写出"优美"代码,请往下看: 1.注释尽可能全面 对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述:类的注释应该包含类的功能说明.作者和修 ...

  2. java程序员的浪漫代码_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考价值的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程序动态闪 ...

  3. java程序员的浪漫代码_程序员的“硬核”浪漫

    Do an act of kindness. Help one person SMILE! 昨天是世界微笑日,是唯一一个庆祝人类行为表情的节日. 但有这么一群人,在大家眼中他们是不善表达.思维怪异,甚 ...

  4. java程序员的浪漫代码_程序员的浪漫 程序员告白 java | Just For Fun

    愿能致你以我仅有且所有的编程式浪漫. 1972年,美国Alcatel-Lucent Bell Labs成员Brian Kernighan在<Introduction to the Languag ...

  5. Java程序员如何使用代码来计算最大公约数和最小公倍数?

    沉淀.分享.成长,让自己和他人都能有所收获!

  6. java中bigdecimal除以int类型的数据怎么实现_大部分Java程序员都会忽略的几个问题,你中招没?...

    1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...

  7. 大部分Java程序员都会忽略的几个问题,你中招没?

    1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...

  8. Java程序员必备的几款开发工具,高效才是硬道理!

    作为一名优秀的Java程序员,怎能没有几款得心应手的高效开发工具呢!市面上类库.工具千千万,下面我就给大家推荐几款高效的Java开发工具. 一.Eclipse Eclipse做为一款开发源代码的Jav ...

  9. Java程序员必备的几款开发工具

    工欲善其事,必先利其器.作为一名优秀的Java程序员,怎能没有几款得心应手的高效开发工具呢!市面上类库.工具千千万,下面就给大家推荐几款高效的Java开发工具. 1.UItraEdit UltraEd ...

  10. java程序员具体是做什么的?我来分享一天的工作内容

    现在我来讲一下今天的工作情况.今天的工作内容是,我们一个项目上线了.测试那边测试了一下,然后我这边负责改bug.但是在改的过程中,我遇到了一些让自己心里特别不爽的情况. 我们的产品那块逻辑没有写清楚. ...

最新文章

  1. 【STM32】GPIO之LED
  2. 特征工程完全手册 - 从预处理、构造、选择、降维、不平衡处理
  3. XML反序列化出错,XML 文档(2, 2)中有错误
  4. 2018年房价到底会不会涨!
  5. storm笔记:Storm+Kafka简单应用
  6. Win7安装IIS详解
  7. 深入理解Attention及变种(四)
  8. 信息安全-网络安全风险评估技术原理与应用(一)
  9. WebWall-02.Burt Force(暴力破解漏洞)
  10. LINUX 下无线网卡 rtl8821CE/rtl8723de 驱动 无法驱动解决办法
  11. .NET Core容器化(Docker)
  12. STM32之BKP原理
  13. 【计组】偏移地址、段地址和寻址方式
  14. 加载大图片,内存溢出问题
  15. C++中rand函数和srand函数
  16. Java+SSM酒店管理系统旅店管理(含源码+论文+答辩PPT等)
  17. 电视购物中心小型呼叫中心系统二次开发
  18. 如何从无到有设计一款字体
  19. 大搜车:云上多地域高可用消息系统的构建
  20. 有效防御DDOS和APT攻击

热门文章

  1. CocoaPods升级安装三方库报错
  2. java调优随记-java对象大小
  3. Xcode不能真机调试运行
  4. Pydev 的覆盖率测试python coverage以及其他使用
  5. 学习vim: vim cheat sheet
  6. ubuntu 16.04: 配置ssh, vnc, ftp远程
  7. EasyRecovery如何恢复javascript文件
  8. 企业数据安全防护不可忽视,数据丢失/损坏如何处理?
  9. MES系统如何实现工厂无纸化生产?
  10. WebForm读取指定的config文件的内容