1、如何解决spring单例的线程不安全问题? 一般线程不安全问题都是因为成员变量,因为成员变量放在堆上,堆是线程共享的。 如何解决呢? a.改变单例作用域 在对应的类名上加上该注解@Scope("prototype"),表示每次调用该接口都会生成一个新的Bean。下图示例 b.解决方案二 ThreadLocal解决问题 c.尽量不使用成员变量 d.更改作用于为request 每次请求相当于重新生成对象
2、union和union all的区别 union:查询的结果集会合并 不会包含重复项 union all:查询的结果集不会合并 会包含重复项
3、spring的aop通知
4.git和svn的区别 git是分布式的 svn不是分布式的 git把数据按元数据存储 svn是按文件存储 git没有一个全局版本号 svn有 svn提交必须先update然后在commit,忘记合并会出现问题
5、left join、right join,join的区别 left join 左链接 以左边为主关联表2,表1数据全部显示,表2展示与表1交集数据
right join 右链接 以右边为主关联表2,表1数据全部显示,表2展示与表1有交集数据
join 内链接 表1 表2只展示有交集的数据
6、msql函数 char_length() format() left() right() weekday() year() now()
7、Sql查询时如果某字段是null值排序问题 当sql语句是升序时 null值会为最大“默认值”排序最底部,如何解决呢? 在sql语句后面添加 nulls first 排前面 ,nulls last 排后面解决 select * form user where order by id nulls first / nulls last
8、工作流了解
9、ehcache和redis的区别 ehcache是一个纯java的进程缓存框架,运行在jvm上,效率高,速度快,但是缓存共享麻烦,分布式架构麻烦 redis是一个独立程序,通过socket访问到缓存服务,效率比ehcache慢比数据库访问快 如果是单个应用独立程序,对缓存要求高的推荐用ehcache 如果是分布式架构,大型应用推荐用redis
10、spring有哪些组成? Spring有七大功能模块,分别是Spring Core,AOP,ORM,DAO,MVC,WEB,Context。