面试知识总结串联

面试问题,参考如下链接:

BAT等各大公司面试题,下面回答主要参考阿里巴巴

说下你经常用到的java中用的比较多的数据结构有哪些?考察java集合相关,

List:列表 

Set:保证集合元素唯一

Map:键值对


谈谈对HashMap的理解,底层实现原理等

参考链接:什么是HashMap线程不安全

高并发下的HashMap涉及到环形链表

什么是ConcurrentHashMap线程安全,涉及到了分段锁技术,顺气自然会问到锁的问题

注:在介绍HashMap原理的时候,会涉及到hashMap线程不安全的问题

会出现环形链表,参考链接:如何判断有环


接上图,java集合问完,下面是锁的相关问题

参考链接:synchronized和lock两种锁的比较

 java锁的分类

 乐观锁和悲观锁

 可重入锁场景


如上图,提到锁,可能会问到,什么事CAS机制,ABA问题怎么解决,volatitle关键字原理等

参考链接:volatile 关键字?

 CAS机制?

CAS机制进阶?


这里会问到分布式锁:

1.zookeeper分布式锁:加锁机制等

2.redis分布式锁

dubbo相关的:

说到java内存,讲讲jvm相关的东西吧,参考《深入理解java虚拟机》,类加载机制,双亲委派模型

参考链接:java虚拟机原理图解

jvm源码阅读笔记

jvm垃圾回收

jvm优化:参考链接:https://tech.meituan.com/jvm_optimize.htmlhttp://developer.51cto.com/art/201201/312639.htm

对于MinorGC和MojorGC频繁:如何选择各分区大小应该依赖应用程序中对象生命周期的分布情况:如果应用存在大量的短期对象,应该选择较大的年轻代;如果存在相对较多的持久对象,老年代应该适当增大。

下面会问到网络相关的问题

参考链接:tcp/ip三次握手,四次挥手

TCP滑动窗口控制流量的原理

数据库相关

参考链接:深入理解mybatis原理

redis相关参考redis中国官网

以上是自己通过面试,然后自己整理的知识串联,如有不正确之处,请指出,相互进步,谢谢!

你可能感兴趣的:(面试知识总结串联)