提高代码的可读性,规避容易出现的错误。

0. 共性

  • 对象或引用的非空性判断:

    • 强制类型转换时;
    • 函数返回时;
    • 函数的输入参数;
  • 任务执行的成功或失败判断
    • 文件打开;网络连接;数据库连接;
    • 内存申请;
    • 尤其对于 java 语言,使用反射机制时的,类不存在;
  • 连接要关闭,资源要释放;(通过编程语言的语法机制)
    • Python:with as
    • Java:try catch finally

0. 变量

  • long 或者 Long 初始赋值时,使用大写的 L,不能用小写的 l;

1. 类

  • 类名:

    • 抽象类以 Abstract 或 Base 大头;接口以 I 开头;
    • 异常类以 Exception 结尾;测试类以 Test 结尾;
  • 静态成员:
    • 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接使用类名来访问即可;

2. 集合

  • ArrayList 的 subList(fromIndex, toIndex) 的返回值不可强转为 ArrayList,否则会抛出 ClassCastException 异常,

    • subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList ,而是

      ArrayList 的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。
  • 同样,Arrays.asList()(数组转集合) 的返回对象也是 Arrays 的一个内部类;并没有实现集合的修改方法。Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。

    String[] strArr = new String[]{"zhang", "chunhui"};
    List list = Arrays.asList(strArr);
    list.add("wang"); // 运行时异常;
    strArr[0] = "wang"; // list.get(0) ⇒ 也同样修改;

3. 细节

  • 多行字符串表示 SQL 语句时,每行 SQL 语句的句前句后都加一个空格

    • 在 DAO 中编写 SQL 语句时,通常将 SQL 语句写在类的静态变量中(private static)中,以使代码变得更为可读;
    • 在编写多行 SQL 语句时,上下行最终会组成一行完整的 SQL 语句,如果在上一行的末尾和下一行的开始处均不加空格,将很容易出现错误:
// 将会出现错误的代码
private static String MATCH_COUNYT_SQL = "SELECT count(*) FROM" +
"t_user where user_name = ? and password = ?";
// FROMt_user ⇒
// 良好的代码,前后均保留空格;
private static String MATCH_COUNYT_SQL = " SELECT count(*) FROM " +
" t_user where user_name = ? and password = ? ";

编程军规 —— Java 篇的更多相关文章

  1. [ 高并发]Java高并发编程系列第二篇--线程同步

    高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...

  2. 【Todo】【读书笔记】Java多线程编程指南-设计模式篇

    下了这本书<Java多线程编程指南-设计模式篇>, 还有另一本<JAVA多线程设计模式>,据说内容有重复,结合着看.

  3. 零基础从实践出发学java编程【总结篇】

    1.背景 很多人学习java的第一步就是系统的学习java基础语法,有的java基础语法还没学完就崩溃了,确实java基础语法太多太细,而且都是理论,学着让人很懵: 好不容易学完基础语法,又要学框架. ...

  4. JSON总结(java篇)

    JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...

  5. [转]有哪些值得关注的技术博客(Java篇)

    有哪些值得关注的技术博客(Java篇)   大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...

  6. 【Socket编程】Java通信是这样炼成的

    简介 网络无处不在,移动互联时代也早已到来,单机版程序慢慢的已没有生命力,所有的程序都要能够访问网络,比如 QQ 网络聊天程序.迅雷下载程序等,这些程序都要同网络打交道,本次将与各位小伙伴们分享的就是 ...

  7. 事件驱动模型实例详解(Java篇)

    或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类 ...

  8. 《编程导论(Java)&#183;2.1.3改写(override)》

    <编程导论(Java)·2.1.3改写(override)>,收集override内容. 方法改写(method overriding)是指对于父类定义的一个实例方法,同意子类提供自己的实 ...

  9. 为什么函数式编程在Java中很危险?

    摘要:函数式编程这个不温不火的语言由来已久.有人说,这一年它会很火,尽管它很难,这也正是你需要学习的理由.那么,为什么函数式编程在Java中很危险呢?也许这个疑问普遍存在于很多程序员的脑中,作者Ell ...

随机推荐

  1. [array] leetCode-11. Container With Most Water-Medium

    leetCode-11. Container With Most Water-Medium descrition Given n non-negative integers a1, a2, ..., ...

  2. PJSIP开源库详解

    PJSIP是一个包含了SIP.SDP.RTP.RTCP.STUN.ICE等协议实现的开源库.它把基于信令协议SIP的多媒体框架和NAT穿透功能整合成高层次.抽象的多媒体通信API,这套API能够很容易 ...

  3. android获取一个用于打开Word文件的intent

    近期在做项目使用webview显示后,有写文档须要打开,找了一些资料,研究了一下,弄出来了! 以下贴一下主要代码: param为文档的主要路径 public static Intent getWord ...

  4. matplotlib学习之颜色样式

    一.颜色 1.内建八种默认颜色 蓝色 - 'b' 绿色 - 'g' 红色 - 'r' 青色 - 'c' 品红 - 'm' 黄色 - 'y' 黑色 - 'k' 白色 - 'w' 2.灰度 plt.plo ...

  5. php解析xml字符串

    <?php $content = <<<XML <?xml version="1.0" encoding="UTF-8"?> ...

  6. WP8.1:onedrive操作

    小梦今天给大家分享一下windows phone 8.1开发 onedrive中的一些操作: Windows phone 8.1 中 onedrive 登录 Windows phone 8.1 中 o ...

  7. Unity3D资源管理架构

    在Unity3D引擎中,场景资源文件(.unity)是以2进制格式存储的.但同一时候它也有一种基于文本的表现格式. 可在Edit>Project Setting>Editor 中设置: 1 ...

  8. zxing的使用及优化

    二维码介绍 zxing项目是谷歌推出的用来识别多种格式条形码的开源项目,项目地址为https://github.com/zxing/zxing,zxing有多个人在维护,覆盖主流编程语言,也是目前还在 ...

  9. DOM 的classList 属性

    1.添加1个或多个class add(class1, class2, ...) 2.移除class remove(class1, class2, ...) 3.判断指定的类名是否存在 contains ...

  10. 【codeforces 757A】Gotta Catch Em' All!

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...