最后
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣,
对concureent包了解吗?
什么是cas?cas怎么解决ABA问题?
讲一下CountDownLatch和cyclicBarrier的区别?
说一下java类加载器的工作机制?
讲一下JVM相关。有没有做货GC调优,讲一下这么做的?
四、spring框架
==========
说一下springboot的启动过程?
平时开发中都用哪些注解?
IOC和AOP原理讲一下
五、数据库与java中间件
================
redis常用的数据结构有哪几种,在你的项目中用过哪几种,以及在业务中使用的场景?
redis cluster有没有了解过,怎么做到高可用的?
redis集群和哨兵机制有什么区别?
redis的持久化机制了解吗?你们在项目中是怎么做持久化的?
遇到过redis的hotkey吗?怎么处理的?
redis是单线程的吗?单线程为什么还这么快?
redis实现分布式锁以及和zk实现的性能和稳定性的对比?
kafka的原理?怎么保证消息不丢失?
索引的常见实现方式有哪些,有哪些区别?
MySQL的存储引擎有哪些,有哪些区别?
InnoDB使用的是什么方式实现索引,怎么实现的?
说下聚簇索引和非聚簇索引的区别?
六、手写算法方面
===========
一面手写的题是leetcode 106. 从中序与后序遍历序列构造二叉树
根据一棵树的中序遍历与后序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
例如,给出
中序遍历 inorder = [9,3,15,20,7]
后序遍历 postorder = [9,15,7,20,3]
返回如下的二叉树:
3
/ \
9 20
/ \
15 7
二面手写的题是 leetcode 86. 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入: head = 1->4->3->2->5->2, x = 3
输出: 1->2->2->4->3->5
最后
读者福利
更多笔记分享
ps://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**