Java常见的一些经典面试题(附答案解析)( 五 )


三、Spring隔离级别

  1. 如果多个事务同时访问相同数据时 , 如果没有采取必要的隔离级别 , 可能会发生什么问题?(1)脏读:读取过期的数据 , 就是一个事物读到另一个事务未提交的新数据;(2)幻读:读取临时的数据 , 就是一个事物在进行修改全表的时候 , 另一个事务对数据进行了新 增 , 从而第一个事务的执行完后发现还有没有修改的数据 , 就好像发生了幻觉一样;(3)不可重复读:就是在同一个事务中先后执行两条一样的select语句 , 之间没有执行过Del 语句但先后结果不一样 , 这就是不可重复读;
  2. Spring事务隔离级别(1) Default:使用数据库本身的隔离级别ORACLE(读已提交)Mysql(可重复读);(2) Read_Uncomited:读未提交(脏读) , 最低隔离级别 , 一切皆有可能;(3) Read_Commited:读已提交 , 有幻读以及不可重复读的风险;(4) RepeaTable_Read:可重复读 , 但还是有幻读风险;(5) Serializable:串行化 , 最高隔离界别 , 杜绝一切隐患 , 但效率较低;
四、Spring怎么设置隔离级别?
  1. 用@Transactional注解声明式事务的事务管理中来设置isolation属性的隔离级别
  2. 在配置文件中设置事务tx:method元素
服务器Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 , 并在一个BSD-like 协议下发行 。 其特点是占有内存少 , 并发能力强 ,
Keepalived的作用是检测服务器的状态 , 如果有一台web服务器宕机 , 或工作出现故障 , Keepalived将检测到 , 并将有故障的服务器从系统中剔除 , 同时使用其他服务器代替该服务器的工作 , 当服务器工作正常后Keepalived自动将服务器加入到服务器群中 , 这些工作全部自动完成 , 不需要人工干涉 , 需要人工做的只是修复故障的服务器 。
Redis1. 设置缓存值的过期时间?(1) 常用的方式:expire key time(以秒为单位)(2) 字符串独有方式:setex(String key , int seconds , String value)如果没有设置时间 , 那缓存就是永不过期;2. Redis三种过期策略(1)定时删除:在设置key过期时间的同时 , 为该key创建一个定时器 , 让定时器在key过期的时候 , 对key进行删除;(2)惰性删除:key过期的时候不删除 , 每次从数据库获取key的时候去检查是否过期 , 若过期删除 , 返回null;(3)定期删除:每隔一段时间执行一次删除过期key的操作
总结:针对于上面的面试题我总结出了互联网公司Java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料) , 希望能帮助到您面试前的复习且找到一个好的工作 , 也节省大家在网上搜索资料的时间来学习 , 也可以关注我以后会有更多干货分享 。
Java常见的一些经典面试题(附答案解析)文章插图