面试复盘
上海科大智能物联
1、重写与重载是否是多态?
什么是重写、重载、多态
所以说重载是编译多态,重写是运行时多态
2、String什么类型?
是什么类型,有什么特征,存在什么问题,怎么解决
3、SpringBoot主要注解?
核心注解:@springBootApplication
内含注解及其作用:@SpringBootConfiguration,EnableAutoConfiguration,@ComponentScan:@Import(AutoConfigurationImportSelector.class)
4、Mybatis主要文件文件?
config配置文件
mapper配置文件
二者关系
dao如何映射mapper文件:mapper namespace=“org.mybatis.example.BlogMapper”
5、存储引擎有哪些?
存储引擎,区别,应用场景
6、中间件(无)
7、部署工具(无)
8、事务具体实现:
1、实现方式:
编程式事务:代码进行事务控制,精度高,但是代码耦合度高
声明式事务:通过@Transactional实现事务控制
<!--
1、配置事务管理器
<beanid="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
2、配置事务通知:在那些方法开启事务,事务的传播特性性
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--配置哪些方法使用什么样的事务,配置事务的传播特性-->
<tx:method name="add" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="search*" propagation="REQUIRED"/>
<tx:method name="get" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!--3、配置aop,织入事务:在那个包下的那些方法开启事务-->
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* com.kuang.dao.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
9、死锁问题
1、什么是死锁?
多进程竞争资源造成的一种僵局,无外力作用,无法再向前推进
2、死锁产生原因?
1、竞争资源:可剥夺,不可剥夺:造成死锁的因素
2、进程推进顺序非法
必要条件:
互斥条件:资源在某一段时间内只能被一个进程所占用,排他性
请求和保持:不释放自身资源,等待别人的资源
不剥夺条件:资源自我占用,不可被其他进程抢占
环路等待:资源环链
3、解决办法?
1、资源一次性分配
2、资源分配缺少,停止给进程分配其他资源
3、可剥夺资源:得不到等待的资源,放弃自己拥有的资源给其他进程使用
4、资源按序分配:给资源编号,进程按编号请求获取资源,即升序的方式,释放则是按降序
·一确定的顺序获取锁
·超时放弃:尝试获取未拥有的锁达设定时间后释放掉以获取的锁
避免死锁:银行家算法
检测死锁:
解除死锁:争夺资源、撤销进程
死锁检测