阿里面试官:乐观锁和悲观锁?可重入锁和Synchronized?

阿里面试常问技术有哪些?

数据结构,多线程,jvm,Spring,优化,消息框架,分布式,缓存等以及你使用过的框架且第一轮的基础很重要,通过会后录取可能性就相对高了!

一面(主要是jvm,并发,锁,数据结构等基础)

  1. 自我介绍(说说自己的擅长及拿手的技术)
  2. 说说treemap和HashMap的区别?HashMap和ConcurrentHashMap的区别?
  3. HashMap底层如何实现(JDK1.8有所改动)?
  4. 说说Hash的一致算法?
  5. 你知道的GC算法和回收策略有哪些?GC的机制是什么?
  6. 垃圾回收器的基本原理?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?
  7. 双亲委派模型机制
  8. 线程池创建的几个核心构造参数是什么?
  9. 乐观锁和悲观锁?可重入锁和Synchronized?
  10. 他们都是可重入锁吗?哪个效率更高?
  11. CountDownLaunch和Cylicbarrior的区别以及分别是在哪样场景下使用的?
  12. Http和Https的区别以及Https加密的方式?
  13. 以后的职业规划和想法

二面(主要是数据库,协议,Spring等)

  1. 自我介绍,聊下自己认为做得很好的项目!
  2. InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?MySQL隔离级别是什么?
  3. 说说事务的特性?讲讲对慢查询的分析?
  4. 你理解的BTree机制?
  5. 有哪些MySQL常用的优化方法?
  6. Http请求过程,DNS解析的过程?
  7. 三次握手和四次握手的过程?
  8. B+树索引和Hash索引之间的区别?
  9. Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?
  10. SpringBean创建过程中的设计模式?
  11. 说说AOP的实现原理?
  12. Tomcat的基本架构是什么?

三面(主要是缓存,高并发,分布式)

  1. 自己项目中的总结的并发经验
  2. 说说MySQL的锁并发?加锁的机制是什么?
  3. 高并发场景下如何防止死锁,保证数据的一致性?
  4. 集群和负载均衡的算法与实现?
  5. 说说分库与分表设计?
  6. 分库分表带来的分布式困境与对应之策有哪些?
  7. Redis和Setnx命令是如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?
  8. 缓存击穿的概念和解决方案?
  9. Redis的数据结构? 线程模型? Redis的数据淘汰机制?
  10. Redis的数据一致性问题
  11. MQ底层原理的实现?
  12. 阻塞队列不用Java提供的该怎么实现?
  13. 讲讲负载均衡的原理?
  14. 如何实现高并发环境下的削峰、限流?

四面(主要项目入手)

讲讲项目中用到的中间件(
Dubbo/MQ/Zookeeper/Redis/Kafka)?

  1. 什么情况下会造成雪崩?该怎么避免这种情况?
  2. 高并发架构的设计思路?
  3. 以前的项目中遇到的问题和解决策略?
  4. 生活中遇到过哪些挫折?最后怎么解决的?

最后

阿里都比较注重实际的项目中解决问题的能力,另外面试点主要围绕JVM、多线程相关、基础知识的底层原理、处理高并发的能力。

面试真题分享

以下对于Java程序员比较全面的资料,这里分享给大家,你们可以看一下自己需要什么,各取所需:

Java岗技术面试题库(5000+面试题)

这套题库里面中包含了以下很多个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM…

Java技术电子书(海量典藏版)

关于电子书,其中很多书籍都是非常不错的,值得大家研读(这里仅作为学习之用,分享给大家)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 乐观锁悲观锁是两种用于解决并发场景下数据竞争问题的思想。乐观锁非常乐观,认为别人不会同时修改数据,因此在操作数据时不会上锁。它在执行更新操作时,会先判断在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。乐观锁适用于竞争不激烈的情况,因为它不会锁住代码块或数据,其他线程可以同时访问,不会影响并发。悲观锁则比较悲观,认为别人会同时修改数据,所以在操作数据时会直接将数据锁住,直到操作完成后才释放锁。悲观锁适用于竞争激烈的情况,因为它可以阻塞其他线程的修改操作。常见的悲观锁实现方式有行锁、表锁、读锁、写锁等。在Java中,synchronized关键字和JDK提供的Lock实现类都是悲观锁。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [乐观锁悲观锁](https://blog.csdn.net/reed1991/article/details/56304430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [乐观锁(CAS)和悲观锁(synchronized)的详细介绍](https://blog.csdn.net/m0_57640408/article/details/127417615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值