一、不允许使用汉语拼音命名
  不规范示例:
  public void zengjiaYongHu{}//拼音方法名称
  规范示例:
  public void addUser(){}
  解析:应该使用国际化语音,拼音使代码难懂

  二、Package名称必须全部小写,尽量使用单个单词
  不规范示例:
  com.Lxit.daoimpl 单词大写了,daolmpl多个单词
  规范示例:
  com.lxit.dao.impl
  解析:这是大家都认同的习惯写法,也是个默认的规范

  三、局部变量及输入参数不要与类变量同名(get/set方法与构造函数除外)
  不规范示例:
  public class UserDAOImpl{
    private int count;
    public void page(int count){}
  }
  规范示例:
  public class UserDAOImpl{
    private int count;
    public void page(int pageCount){}
  }
  解析:类变量会引起逻辑错误,引起覆盖。

  四、尽量不要在变量后面加魔法数字,英文单个字母和没有实际意义的英文数字单词来区分变量
  不规范示例:
  String One;命名一个英文字母的变量
  User user1=new User();
  User user2=new User();
  规范示例:
  User userAdd=new User();
  User userAdd=new User();
  解析:这样会降低代码的可读性,并且开发人员日后的维护会不容易

  五、包,类,变量命名不要加下划线(常量除外)
  不规范示例:
  com.tag_test.dao.jdbc_impl 有下划线的包名
  int user_age;带下划线的变量名
  public class Class_{} 带下划线的类名
  规范示例:
  com.tag.test.dao.jdbc.impl
  int userAge;
  public class Classes{}
  解析:一种习惯性的用法,默认的规范

  六、常量命名要大写,单词之间要用下划线分开

  不规范示例:
  public static final String teamAdd="teamAdd";小写且没有下划线
  规范示例:
  public static final String TEAM_ADD="teamAdd";
  解析:容易区分变量和常量

  七、方法名第一个字母小写(构造方法除外)
  不规范示例:
  public viod Function(){}
  规范示例:
  public void function(){}
  解析:习惯用法,默认的规范

  八、两个单词以上的变量名要驼峰命名
  不规范示例:
  int userage; age单词'a'小写
  规范示例:
  int userAge;
  解析:能够更清晰的看懂变量所代表的意思

  九、每个变量要用看的懂的词语来描述,尽量不要省略
  不规范示例:
  private Student stu; 把stundent简写成stu
  规范示例:
  private Student student;
  解析:使代码看起来清晰易懂

  十、一个类的命名一般是名词(有些ing的动词,形容词除外),变量名也是一样。函数的命名必须是动宾短语(构造器除外)
  不规范示例:
  public class Manage{} 动词命名
  规范示例:
  public class UserManage{}
  解析:能使别人一看类名就知道这个类大概是做什么的。

  十一、数据库连接对象的生成不能跟Modle层混搅,必须将其放在一个单独的类里,

     用单例模式来实现数据库的连接。
  不规范示例:
  public class UserDAOImpl{
    private static Connection connection;
    public static synchronized Connection getConnecion(){
      if(connection==null){
        try{}catch(SQLException e){}
            catch(ClassNotFoundException e){
                e.printStackTrace()
              }
      }
      return connection;
    }
  }
  规范示例:
  public class DBConectionTools{
    ptivate static Connection connection;
    private DBConnectionTools(){}
    public static synchronized Connection getConnection(){
      if(connection==null){
        try{
          Class.forName(Constants.MYSQL_DRIVER);
          connection=DriverManager.getConnection(Connection.MYSQL,Connection.MYSQL_USER_NAME,Constants.MYSQL_PASSWORD);

        }catch(SQLException e){

          e.printStackTrace();
          }catch(ClassNotFoundException e){
            e.printStackTrace();
          }
        }
      return connection;
    }
  }

  解析:数据库连接应当单独出去出来,以便其他类可以复用

  十二、id一般不要用int类型,用long类型
  不规范示例:
  int id;int类型的人员id
  规范示例:
  Long id;
  解析:随着id的增长,当增长的id超出int的范围的时候就会出现异常

  十三、sql语句一定要用占位符,不能用拼写组成的语句
  不规范示例:
  public void addUser(User user){
    String sql="insert into student(ID,name,sex,adddress)values("+user.getId()+","

  +user.getName()+","+user.getSex()+","+user.getAddress()+")";
  //?代表占位符
  }
  规范示例:
  public void addUser(){
    sql="insert into student(ID,name,sex,address)values(?,?,?,?)";
    //?代表占位符,可用预处理来发送sql语句
  }
  解析:很容易出现错误,而且不清晰,不容易让人读懂。

  十四、PreparedStatement最好不要声明为类字段
  不规范示例:
  public class UserDAOImpl{
    private PreparedStatement preparedStatement;
  }
  规范示例:
  public class UserDAOImpl{
    public void addUser(){
      PreparedStatement preparedStatement=new PreparedStatement(sql);
    }
  }
  解析:虽然很多类都能使用到了PreparedStatement对象,但各个方法里用到的PreparedStatement对象都是不同的,所以不能作为类字段,抽取出来做类字段的话会出现数据混乱的问题

  十五、做主键的列没有任何业务逻辑,没有任何实际意义,而且任何时候都不能修改。
  不规范示例:主键用一个身份证,或者学号
  规范示例:主键用id,唯一性的,不可改变的。
  解析:虽然身份证和学号也是唯一性的,但是他们是有意义的列,而且在程序升级时可以更改的,而id主要就是用来做主键的。

  十六、取记录的时候,拿数据库条件语句比较,不要自己用Java代码去比较。
  不规范示例:
  public void deleteById(){
    String sql ="select id,name,age form user";
    //........................
    ResultSet reslut =ResultSet.executeQuery();
    Where(result.next()){
      if(result.getLong("id")==id){
        //.................删除
      }
    }
  }
  规范示例:
  public void deleteById(Long id){
    String sql="delete from user where id = ?";
    //删除操作
  }
  解析:一旦取出的数据过大,而且用Java代码的if判断的话,会影响运行速率,还可能导致内存不足等错误。

  十七、代码提交之前必须写注释,不管什么原因。
  不规范示例:无文本注释
  规范示例:有文本注释,关键处有单行及多行注释
  解析:使别人能够很清晰的知道你做了哪些修改

  十八、提交之前先更新代码
  不规范示例:没review代码,没更新
  规范示例:review代码,更新
  解析:防止出现冲突

  十九、只要系统有红色错误,那么就不能提交,提交前要保证编译错误全部消除。
  不规范示例:暂无
  规范示例:暂无
  解析:如果上传了错误的代码,会导致别人因为下载了错误代码而带来开发上的问题

  二十、每个人的代码每天尽量上传,代码在本地的时间不要超过2天
  不规范示例:暂无
  规范示例:暂无
  解析:保持与资源库的同步

