java开发面试题

warning: 这篇文章距离上次修改已过335天,其中的内容可能已经有所变动。

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。

版权声明 ▶ 本网站名称:我的学习笔记
▶ 本文链接:https://ooolo.net/article/144.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!!

none
最后修改于:2023年04月28日 13:34