好程序员分享Java开发经常使用规范技巧二

一、使用一些日期类的时候,推荐使用LocalDateTime来替代Calendar类,或者说使用Instant来替代掉Date类。sql

二、尽可能避免在for循环里面执行try-catch操做,能够选择将try-catch操做放在循环体外部使用。数据库

 正确作法:网络

try {工具

         for (int i = 0; i < 100; i++) {this

             doSomeThing();设计

          }code

       }catch (Exception e){对象

            e.printStackTrace();索引

       }ci

不推荐作法:

for (int i = 0; i < 100; i++) {

      try {

                doSomeThing();

            } catch (Exception e) {

                e.printStackTrace();

            }

        }

三、对于大段的代码进行try-catch操做,这是一种不负责任的行为,将稳定的代码也都包围在了try-catch语句块里面没能很好的分清代码的稳定性范围。

一般咱们称在运行中不会出错的代码块为稳定性代码,可能会有异常出错的部分为非稳定性代码块,后者才是try-catch重点须要关注的对象。

四、在jdk7以后,对于流这类须要关闭链接释放资源的对象,可使用try-with-resource处理机制来应对。

例以下方代码:

File file = new File("*");

        try (FileInputStream fin = new FileInputStream(file)) {

            //执行相关操做

        } catch (Exception e) {

            //异常捕获操做

        }

5.使用ArrayList的时候,若是清楚它的指定大小的话,能够尽可能在初始化的时候进行大小指定,由于随着arraylist不断添加新的元素以后,链表的体积会不断增大扩容。

private void grow(int minCapacity) {

        // overflow-conscious code

        int oldCapacity = elementData.length;

        int newCapacity = oldCapacity + (oldCapacity >> 1);

        if (newCapacity - minCapacity < 0)

            newCapacity = minCapacity;

        if (newCapacity - MAX_ARRAY_SIZE > 0)

            newCapacity = hugeCapacity(minCapacity);

        // minCapacity is usually close to size, so this is a win:

        elementData = Arrays.copyOf(elementData, newCapacity);

}

六、对于一些短信,邮件,电话,下单,支付等应用场景而言,开发的时候须要设置相关的防重复功能限制,防止出现某些恶意刷单,滥刷这类型状况。

七、对于敏感词汇发表的时候,须要考虑一些文本过滤的策略。

这一块的功能能够考虑直接接入市面上已有的成熟的UGC监控服务,或者使用公司内部自研的ugc过滤工具,防止用户发表恶意评论等状况出现。

八、在创建索引的时候,对于索引的命名须要遵循必定的规范:

索引类型
命名规则
案例
主键索引
pk_字段名,pk是指primary key
pk_order_id
惟一索引
uk_字段名,uk是指 unique key
uk_order_id
普通索引
idx_字段名,idx是指 index
idx_order_id
九、当咱们须要存储一段文本信息的时候,须要先考虑存储文本的长度。

若是文本的长度超过了5000,则不建议再选择使用varchar类型来进行存储,能够考虑使用text类型进行数据存储,这个时候能够考虑单独用一张表来进行存储数据,而且经过一个额外的主键id来对应,从而避免影响其余字段的查询。

十、在进行数据库命名的时候尽可能保证数据库的名称和项目工程的名称一致。

十一、在进行表结构设计的时候,只要具备惟一性质的字段都须要创建惟一索引。

这样有助于后期进行查询的时候提升查询的效率,没有惟一索引这一层的保障,即便在业务层加入了拦截,可是依然容易形成线上脏数据的产生。

十二、在进行order by这类型sql查询的时候,须要注意查询索引的有序性。

关于索引的创建,能够去了解一下索引的星级评定,例如三星索引。可是我的认为索引没有所谓的最优性,须要结合实际的业务场景来设计。

1三、在MySQL中,使用count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。

2八、在进行数据库存储引擎选择的时候,须要结合相关的应用场景来选择,若是是须要应用在select操做较多的状况下,能够选择使用MyIsAM存储引擎,若是是对于数据的insert,update,这类修改操做较多的业务场景,则优先推荐使用innodb存储引擎。目前广泛互联网公司都推荐使用innodb较多。

免责声明:内容源自网络,版权归原做者全部,若有侵犯您的原创版权请告知,咱们将尽快删除相关内容

相关文章
相关标签/搜索