前言
说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现。
悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中的synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。
乐观锁:总是很乐观认为,自己拿到数据操作的时候,没有其他线程来并发操作,等自己操作结束要更新数据时,判断自己对数据操作的期间有没有其他线程进行操作,如果有,则进行重试,直到操作变更成功。乐观锁常使用CAS和版本号机制来实现。java中java.util.atomic包下的原子类都是基于CAS实现的。
Java核心架构笔记大致如下
0~1年:
- Java基础(基本语法、面向对象、继承、多态、接口和抽象类、异常、内部类、集合、泛型、反射、I/O等)
- Web编程(Servlet MySQL数据库 商品管理系统实战)
- SSM框架入门到精通(Spring SpringMVC Mybatis SSM商品管理系统实战)
- SpringBoot(SpringBoot SpringBoot商品管理系统实战)
1~3年:
- JVM深度进阶(JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA 四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器等)
- 并发编程深度进阶(并发机制的底层实现原理 内存模型 并发编程基础 锁 并发容器和框架 原子类操作 并发工具类 线程池 实战)
- MySQL深度进阶(Mysq|存储引擎选型及注意事项 解读Mysq|的共享锁及排它锁 分区 事务隔离级别 索引 Sql优化)
- 数据结构与算法(Java程序员面试必问)
3~5年:
- 分布式消息中间件(Zookpeer Kafka MQ dubbo SpringCloud等)
- 数据库(主从复制 读写分离 分库分表)
- 高效存储(Redis MongoDB)
5年以上:
- 分布式扩展到微服务(SpringBoot SpringCloudAlibaba Docker)
- SSM框架源码解读(Spring高级源码 SpringMVC源码 Mybatis源码)
Part1:0~1年
Java基础:
Web编程:
SSM框架:
SpringBoot:
基于SpringBoot的商品管理系统实战:
Part1:1~3年
JVM深度进阶:
并发编程深度进阶:
MySQL深度进阶:
数据结构与算法:
Part1:3~5年
分布式消息中间件:
数据库:
高效存储:
Part1:5年以上
分布式扩展到微服务:
SSM框架源码解读:
中高级开发必知必会:
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例 感兴趣的朋友可以点击Java学习免费获取。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186194.html原文链接:https://javaforall.cn