Java程序员之完美代码
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资讯。
Java程序员之完美代码相关推荐
- java程序员的浪漫代码_专属于程序员的浪漫-Java输出动态闪图iloveyou
代码测试可用,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考价值的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程序动态闪 ...
- java程序员的浪漫代码_程序员的“硬核”浪漫
Do an act of kindness. Help one person SMILE! 昨天是世界微笑日,是唯一一个庆祝人类行为表情的节日. 但有这么一群人,在大家眼中他们是不善表达.思维怪异,甚 ...
- java程序员的浪漫代码_程序员的浪漫 程序员告白 java | Just For Fun
愿能致你以我仅有且所有的编程式浪漫. 1972年,美国Alcatel-Lucent Bell Labs成员Brian Kernighan在<Introduction to the Languag ...
- Java程序员如何使用代码来计算最大公约数和最小公倍数?
沉淀.分享.成长,让自己和他人都能有所收获!
- Java程序员必备的几款开发工具,高效才是硬道理!
作为一名优秀的Java程序员,怎能没有几款得心应手的高效开发工具呢!市面上类库.工具千千万,下面我就给大家推荐几款高效的Java开发工具. 一.Eclipse Eclipse做为一款开发源代码的Jav ...
- Java程序员必备的几款开发工具
工欲善其事,必先利其器.作为一名优秀的Java程序员,怎能没有几款得心应手的高效开发工具呢!市面上类库.工具千千万,下面就给大家推荐几款高效的Java开发工具. 1.UItraEdit UltraEd ...
- java程序员具体是做什么的?我来分享一天的工作内容
现在我来讲一下今天的工作情况.今天的工作内容是,我们一个项目上线了.测试那边测试了一下,然后我这边负责改bug.但是在改的过程中,我遇到了一些让自己心里特别不爽的情况. 我们的产品那块逻辑没有写清楚. ...
- java 用程序代码解释继承_关于初级java程序员笔试题
关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...
- Java程序员必备基础:Java代码是怎么运行的?
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:一个线程池 bug 引发的 GC 思考!个人原创+1博客:点击前往,查看更多 链接:https://segmen ...
最新文章
- wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享
- docker 推送镜像到私有地址
- boost::hana::greater_equal用法的测试程序
- .NET 程序员如何学习Vue
- 覆盖索引与联合索引_浅析MySQL的索引覆盖和索引下推
- webstorm配置,快捷键console.log,中文字体,快捷键配置等
- 八.激光SLAM框架学习之LeGO-LOAM框架---框架介绍和运行演示
- 【华为云专家技术公开课】7月4日直播,报名观看赢取好礼
- SAP License:PS中的成本控制
- 酷我 android 目录,酷我听听:Android平台最强音乐播放器
- STM32的两只狗儿——狗立看门狗
- logback配置控制打印台异常信息_老板下了死命令,要把日志系统切换到Logback
- error: ‘PRIO_PROCESS’ undeclared
- android 支付宝手势密码锁,Android仿支付宝手势密码解锁功能
- 赵海平专访【2015-03-26】
- git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
- 【影评】海贼王:855
- 美国ipv6云服务器配置,Vultr服务器添加ipv6地址的方法
- 百度直达号申请开通指南 轻应用开发
- A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHM