美文网首页
BAT研发面试36题总结:Spring+Redis+Docker

BAT研发面试36题总结:Spring+Redis+Docker

作者: java云帆 | 来源:发表于2019-03-02 22:26 被阅读0次

    Java程序员必经之路

    一面::

    1. ArrayList和 linkedlist区别。 ArrayList是否会越界。

    2 ArrayList和 hashset有何区别。 hashset存的数是有序的么。

    3. volatile和 synchronized区别

    4.多态的原理

    5.数据库引擎 INnodb和 myisam区别

    6. Redis的数据结构

    7. Redis是基于内存的么

    8. Redis的 ist zset的底层实现

    9.http和https的区别,tcp握手过程

    10.jwm垃圾回收算法手写冒泡

    11.手写单例包括多线程下

    12.Java线程间怎么实现同步,noty0与 notify0的区别

    13.数据库的悲观锁和乐观锁应用场景

    14排序算法的复杂度,快速排序非递归实现

    15.海量数据过滤,黑名单过滤一个url

    二面:

    1. list set map底层使用什么实现的有哪些典型实现

    2. hashmap扩容是怎么扩容的,为什么是2的幂

    3. concurrenthashmap为什么线程安全,采用了什么措施应对高并发

    4.线程池的参数有什么意义

    5. Springmvc请求流程

    6. Spring IOC, autowired如何实现

    7. Spring boot

    8. Spring Clound的基本架构设计

    9. Dubbo和 Spring Clound的区别在哪里,优劣势

    10.说说一致性Hash算法.

    三面:

    1.分布式架构设计哪方面比较熟悉

    2.讲讲你对CDN的了解,与分布式缓存和本地缓存的区别

    3.多线程和高并发有什么区别

    4.高并发下有哪些常用的技术解决方案,举三个高并发场景设计例子

    5.说一个你对M优化的实际案例,包括实际步骤和方法

    6. Docker有使用过和了解吗? Docker和M的区别是什么?

    7. Docker的基本架构和使用场景?

    8.负载均衡有接触过哪些开源框架,优劣势是什么?

    9.数据库分库分表需要怎样来实现

    10.数据库端的常用优化策略?

    11.如果让你来设计秒杀系统,你的设计思路是什么,为什么要这样设计?

    面试总结:

    java的基础知识点,主要围绕在集合类和多线程等:ArrayList、LinkedList、HashSet、HashpMap的数据结果,以及如何扩容、以及ConcurrentHashMap相关的多线程安全等。

    JVM的内存分配、几个常见的垃圾回收算法以及原理、还有对应的JVM优化参数需要牢记。

    网络:TCP的三次握手等网络都必问,重点掌握网络协议。

    Redis:作为分布式缓存的主力,基本也是BAT每次必考,重点是Redis的数据结构、内存、算法、持久化,以及与别的缓存memcached的优劣势。

    多线程:状态流转、多线程的实现,以及与高并发的区别等。

    Spring框架问得是最多的,BAT非常喜欢问,重点掌握。

    最后就是分布式架构设计

    常用的分布式架构设计方案:单点登录、分布式缓存、存储、消息的选型,还有就是数据库端的优化方案(需要提前了解)。

    最好能提前了解深入一个类似秒杀这样的项目,如果面试官问到类似的项目,你能把设计思路讲出来,这对你的面试结果是很大的加分项。

    “我自己是一名老程序员,辞职后在线上做讲师,今年我整理了一份适合2019年学习的Java编程资料干货,从最基础的面向对象到各种框架都有整理,送给每一位初学和进阶中学习Java编程的小伙伴。"

    加QQ群:730379855(招募中)

    相关文章

      网友评论

          本文标题:BAT研发面试36题总结:Spring+Redis+Docker

          本文链接:https://www.haomeiwen.com/subject/fxfuuqtx.html