走过路过不要错过java
点击蓝字关注咱们mysql
转眼间,又快到了年末,今年是最不怕平凡的一年,年初随着疫情袭来,在家办公了好几个月。也就是今年,也是本身在上海的第10个工做年头,本身也慢慢的步入了30岁的中年危机。因此在上个月底,本身也是果断的选择了离职,就此踏上了你们所熟悉的金九银十就业面试高峰的大队伍中。面试
在此面试期间,投递了蚂蚁金服、百度、滴滴、美团、阿里、京东等一线大厂,还有其余独角兽,从中也去面试了几家,面试的内容大概的也差很少,大多数问的都是些线程并发、spring、分布式等内容。redis
但让我印象最深入的,仍是去阿里的面试,由于我对面试官问个人那些技术问题,在其余厂子面试的,我以为是都有一番风味。算法
1:自我介绍:
2:面:谈谈你作过项目中印象较深或自认为作的比较好的地方?
答:我以为我在Xx作的不错,用了XX需求实现XX功能,性能提升了N倍........等噼里啪啦的说了一堆。
3:面:你说使用到了AOP,能谈谈它的实现原理嘛?
答:它是依靠动态代理实现的,动态代理又分为JDK自身的以及CGLIB..............
4:面:嗯,能说说他们的不一样及优缺点嘛?
答:JDK是基于接口实现,而CGLIB继承代理类。。。(就是这样会直问下去,若是聊的差很少了就开始问一些零散的问题:)
5:JMM内存模型,如何划分的?分别存储什么内容?线程安全与否?
6:类加载机制,谈到双亲委派模型后会问到哪些违反了双亲委派模型?为何?为何要双
7:亲委派?好处是什么?
8:平时怎么使用多线程?有哪些好处?线程池的几个核心参数的意义?
9:线程间通讯的方式?
10HashMap的原理?当谈到线程不安全时天然引伸出ConcurrentHashMap,它的实现原理?
11:分库分表如何设计?垂直拆分、水平拆分?
12:业务ID的生成规则,有哪些方式?
13:SQL调优?平时使用数据库有哪些注意点?
14:当一个应用启动缓慢如何优化?
15:对乐观锁和悲观锁的理解;spring
其余的想不起来了,大概是以上这些,最后还简单的聊了以前作过得项目上的问题,结束以前告诉我以后会换一个同事和我沟通,听到这样的回复一面应该就这样过了。sql
首先确认对阿里的意向度(若是异地更会考虑对工做地点(杭州)的意向度!阿里很看重这个);其次面试官通常会针对您所作过的项目来作具体技术的交流,会比较关注我的对项目细节是否是掌握到位,主要考察java的技术基础和原理,好比Spring框架以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等,重点考察是否是有比较钻研技术和技术上的亮点【不必定每一个面都很厉害但必定要有亮点】;数据库
1:变着法的问了一大堆线程池的知识 (主要考对应的参数)
2:java内存模型
3:lock和synchronized的区别
4:B+树和B-树的区别
5:复合索引
6:汇集索引和非汇集索引的区别?
7:数据库索引 主键和惟一索引有什么区别
8:索引失效条件,何时该创建索引
9:innDB和MyISAM的区别?
10:线程安全(阻塞同步,非阻塞同步,无同步)
11:说说Java 类加载过程?
12:描述一下 JVM 加载 Class 文件的原理机制?
13:GC 是什么? 为何要有 GC?
14:简述 Java 垃圾回收机制。
15:如何判断一个对象是否存活?(或者 GC 对象的断定方法)
16:垃圾回收器的基本原理是什么?垃圾回收器能够立刻回收内存吗?
有什么办法主动通知虚拟机进行垃圾回收?
17:stop() 和 suspend() 方法为什么不推荐使用?
18:sleep() 和 wait() 有什么区别?
19:同步和异步有何异同,在什么状况下分别使用他们?
20:简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?
21:请说出你所知道的线程同步的方法。
22:什么是线程饿死,什么是活锁?
23:什么是 ThreadLocal?后端
根据项目深刻的了解技术实力,了解您的知识面,了解您的问题解决能力以及技术灵活运用能力,也经过这一过程考察团队合做能力、学习主动性和创新性,能够挑选2-3个作过的有典型性的项目作一个仔细 技术回顾和本身独到的理解【这会成为您的加分项】;缓存
1:关于Java异常的续承层次结构,讲述异常的续承关系;
2:java线程如何启动?java中加锁的方式有哪些,怎么个写法?
3:对乐观锁和悲观锁的理解;
4:JVM中堆是如何管理的,JVM的内存回收机制,介绍一下
5:redis缓存和memcached缓存的区别,以及各自的优劣势
6:微服务架构:dubbo和springcloud的区别,以及各自对应的使用场景。
7:线程池如何作负载均衡
8:如何设计单点登陆,说下单点登陆的原理
9:synchronized的实现原理?Volatile能保证原子性吗?为何?
10:讲一下GC?
11:.TCP三次握手,为何三次握手?
12:mysql死锁,怎么解决,若是不要求执行顺序,死锁怎么解决
面:下面问下题外话:
13:你以为阿里巴巴怎么样?
14:你对996你有什么见解呢?
15:说下你的强弱点
他们最后的高管复试会涉及到相关的技术问题,大部分是对你的总体价值观作宏观的把控(好比上进心,责任心,心态,工做激情等)
基本就是从大方向了解一下您的心态、抗压能力,工做中的角色、将来大体的规划以及对阿里的意向度
【技术基础以及的问题多看看书准备下就好了,不懂的直接说不懂不要紧的;在项目细节上多把关一下,根据项目有针对性的谈本身的技术亮点,能表达清楚,能够引导面试官来问你比较擅长的技术问题,我的就能够尽情发挥】
阿里比较喜欢的人才特色:对技术有热情,强硬的技术基础实力;主动,善于团队协做,善于总结思考;
在我面试的这十几家大大小小的公司中,我发现,那些大厂的面试反而比较容易,那些小一点的面试比较苛刻的。反正就是挑你鱼里的刺。最后,我在分享一下个人面经
第一点:包装一份属于本身的独特的简历
第二点:对面试的公司作好相应的准备
第三点:在面试过程当中要学会主动问问题
第四点:在技术问题上要如实的回答问题(会就会,不会就不会)
第五点:要有过硬的技术知识
第六点:再有过硬的技术知识下,前提是要有一套系统性的学习体系。
看到这里的朋友应该都是老铁了,我也把上文提到的大多数面试题须要掌握的一些核心技术知识点分享给你们。
线程
jvm内存区域
jvm运行时内存
垃圾回收于算法
GC分代收集算法VS分区收集算法
GC垃圾收集器
Java IO/NIO
jvm类加载机制
JAVA并发知识库
JAVA线程实现建立方式
4种线程池
线程生命周期
java锁
线程基本方法
同步锁于死锁
线程池原理
线程调度
因为时间有限,内容太长。看到这里的都是真粉真爱,前面的面试题总结,但愿能给到你们帮助,后面的核心知识点整理,因为文档太长,只能截到这里。
若是你们想获取以上java核心知识点文档,关注公众号【java烂猪皮】后台回复 [ java ]便可免费获取。
关注做者微信公众号 —《JAVA烂猪皮》
了解更多java后端架构知识以及最新面试宝典