从10月底到12月,总共面了5家公司,其中印象深刻的阿里,美团,拼多多!最后收获拼多多offer,在这分享一下面试经验总结,以及文末的一些学习笔记分享!

一、项目方面

  1. 首先上来简单做一下自我介绍。然后让介绍简历里的项目。
  2. 说下项目里的难点,技术架构。
  3. 平时开发过程中都遇到过哪些难题?
  4. 平时都这么和同事沟通?

二、java基础方面。

  1. 首先还是老生常谈的hashmap。hashmap的set和get的时间复杂度是多少?
  2. 为什么是O(1), hashmap 在jdk1.8是线程安全的吗?
  3. 为什么是线程安全的?
  4. concureenthashmap了解吗?他是如何实现线程安全的?
  5. 说说java泛型,为什么称java泛型为伪泛型?
  6. 泛型的好处有哪些?int可以作为泛型类型吗?
  7. 说一说静态代理和动态代理的区别?
  8. 动态代理的底层是怎么实现的?

三、多线程方面

  1. 线程run和start的区别?
  2. 两次start同一个线程会怎么样?
  3. 说一下java的线程模型?
  4. 说一下violate关键字?他的原理是什么?violate是线程安全的吗?
  5. 说一下violate和synchronized这两个关键字的区别?
  6. 说下线程池的原理?有没有在项目中用过线程池?怎么用的?
  7. 核心线程和非核心线程有什么区别?你在项目里怎么确定核心线程数的。
  8. 对concureent包了解吗?
  9. 什么是cas?cas怎么解决ABA问题?
  10. 讲一下CountDownLatch和cyclicBarrier的区别?
  11. 说一下java类加载器的工作机制?
  12. 讲一下JVM相关。有没有做货GC调优,讲一下这么做的?

四、spring框架

  1. 说一下springboot的启动过程?
  2. 平时开发中都用哪些注解?
  3. IOC和AOP原理讲一下

五、数据库与java中间件

  1. redis常用的数据结构有哪几种,在你的项目中用过哪几种,以及在业务中使用的场景?
  2. redis cluster有没有了解过,怎么做到高可用的?
  3. redis集群和哨兵机制有什么区别?
  4. redis的持久化机制了解吗?你们在项目中是怎么做持久化的?
  5. 遇到过redis的hotkey吗?怎么处理的?
  6. redis是单线程的吗?单线程为什么还这么快?
  7. redis实现分布式锁以及和zk实现的性能和稳定性的对比?
  8. kafka的原理?怎么保证消息不丢失?
  9. 索引的常见实现方式有哪些,有哪些区别?
  10. MySQL的存储引擎有哪些,有哪些区别?
  11. InnoDB使用的是什么方式实现索引,怎么实现的?
  12. 说下聚簇索引和非聚簇索引的区别?

六、手写算法方面

一面手写的题是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

最后

整理总结了这些Java进阶学习笔记和面试题,在这也是免费分享给那些有需要的朋友,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

这些资料都以整理成了PDF文档,如果有需要获取到文档的话帮忙三连一下

​文档资料