`
elite20130514
  • 浏览: 45032 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

读编写高质量代码整理(一)

阅读更多

在毕业工作的这两个月里,项目开发过程中总有些代码自己感觉写的不漂亮,总感觉会有更好的方式,然而时间又有限,所以在不影响程序运行的情况下就搁在一边了,然而有这样的疙瘩在心里总感觉不爽。所以工作之余,拜读改善java程序的151个建议这本书,并根据自己实际情况,做出整理。下面的都以建议的形式给出,代码千变万化,这里介绍的是比较高质量的建议写法。
下边是昨天看的一些知识整理:避免带有变长参数的方法重载

在项目的开发中,我们有需要把不确定数量的参数传递到方法,java5直接都是把形参定义成Collection接口或其子类类型,亦或是数组,这种方法的缺点是需要对实参进行判断和筛选,比如实参为null或者长度为0的Collection或数组,这是书上的原话,其实在实际项目中都要进行判null操作,比如

public void fun2(Collection<Integer> c) {
		if(c != null)
		for(int tmp :c) {
			System.out.println(tmp);
		}
	}
	public void fun(int... var) {
		if(var != null)
		for(int tmp :var) {
			System.out.println(tmp);
		}
	}

 

 如果不判null,就有可以抛NullPointerException

 

public class demo4 {
	public void foo(int a,int b) {
		System.out.println("this is fixed args method");
	}
	public void foo(int a,int... b) {
		System.out.println("this is variable args method...");
	}
	public static void main(String[] args) {
		demo4 d = new demo4();
		d.foo(1, 2);
		d.foo(1, 2,3);
	}
}
/**
 * 	d.foo(1,2)为什么会调用第一个foo方法?编译器是如何实现的?
 * 	因为int是一个原生数据类型,而数组本身是一个对象,编译器"偷懒",于是从最简单的开始"猜想"
 * 	只要符合编译通过,则最先调用
 * 为了让使代码更具可读性,建议考虑不用变长参数的方法重载
 */

 

this is fixed args method
this is variable args method...

 

分享到:
评论

相关推荐

    如何编写高质量JS代码(续)

    继续上一篇文章《如何编写高质量JS代码》今次整理一下javascript函数知识点。 2.使用函数 函数给程序员提供了主要的抽象功能,又提供实现机制。函数可以独立实现其他语言中的多个不同的特性,例如,过程、方法、构造...

    如何编写高质量JS代码

    难得挤出一点点时间,绝不睡懒觉,整理总结往日所看的书,只为了可以离写自己的类库近一点。 本文参考自《javascript语言精粹》和《Effective JavaScript》。例子都被调试过,理解过后,我想把一些“深奥”的道理说...

    MATLAB的数据采集与分析系统源代码

    图像处理日益成为一门引人注目、前景远大的学科,而MATLAB语言以强大的科学运算、灵活程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言便捷的接口功能,成为当今国际上科学界最具影响力、最有活力的...

    软件设计与体系结构期末复习笔记(xinhua)

    高质量代码的四个基本特性:(记忆) ① 正确性 ② 简单性 ③ 可读性 ④ 可测试性 软件设计模式(Software Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结...

    免费下载:C语言难点分析整理.doc

    59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 ...

    C语言难点分析整理

    59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 ...

    C语言难点分析整理.doc

    59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全...

    c语言难点分析整理,C语言

    59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 ...

    java版飞机大战源码-Resources:收集资源

    如何编写高质量的代码 JS Eslint CSS 浏览器调试技巧 编辑器 Java DB SQL Server MyBatis 日志 RESTful 设计模式 前端 项目 浏览器 IE IE添加受信站点会导致网页对话框中不显示浏览器地址。 IE插件开发 跨域 缓存 ...

    Investigate_the_Movie_Database_-TMDb-:用Python编写的代码用于调查10,000部电影

    研究电影数据库(TMDb):目录: ...数据整理: 分析的第二步是数据整理,它包括通过视觉和程序评估TMDb Movies数据集,识别是否存在整洁问题,然后提高其质量,这将有助于我们稍后分析数据并得出结论。数据清理(提

    Flash ActionScript 3.0高级动画教程

    编写网格代码 测试并调整网格 整理成类 使用此类 检测不只是为了碰撞 总结 第二章 转向 行为 行为 2D向量(Vector2D)类 机车(Vehicle)类 转向机车(SteeredVehicle)类 寻找行为 避开行为 到达行为 追捕行为 躲避行为 ...

    2023年 java最新学习资料

    1.java_插件 2.Java学习笔记(必看经典).doc 3.Java注释规范整理.docx 4.java泛型.docx 5.java笔记.txt 6.java调试.doc 7.JDK系统变量的配置.txt ...9.编写高质量Java代码.pdf 10.设计模式pptx 11.输入输出重定向.txt

    CSS三栏布局探讨——中间固定宽度两边自适应宽度

    今天早上在阿当大侠的编写高质量前端代码群中与几位朋友一起探讨和学习了一种用div+css进行的三列(三栏)布局,而且是中间固定左右两边自适应宽度,听起来蛮有意思的。因为以前只是碰到过,左右两列固定而中间...

    Transformer架构下的量价选股策略:ChatGPT核心算法应用于量化投资.pdf

    ChatGPT作为基于GPT模型的大型对话式语言模型,不止在文本生成和代码编写领域有着高质量的应用,同时也在其他领域有所涉猎。本篇报告就将聚焦于其核心算法Transformer,在量化投资策略中的运用。

    ZCBUS v2.0.1 使用手册

    用户无需编写任何代码,通过可视化图形配置界面,只需几分钟即可自服务式的部署一条实时数据管道(链路),并提供丰富的管理功能:数据计算批流一体、数据质量管控、数据任务流管理,可视化运维管理、错误队列管理、...

    高级C语言详解

    59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 ...

    react-redux-saga-boilerplate:准备好进行Web和移动应用程序开发的monorepo前端样板。 通过react,redux和redux-saga实现。 用TypeScript编写

    有时由于经济上的时间压力,很难交付高质量的软件。 通过这个项目,我试图提供最佳实践的前端样板。 希望能节省开发人员和其他利益相关者的神经。 知识库 为了完全理解该项目,您应该熟悉以下技术。 (monorepo管理...

    毕业设计-采用单Activity多Fragment以及多模块Activity多Fragment的设计模式编写的架 (1).zip

    这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、...

    matlab简单计算程序代码-robin:稳健的文档图像二值化

    robin是用Python编写的RO胸像文档图像BIN整理工具。 robin-快速的文档图像二值化工具; 指标-用于衡量二值化质量的脚本; 数据集-DIBCO 2009-2018,《棕榈叶手稿》和我自己的具有原始图像和真实图像的数据集的链接;...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

Global site tag (gtag.js) - Google Analytics