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

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基础通信_Java网络通信基础编程(必看篇)

    方式一:同步阻塞方式(BIO): 服务器端(Server): package com.ietree.basicskill.socket.mode1; import java.io.IOExceptio ...

  2. java漂亮界面编程_计算机二级之JAVA篇

    Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.深受程序员们的追捧,据TIBOE ...

  3. BurpSuite插件开发指南之 Java 篇

    Her0in · 2016/05/27 16:53 此文接着 <BurpSuite插件开发指南之 API 下篇> .在此篇中将会介绍如何使用Java 开发 BurpSuite 的插件,重点 ...

  4. JSON总结(java篇)

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

  5. 安卓开发必备知识体系:Java篇

    大家好我是张拭心,自从各位朋友帮点广X开始,我发现我每天更有奔头了,走起路来也更有劲了,说啥也得更新的勤快一点.不过放心,我一定推送有价值的内容给大家,还请朋友们照旧动动手指点点底部的那个小东东支持, ...

  6. 字节码编程,Byte-buddy篇二《监控方法执行耗时动态获取出入参类型和值》

    作者:小傅哥 博客:https://bugstack.cn - 汇总系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 案例是剥去外衣包装展示出核心功能的最佳学习方式! 就像是我们研 ...

  7. 明翰Java教学系列之认识Java篇V1.3(持续更新)

    文章目录 传送门 前言 什么是Java? Java之父 `Java的应用场景` Java部分特点 Java工作机制 JDK(Java Development Kit) JRE(Java Runtime ...

  8. 自学Java篇之JFrame创建《石头迷阵小游戏》

    自学Java篇之JFrame创建<石头迷阵小游戏> 根据黑马程序员java教程自学完java基础,觉得石头迷阵小游戏案例具有一定的编程练习价值,记录之. 最终效果: 案例主要思想流程: ​ ...

  9. Java私塾跟我学系列——JAVA篇 第四章Java类和对象

    教学目标: i面向对象基础 i掌握对象的三大特性 i掌握Java类的构建 i掌握如何使用Java类 i理解引用类型 i理解按值传递和按引用传递 i深入理解变量 i掌握包装类 i理解类型转换 i理解Ja ...

最新文章

  1. JavaScript如何诞生
  2. linux查看lvm命令,linux lvm常用命令总结
  3. 为什么在进程中还需要线程呢?
  4. TCP/IP总结(4)TCP 之数据包格式
  5. 节前福利 | 三位大佬带你从客户成功、销售、市场端打造 To B 运作体系 !
  6. jmeter中生成UUID作为唯一标识符
  7. python颜色形状识别_Python自定义颜色形状Fi
  8. 乾坤 微前端_拥抱云时代的前端开发架构——微前端
  9. Kubernetes 学习总结(20)—— Kubernetes 与微服务和容器之间是什么关系?
  10. 52多项式07——有理系数和整系数多项式、埃森斯坦判别法、整系数多项式的有理根
  11. 第一章:开始启程-你的第一行Android代码
  12. 一些简单的道理和习惯
  13. 程序员简洁简历模板分享
  14. jsoncpp操作类
  15. MER 音乐情感识别-论文笔记8
  16. Swift - 访问通讯录-使用AddressBook.framework和AddressBookUI.framework框架实现
  17. 机器视觉方向的大牛介绍
  18. 7-7 国王的金币 (10 分)
  19. Unity Shader 卡通渲染 (三):仿塞尔达荒野之息 Shader(顶点色控制细节)
  20. 《信息安全系统设计基础》第1周问题总结

热门文章

  1. pythonjs设置_在节点js中设置env变量并在python脚本中使用
  2. i219v微星 驱动_适用于WinPE的I219V英特尔驱动程序
  3. asp oracle 分页显示,asp + oracle 分页方法(不用存储过程)
  4. Linux编译LLVM,如何使用ninja快速编译LLVM和Clang(以llvm3.3为例子)
  5. java和php区别吗_请说说Java和PHP的区别
  6. python实现qq登录_python实现QQ批量登录功能
  7. vue查询列表中所有用户信息_vue实现全匹配搜索列表内容
  8. 图卷积网络进行骨骼识别代码_深兰科学院:动作识别——人体骨架时空图卷积网络的关节图构造方法简介...
  9. layui totalRow 多层嵌套json_自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历...
  10. python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数