栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面试总结1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面试总结1

Spring框架中BeanFactory和FactoryBean的区别

BeanFactory是IOC容器或对象工厂,FactoryBean是个Bean,在spring中所有的bean由BeanFactory管理,对于FactoryBean来说,这个Bean不是简单的Bean,他是一个能生产和修饰对象的创建的工厂bean,他的实现和设计模式中的工厂模式与修饰器模式类似

java中多线程在那些地方用到了

多线程是同一程序多个顺序流执行,实现多线程有两个方法,一个是继承thread类,另一个是实现Runable接口

前端:下载文件

后端:基本上后端所有的服务都应用到了多线程,比如来自前端的服务请求,优化性能增加CPU核数,分布式计算,异步处理,给不同的用户发送信息

活锁死锁问题分析,如何避免

死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,如果没有外力,他们将谁都无法推进下去

活锁:任务或者执行者并没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试

如何避免:

1.避免嵌套锁:死锁最常见的原因,如果已经持有一个资源,可以避免锁定另一个资源,如果只使用一个对象锁,则几乎不可能出现死锁情况

2.只锁需要的部分:只对需要的资源加锁,比如在程序中,我们锁定了完整的对象资源,但是如果只需要其中的一个字段,那么可以只锁定那个特定的字段而不是完整的对象

3.避免无限期的等待

多线程下如何保证线程安全

1.互斥同步:互斥同步是最常见的一种并发正确性保障手段,同步是指在多线程并发访问共享数据时,保证共享数据在同一时刻只被一个线程使用,而互斥是实现同步的一种手段 

2.非阻塞同步:就是先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果共享数据有争用,那就再采取其他的补偿措施

3.无需同步方案:可重入代码可以在代码执行的任何时刻中断它,转而去执行另外一段代码,而在控制权返回后,原来的程序不会出现任何错误

线程本地存储可以把共享数据的课件范围限制在同一个线程之内,这样无需同步也能保证线程之间不出现数据的争用问题

Redis的常见数据类型有哪些

String:计数器,统计多单位的数量

Hash:主要用于存储部分变更数据,比如存储用户信息

Set:用户将所有关注的人都放入一个set集合当中,将他的粉丝也放在一个集合中

List:消息排队,消息队列,栈

SortSet:存储班级成绩表,工资表排序

SpringMVC框架从发起请求到接收请求发生了什么

SpringMVC是由前端控制器(dispatchservlet)为核心的分层控制框架,首先客户端发出一个请求web服务器解析url并去匹配前端控制器的映射url,如果匹配上就将这个请求放入到前端控制器,前端控制器根据mapping映射配置去寻找相对应的handler,然后把处理权交给找到的handler,当handler处理完封装了业务逻辑的代码,会返回一个逻辑视图给前端控制器,此时的逻辑视图并不是一个正式视图,所以前端控制器会通过视图资源去解析逻辑视图,然后将解析后的参数放到view中返回到客户端并展现

Mybatis框架如何处理sql注入问题

可以使用#防止SQL注入,在Mybatis的查询中,还有一种写法是$,$多用于动态查询

$和#的区别,它们的区别是使用#可以防止SQL注入,$并不能防止SQL注入

乐观锁和悲观锁分析

乐观锁认为数据一般情况下不会造成冲突,只有当数据去执行修改情况时,才会针对数据冲突做处理,而悲观锁是比较消极的一种锁处理方式,直接在操作数据时抢占锁,其他的事物在进行时就会等待,直到占有锁的事务放锁为止,总的来说读取频繁使用乐观锁,写入频繁使用悲观锁

NIO和AIO、BIO三者区别

BIO:Block IO 同步阻塞式IO,就是我们平常使用的传统IO,它的特点是模式简单使用方便,并发处理能力低

NIO:New IO 同步非阻塞IO,是传统IO的升级,客户端和服务器端通过通道通讯,实现了多路复用

AIO:AIO是NIO的升级,也叫NIO2,实现了异步非堵塞IO,异步IO的操作基于事件和回调机制

Mybatis框架有几级缓存,默认开启几级

Mybatis自带一级缓存和二级缓存,一级缓存是本地缓存,当session刷新或关闭时,缓存会被清空,二级缓存是全局缓存,作用域超出session范围之外,可以被所有的sqlSession共享

Springboot如何实现自动装配

@springbootapplication中有一个注解是@EnableAutoConfiguration,然后再用里面的import注解将添加该注解的类所在的包作为自动装配包进行管理,也就是说当springboot应用启动时默认会将启动类所在的包作为自动装配的包

介绍spring框架IOC和AOP的工作原理

IOC是控制反转,就是依赖倒置原则的一种代码设计思路,是把原先在代码里面需要实现的对象创建,对象之间的依赖,反转给容器来帮忙实现。IOC容器通过xml,注解等其他方式配置类及类之间的依赖关系,完成了对象的创建和依赖的管理注入,实现IOC的主要涉及模式是工厂模式

好处:集中管理,实现类的可配置和易管理,降低了类与类之间的耦合度

AOP是面向切面,就是一种编程范式,提供从另一个角度来考虑结构以完善面向编程,AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或职责,例如事务处理,日志管理,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并且有利于未来的可操作性和可维护性

好处:降低模块的耦合度,使系统容易拓展,提高代码的复用性


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号