JAVA后端工程师笔试题-避坑公司

JAVA后端工程师笔试题

问题一:java关键字volatile的作用是什么?能保证原子性吗?
答:防止指令重排,不能保证原子性

问题二:四种线程池,如何配置线程池的线程数
答:如果是CPU密集型的 就用CPU核数*2
如果是IO密集型,CPU/(1-阻塞系统)

问题三:ConcurrentHashMap 的可以并发读,并发读写,并发写吗?用到的锁机制是什么?该锁的优点和缺点分别是什么?
答:。可以

优势:减少资源竞争,避免死锁出现

分段锁劣势:造成内存开销过多,性能会下降。

问题四:如果JAVA程序中抛出了java.lang.OutOfMemoryError:Java heap space ,请讲一下解决问题的思路。
答:先dump快照分析,确定是否内存泄露,然后检查配置参数设置是否合理,检查GC

二.框架

spring问题一:简单讲一下spring中aop是如何实现的。
答: 主业务A类中,辅助业务B切面在Spring项目启动时,A和B会组合成一个新的类C,在C类执行A类中,如果适当时机后,就会调用B类方法。C也就是我们所说的代理类。

spring问题二:简单讲一下spring MVC中的运行流程:
答:1.请求到DispatchServlet
2.通过HandlerMapper获取对应的Mapper
3.将Hander交给HanderAdapter,返回ModelView
4.ViewResolver进行视图解析

spring问题三?: beanFactory与 factoryBean的区别(该问题能基本反映对spring的熟悉程度)
答:前者是Spring bean的容器接口,交给Spring容器管理。后者是不直接返回 factoryBean本身,而是调用factoryBean和GetObeject方法,返回我们自己定义的对象。

spring问题四?: 简述三种IOC注入方式
1.setter注入
2.构造器注入
3.注解注入
原理:IOC是控制反转,正常情况下是A依赖B,所以需要A去实例化B,也就是A控制B的实现。spring提供的IOC是将所有实例交由spring管理,也就是所有对象自主实例化注入到spring容器,谁需要调用的时候去容器里面获取即可。主要解决对象依赖时,对对象管理的麻烦。

问:简述三种IOC注入方式
答:1. 通过Spring的getter 和setter方法注入
2.通过Spring容器提供的实例构造器方法注入
3.通过实例注解注入依赖

redis问题五:redis的两种持久化数据的方法是什么?它们分别有什么优缺点?
答:AOF:优点:适合灾难性恢复,可做到秒级持久化,不容易丢失
缺点:体积比较大,恢复慢
RDB:适合冷备份,体积小,可全量复制
缺点:粒度不够细,不能做到秒级持久化,容易丢失

mysql问题六:讲述数据库事务的四个隔离等级。讲述一下脏读,不可重复读,幻读。
答:ACID,原子性A 持久性C 隔离性I 一致性D
脏读:读到了其他事务修改后未提交的数据(两次数据不一致)
不可重复读:读到其他事务已提交的修改
幻读:同一个事务两次读的数据条数不一样

dubbo问题七:请简单描述一下dubbo的架构?

题目来源于 垃圾公司,老板pua拖延症严重,面试拖延题多,避开这家惠州思宏科技公司

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值