年末年初之际,经常会接到一些面试,整理了一下面试的题目。
我个人的观点还是偏向于使用,肯动脑,理解并能拓展,当然了最重要的还是自己学习的能力。
没有人天生就会,多学多用。
虽然做软件开发,不同语言会有不同的技术要求,但是对于Senior Level肯定需要技术的广度,更需要技术的深度。
题目不分前后,想到什么写什么
HashMap的数据结构
这里肯定会涉及数组和链表相关的一些知识点,以及优劣势。
那HashMap的原理呢?又会牵扯到线性数组和链表的综合实现。
HashMap如何扩容呢?等等
JVM的原理,JVM的类加载机制
JVM的内存管理,GC
JVM性能调优
如何减少GC的频率和FullGC的次数呢
说一下对NIO的理解
主要体现在缓冲区数据的理解以及阻塞非阻塞相关的概念
如何处理网站高并发问题
分布式集群的理解
消息中间件的理解
以及如何才能做到消息不丢失呢
RPC有了解吗
分布式缓存如何做到实时性和统一性
数据库的集群有没有了解
分库分表有没有在实际项目中运用
快排的使用场景
如果要求排序稳定,优先采用什么算法,如何优化呢
对前端框架有哪些了解
在实际项目中运用遇到了哪些问题
Linux用的多吗
如何排查CPU异常,内存溢出等故障
对DevOps的理解