Java分布式锁实现方式,帮你解决95%以上的问题!
## **对于面试大厂的朋友,一些建议**
**阿里**
阿里面试官一般都是P7/P8岗,对标到普通互联网公司相当于就是技术专家那种类型!他们对于**没有经验的毕业生**面试问的比较浅一点,**大多数问题问的集合、锁、JVM调优,线程池、spring方面也会问源码、然后是分库分表、mysql、redis都会问点,**
而**1—3年工作经验**的,**70%看项目还是从实战项目**来问,**一般会问的比较深**,想去**阿里的朋友要做好准备,如秒杀系统项目一定准备好**,**20%问微服务、高并发。高扩展、高可用问题**,这些你也应该准备好,**10%问基础,像spring原理、Java内存区域是一定要知道**的
**网易**
网易的面试官,对**基础**很看重,然后问的也是实战项目。基本上万变不离核心思想。
**海康威视**
海康威视的面试官**跟网易的面试官**差不多,也**喜欢问基础**。**幸好我花了2个月的时间打好Java基础**。
## 那么如果你前几年跟我一样都在**Curd**,没进行过**系统的学习**,想**弥补这前 5 年的技术成长该怎么补救**?
> 手册包含了**Java、集合、多线程并发、反射、锁、Spring、SpringMVC、SpringBoot、JPA、Mybaits、微服务、Netty、RPC、网络、日志、消息队列、MySQL、Redis、设计模式、负载均衡、一次性算法、数据结构、Docker**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274880256023.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274880725261.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274880304490.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274881991719.jpg)
## **1,Java集合(部分内容)**
**接口继承关系与实现**
**List**
* ArrayList:数组
* Vector:数组实现、线程同步
* LinkList:链表
**Set**
* HashSet:hash表
* TreeSet:二叉树
* Linkhashset
**Map**
* Java实现
**线程安全**
**可排序**
**记录插入排序**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274881752513.jpg)
## **2,Java多线程并发(部分内容)**
**线程实现/创造方式**
**4种线性池**
* newCachedThreadPool
* newFixedThreadPool
* newScheduledThreadPool
* newSingleThreadExecutor
**线程生命周期(状态)**
* 新建状态
* 就绪状态
* 运行状态
* 阻塞状态
* 线程死亡
**终止线程4种方式**
* 正常运行结束
* 使用退出标志退出线程
* Interrupt方法结束线程
* stop方法终止线程(线程不安全)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274881663526.jpg)
## **3,Java锁(部分内容)**
* 乐观说
* 悲观锁
* 自旋锁
* Synchronized同步锁
* ReentrantLock
* 可重入锁(递归锁)
* 公平锁与非公平锁
* ReadWriteLock读写锁
* 共享锁和独占锁
* 重量级锁/轻量级锁
* 锁优化
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274881520928.jpg)
## **4,Spring(部分内容)**
**Spring特点**
* 轻量级
* 控制反转
* 面向切面
* 容器
**Spring常用模块**
**Spring主要包**
**Spring常用注解**
**Spring第三方结合**
**SpringIOC**
* Spring容器高层视图
* IOC容器实现
* SpringBean作用域
* SpringBean生命周期
**Spring 依赖注入四种方式**
**AOP 两种代理方式**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274882859526.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274882187440.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274882653611.jpg)
微服务(部分内容)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274882580747.jpg)
**Netty/RPC(部分内容)**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274882150727.jpg)
**网络(部分内容)**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274883579473.jpg)
**日志(部分内容)**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274883219886.jpg)
**消息中间接(部分内容)**
# 总结
机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。
对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。
你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:
**需要获取这份学习规划路线以及文章中提到的Java阿里内部Java应届生就业宝典的同学,请转发本文支持一下,关注我,[点击此处免费获取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**
![](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274883785940.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210703/1625274883444288.jpg)