专栏首页Java架构师进阶Java程序员实现完美代码的十大要素

Java程序员实现完美代码的十大要素

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

1、注释尽可能全面

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

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

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

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

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

1.for(inti=0;i

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

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

5、ArrayList和LinkedList的选择

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

6、String,StringBuffer和StringBuilder

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

1.Stringa="a"; 2.Stringb="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方法进行覆盖。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 身为程序员的七大忌讳

    你是否是一个程序员,整天在电脑前做着开发工作。以下几个习惯也许每个人都会有,但如果你不及时改变自己,那你将后悔莫急。

    java架构师
  • JDK1.8-Java虚拟机运行时数据区域和HotSpot虚拟机的内存模型

    官方文档中规定的运行时数据区一共就几块: PC计数器, 虚拟机栈, 本地方法栈, 堆区, 方法区, 运行时常量池. 这里的官方规定是说, 如果你要做一个Java...

    java架构师
  • 程序员用技术在「抖音」上「撩妹」

    头条有多火?很火,超级火!抖音有多火?比头条有过之而无不及。据说抖音国际版不仅称霸了东南亚市场,还在美国市场非常火爆,外国人被国内各种直播的神技所折服。

    java架构师
  • 常用命令行快捷键

    木制robot
  • Linux-bg和fg命令(19)

    将后台的命令,放置前台(fore)继续执行,比如:fg 2 //等价于vi 2.txt

    张诺谦
  • 如何利用迅捷画图绘制工作流程图

    迅捷画图可以绘制流程图,思维导图并且能制作的很精美出来,那怎样利用迅捷画图绘制工作流程图呢?下面是小编辑总结的操作方法,可以参考步骤进行操作使用。

    啦啦啦
  • Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb

    书童小二
  • PHP检查URL包含特定字符串实例方法

    strpos()函数用于查找字符串中第一次出现的子字符串。如果子字符串存在,则该函数返回子字符串的起始索引,否则如果在字符串(URL)中找不到子字符串,则返回F...

    砸漏
  • 量子通信,怎样保障信息安全?

    日前,中国科学技术大学合肥微尺度物质科学国家实验室潘建伟院士、陆朝阳教授等完成的“多自由度量子隐形传态”名列2015年度国际物理学领域的十项重大突破榜首。 而北...

    新智元
  • Python学习笔记总结(四):异常处理

    一、异常基础 1、基础 try/except/else:【else是可选的】捕捉由代码中的异常并恢复,匹配except里面的错误,并执行except中定义的...

    py3study

扫码关注云+社区

领取腾讯云代金券