1、spring框架aop(面向切面编程);
能剖解开封装的对象内部,将那些影响了多个类并且与具体业务无关的公共行为封装成一个独立的模块(称为切面)。比如日志功能,它是水平散布在所有对象层次当中,但仅做记录功能,不影响核心功能。
注解就是典型的aop列子,用@aspect声明,再在applicationcontext.xml中配置注解自动生成代理对象。
2、什么是事务?
是数据库操作的最小工作单位。某些操作作为一个整体一起提交,要么全部成功,要么只要有一条失败,则回滚之前的操作,反悔false。
1)原子性,要么成功,要么失败,无中间状态
2)隔离性
3)永久性,一旦提交,对数据库中的数据的改变就是永久性的
4)一致性
3、什么是热部署?
应用正在运行的时候升级软件,不需要重启应用的配置
4、sql优化
1)查询优化,尽量避免全表扫描,首先考虑在where和order by涉及的列上建立索引
2)避免在where中对字段进行null值判空,否则将导致引擎放弃索引进行全局扫描
3)避免中where中使用!=或<>操作符,会进行全表扫描
4)避免使用or连接条件,如果使用的两个字段只有一个有索引,将进行全表扫描。(可以使用union查询
5)in 和not in会导致全表扫描,能用between就不用in,也可用exists代替in
select i from a where exists(select 1 from b where i=a.i)
6)避免使用参数@num,因为只有运行时才会解析局部变量,但是访问计划是在编译时建立的,会导致无法作为索引,进而变成全表扫描。可以改为强制查询使用索引
select id from a with(index(索引名) where i=@i)
7)避免在where中使用表达式和函数操作,会使其放弃索引
8)复合索引尽量保证索引顺序和字段顺序一致
9)多张大数据表join,要先分页再join。
10)索引提高select效率,但也降低了insert及update的效率,因为后两者有时可能会重建索引
5、hashmap和hashtable
https://www.cnblogs.com/albertrui/p/10455298.html