一. 目的
- 提高代码的运行效率
- 降低代码的体积
二. 优化方案
1.重用对象:比如在进行字符串拼接等操作时,应使用 StringBuilder 或 StringBuffer 代替 String,以减少资源消耗和提高效率。
2.及时关闭流:无论是数据库连接还是 I/O 操作,都需要在使用完毕后及时关闭,以释放资源。忽略关闭流可能导致内存泄漏或内存溢出。
3.使用池:利用数据库连接池和线程池来避免频繁创建、销毁资源,从而减少系统开销。
4.避免循环内不必要的资源创建:避免在循环内持续创建对象引用,尤其是避免在循环中频繁调用数据库增删改操作,可以考虑使用批量操作。
5.优化时间复杂度:针对时间复杂度较高的代码,可以考虑在可行的情况下采用空间换取时间的方式进行处理。
6.使用局部变量:尽可能使用局部变量,因为这些变量保存在栈中,速度较快,且随着方法运行结束会自动释放,不需要额外的垃圾回收。相比之下,静态变量和成员变量的创建在方法区或堆中,速度较慢。
三. 给一个需求,如何设计表
1.命名规范
避免使用数据库关键字作为表名或字段名
用 _count 或 _num 后缀表示计数类的字段
2.表设计
每张表原则上应包含一个id字段作为主键
3.索引设置
控制索引数量,避免过多索引
合理设计组合索引以满足必要的索引需求
4.表名称规范
表名根据功能添加前缀,如功能表 t_,字典表 dic_,统计表 fact_,系统表 sys_
5.外键管理
避免定义物理外键,减少表的复杂性和操作开销
6.数据类型选择
优先选择占用空间较小的数据类型
四. 代码开发规范
1.静态成员调用
使用类名而非对象调用静态方法或变量
2.金额计算精度
避免使用double,应使用BigDecimal以防止精度损失
3.包装类比较
使用equals方法进行包装类对象之间的值比较
4.命名规则
类名使用首字母大写的驼峰命名法,除VO/BO/DTO等特定类外
方法名、参数名、成员变量和局部变量使用首字母小写的驼峰命名法
抽象类以Abstract或Base开头命名;自定义异常类以Exception结尾;枚举类以enum结尾;测试类以Test结尾
5.布尔类型变量命名
类中任何布尔类型的变量都不要加is前缀,避免生成get和set方法时引发框架解析问题