• 阿里开发规范 注意事项


    1、POJO命名

    数据对象:xxDO(对应于数据表)

    数据传输对象:xxxDTO(业务领域)

    展示对象:xxxVO(一般为网页名称)

    2、服务器设置

    1、高并发服务器高小TCP协议的Time_await时间

    2、调大服务器支持的最大文件句柄数

    3、JVM的 -XX:+HeapDunpOnOutOfMemoryError

    3、@Transactional事务不要滥用,事务影响数据库QPS,使用事务地方考虑各方面的回滚,包括缓存,搜索引擎,消息补偿,统计修正

    4、线程池不允许使用Excutors创建,使用ThreadPoolExecutor或ScheduledExecutorService方式处理

    5、subList用来返回一个list的部分视图

    1、非结构性修改,影响彼此

    2、结构性,如发生在subList,原list发生变化,如发生在list,产生异常

    6、使用list.toArray(T[] array)时,应指定array的大小(list,size())

    7、使用工具类Arrays.asList()转换数组,不可使用集合类的add,remove,clears等方法(适配器)

    8、extends super

    ?extends T 子类型限定,可用于返回类型限定,不能用于参数类型限定

    ? super T 超类型限定,可用于参数类型限定,不能用于返回类型限定

    super超类型限定通配符可以向泛型对象写入,extends子类型限定的通配符向泛型对象读取

    9、jdk7以上,comparator

    1、x>y -> y<x

    2、x>y, y>z -> x>z

    3、x=y -> 则x, z比较结果和y, z的比较结果相同

    10、集合初始化 (要存的个数/(负载因子×0.75)) +  1,无法确定取16

    11、推荐entrySet遍历

    12、

      key能否为NULL value能否为NULL
    Hashtable N N
    ConcorrentHashMap N N
    TreeMap N Y
    HashMap Y Y

    13、jdk8使用Instance代替Date,LocalDateTime代替Calendar,DateTimeFormater代替SimpleDateFormater

    14、并发修改同一个记录时,避免更新丢失,需要加锁,要么在应用层加锁,要么在缓存加锁,要么在数据应用层加锁,使用version作为更新依据

    15、冲突小于20%时,使用乐观锁,重试不小于3次

    16、多线程下使用ThreadLocalRandom

    17、主键索引名 pk_字段名,唯一索引名 uk_字段名,普通索引名 idx_字段名

    18、小数类型使用 decimal

    19、超过3个表不要使用join

  • 相关阅读:
    Python将字符串转换成字典
    MySQL索引、视图
    MySQL高级查询
    MySQL函数应用
    MySQL约束
    MySQL基础查询
    MySQL数据库基本语法
    MySQL数据库存储引擎
    MySQL数据库简介与命令行操作
    MySQL 安装和配置环境变量
  • 原文地址:https://www.cnblogs.com/m2492565210/p/8651954.html
Copyright © 2020-2023  润新知