美文网首页互联网科技
2020年字节Java面试必问:JVM与性能优化+Redis+设

2020年字节Java面试必问:JVM与性能优化+Redis+设

作者: 风平浪静如码 | 来源:发表于2020-07-10 21:08 被阅读0次

    面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。

    今天给大家分享下我整理的Java架构面试专题及答案,其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖全部方式,不过也希望能对即将找工作的朋友起到一些帮助!

    Java面试的重点:

    数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring框架:分布式相关:Redis缓存、一致Hash算法、分布式存储、负载均衡等,微服务以及Docker容器等。在这由于文字很多,我总结了java面试所涉及到的常问范围及常问面试题免费分享给大家,文末有领取!

    部分面试常问的面试专题

    一、JVM与性能优化

    • 描述一下 JVM 加载 Class 文件的原理机制?

    • 什么是类加载器?

    • 类加载器有哪些?

    • 什么是tomcat类加载机制?

    • 类加载器双亲委派模型机制?

    • Java 内存分配?

    • Java 堆的结构是什么样子的?

    • 简述各个版本内存区域的变化?

    • 说说各个区域的作用?

    • Java 中会存在内存泄漏吗,简述一下?

    • Java 类加载过程?

    • 什么是GC? 为什么要有 GC?

    • 简述一下Java 垃圾回收机制?

    • 如何判断一个对象是否存活?

    • 垃圾回收的优点和原理,并考虑 2 种回收机制?基本原理是什么?

    • 深拷贝和浅拷贝?

    • 什么是分布式垃圾回收(DGC)?它是如何工作的?

    • 在 Java 中,对象什么时候可以被垃圾回收?

    • 简述Minor GC 和 Major GC?

    • Java 中垃圾收集的方法有哪些?

    • 讲讲你理解的性能评价及测试指标?

    • 常用的性能优化方式有哪些?

    • 说说分布式缓存和一致性哈希?

    • 什么是GC调优?

    二、Redis

    • redis数据结构有哪些?

    • Redis缓存穿透,缓存雪崩?

    • 如何使用Redis来实现分布式锁?

    • Redis的并发竞争问题如何解决?

    • Redis持久化的几种方式,优缺点是什么,怎么实现的?

    • Redis的缓存失效策略?

    • Redis集群,高可用,原理?

    • Redis缓存分片?

    • Redis的数据淘汰策略?

    • redis队列应用场景?

    • 分布式使用场景(储存session)?

    三、网络编程

    • TCP建立连接和断开连接的过程?

    • HTTP协议的交互流程• HTTP和HTTPS的差异,SSL的交互流程?

    • TCP的滑动窗口协议有什么用?

    • HTTP协议都有哪些方法?

    • Socket交互的基本流程?

    • 讲讲tcp协议(建连过程,慢启动,滑动窗口,七层模型)?

    • webservice协议(wsdl/soap格式,与restt办议的区别)?

    • 说说Netty线程模型,什么是零拷贝?

    • TCP三次握手、四次挥手?

    • DNS解析过程?

    • TCP如何保证数据的可靠传输的?

    四、设计模式与重构

    • 说说几个常见的设计模式(23种设计模式)?

    • 设计一个工厂的包的时候会遵循哪些原则?

    • 列举一个使用了 Visitor/ Decorator模式的开源项目/库?

    • 如何实现一个单例?

    • 代理模式(动态代理)?

    • 单例模式(懒汉模式,恶汉模式,并发初始化如何解决, volatile与lock的使用)?

    • JDK源码里面都有些什么让你印象深刻的设计模式使用,举例看看?

    五、分布式

    • 什么是CAP定理?

    • 说说CAP理论和BASE理论?

    • 什么是最终一致性?最终一致性实现方式?

    • 什么是一致性Hash?

    • 讲讲分布式事务?

    • 如何实现分布式锁?

    • 如何实现分布式 Session?

    • 如何保证消息的一致性?

    • 负载均衡的理解?

    • 正向代理和反向代理?

    • CDN实现原理?

    • 怎么提升系统的QPS和吞吐?

    • Dubbo的底层实现原理和机制?

    • 描述一个服务从发布到被消费的详细过程?

    • 分布式系统怎么做服务治理?

    • 消息中间件如何解决消息丢失问题?

    • Dubbo的服务请求失败怎么处理?

    • 对分布式事务的理解?

    • 如何实现负载均衡,有哪些算法可以实现?

    • Zookeeper的用途,选举的原理是什么?

    • 讲讲数据的垂直拆分水平拆分?

    • zookeeper原理和适用场景?

    • zookeeper watch机制?

    • redis/zk节点宕机如何处理?

    • 分布式集群下如何做到唯一序列号?

    • 用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗?

    • MQ系统的数据如何保证不丢失?

    • 列举出能想到的数据库分库分表策略?

    • 数据结构与算法:最常见的各种排序,最好能手写

    • Java高级:JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、各种集合类的比较优劣势(底层数据结构也要掌握,特别是扩容等)等。

    • 性能优化、设计模式、UML的掌握

    • Spring框架:重点掌握(BAT每次必问)

    • 分布式相关:Redis缓存、一致Hash算法、分布式存储、负载均衡等。

    • 微服务以及Docker容器等

    最后

    需要获取资料的可以进我的学习交流群:909666042 领取获取往期Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术!

    最全最新面试文档分享,先一步了解大型互联网面试题及答案,对面试文档总结感兴趣可以进我的学习交流群:909666042 免费获取(整理不易)大型互联网企业面试答案获取详情!

    为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀。而你是不是还在满足于现状内心在窃喜?“对于程序员来说,如果哪一天开始他停止了学习,那么他的职业生涯便开始宣告消亡。”所以行动起来,学习起来!

    相关文章

      网友评论

        本文标题:2020年字节Java面试必问:JVM与性能优化+Redis+设

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