java高级规范之一的更多相关文章

  1. Java高级规范之二

    二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...

  2. Java高级规范之四

    四十一.控制层不能调用model层除了最顶级的接口外的任何内容.要通过new顶级接口才能调用. 不规范示例: public class UserServiceImpl{ private UserDAO ...

  3. Java高级规范之三

    三十一.如果变量名要加注释,说明命名不是很准确. 不规范示例:暂无 规范实例:暂无 解析:暂无 三十二.任何类字段除非必要,否则都要私有化 不规范示例: public class Person{ St ...

  4. JAVA语言编程格式高级规范

    作为一位开发人员,都要有严格的代码规范.为此我总结了一些代码规范案例. 目   录 1. 前言 2. 试用范围 3. JAVA命名规范-- 3.1 公共约定 3.2 Java文件.包 3.3 类.接口 ...

  5. JAVA语言规范-线程和锁章节之同步、等待和通知

    JAVA语言规范:线程和锁 1 同步 java编程语言提供了线程间通信的多种机制.这些方法中最基本的是同步化,此方法是使用监视器实现的.JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视 ...

  6. 黑马程序员——Java高级应用(一)

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  7. JAVA代码规范笔记(上)

    本文为<code conventions-150003>(JAVA代码规范)笔记. 文件组织 1.超过2000行代码的源文件将会比较难以阅读,应该避免. 2.每个Java源文件都包含单一的 ...

  8. Java注释规范整理

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00018736 在软件开发的过程中总是强调注释的规范,但 ...

  9. 成为java高级程序员需要掌握哪些

    section 1 1.Core Java,就是Java基础.JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如 ...

随机推荐

  1. innoDB 存储引擎

    innodb 是在mysql 5.5.8 及之后的版本中成为mysql的默认存储引擎.之前都使用myisam.   innodb 是事务型的存储引擎 支持ACID事务,适用于小事务.   1.表空间类 ...

  2. iOS/OSX学习资源

    https://www.raywenderlich.com/  (Ray视频教学) http://wiki.jikexueyuan.com/project/swift/  (swift中文学习网站)

  3. BookRent借阅管理

    最近整了个BookRent的小应用,单机版.连本地sqlite db.wpf界面,其中涉及到一些有趣的小功能和小坑,简单小结一下. 项目结构是wpf ui->view model->rep ...

  4. Bootstrap <基础七>按钮

    任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a>, <butto ...

  5. Redis 3.0.0 集群部署

    简述: 1.0.1:redis cluster的现状 目前redis支持的cluster特性 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot reshardi ...

  6. shell脚本连接、读写、操作mysql数据库实例

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  7. PHP 语法

    不过在 PHP 中,所有变量都对大小写敏感. 在下面的例子中,只有第一条语句会显示 $color 变量的值(这是因为 $color.$COLOR 以及 $coLOR 被视作三个不同的变量): 实例 & ...

  8. javascript的实践

    jQuery增强了css的选择器功能,是一个简洁快速的脚本库,能够使用短小的代码实现复杂的网页预览效果.如实现表格奇偶行异色 <script language="javascript& ...

  9. iOS 修改backBarButtonItem 中的titile 字段

    需求如下:A 页面 push 到 B 页面.    B 页面中有个返回按钮 不显示A 中的title,而显示 "<返回" ,当然系统的样式还是默认的系统样式.(考虑都是nav ...

  10. JSON入门学习

    JSON是一种与开发语言无关的轻量级的数据格式(JavaScript Object Notation) 优点:易于阅读和编写,易于程序解析和生产 JSON数据格式中没有日期及时间的数据格式的.一般直接 ...