【关于代码优化的面试题】

一. 目的

  1. 提高代码的运行效率
  2. 降低代码的体积

二. 优化方案

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方法时引发框架解析问题

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值