Spring相关
关于Spring的问题主要就是围绕着Ioc和AOP,它们真是Spring的核心啊。
Spring Bean的生命周期(重要程度:★★★★★)
推荐文章:【Spring】Bean的生命周期
Spring中用到的设计模式(重要程度:★★★★★)
工厂模式:IOC容器
参考文章 :
代理模式:AOP
参考文章:AOP那点事
策略模式:在spring采取动态代理时,根据代理的类有无实现接口有JDK和CGLIB两种代理方式,就是采用策略模式实现的单例模式:默认情况下spring中的bean只存在一个实例
讲一讲Spring IoC和AOP(重要程度:★★★★★)
IoC的核心是依赖反转,将创建对象和对象之间的依赖管理交给IoC容器来做,完成对象之间的解耦。
AOP主要是利用代理模式,把许多接口都要用的又和接口本身主要的业务逻辑无关的部分抽出来,写成一个切面,单独维护,比如权限验证。这样可以使接口符合“单一职责原则”,只关注主要的业务逻辑,也提高了代码的重用性。
AOP的应用场景(重要程度:★★★★☆)
权限,日志,处理异常,事务等等,个人理解就是把许多接口都要用的又和接口本身主要的业务逻辑无关的部分抽出来,写成一个切面,单独维护,比如权限验证。这样可以使接口符合“单一职责原则”,只关注主要的业务逻辑,也提高了代码的重用性。
Spring中编码统一要如何做(重要程度:★★★☆☆)
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Mysql索引的内部结构(重要程度:★★★★☆)
B+树,三层,真实的数据存储在叶子节点参考链接:http://www.cnblogs.com/tgycoder/p/5410057.html
参考资料:
MySQL索引原理及慢查询优化
如果一个SQL执行时间比较长怎么办(重要程度:★★★★☆)
可以利用pt-query-digest等工具分析慢查询日志,也可以用explain查看SQL的执行计划。具体可看我的另一篇博客MySQL调优
如果一张表中有上千万条数据应该怎么做分页(重要程度:★★★☆☆)
肯定不能直接limit,offset,主要就是要想办法避免在数据量大时扫描过多的记录。具体可看我的另一篇博客【译】优化MySQL中的分页
什么样的列适合加索引,如果一个列的值只有1和2,那么它适合加索引么(重要程度:★★★☆☆)
- 在where从句,group by从句,order by从句,on从句中出现的列
- 索引的字段越小越好
- 在建立联合索引时,离散度大的列放大联合索引的前面
只有1和2不适合建索引
文章中剩余的 redis 、ElasticSearch算法部分,我将在我以后的博客中,做单独的总结