2022Java面试题知识点总结,java基础面试题大全带答案

前言

今天我们来说说Redis为什么高性能?如何做高可用?

Redis为什么这么快?

  1. Redis是单线程的,避免了多线程的上下文切换和并发控制开销;
  2. Redis大部分操作时基于内存,读写数据不需要磁盘I/O,所以速度非常快;
  3. Redis采用了I/O多路复用机制,提高了网络I/O并发性;
  4. Redis提供高效的数据结构,如跳跃表、哈希表等;

字节跳动一面:

  • 自我介绍,主要讲讲做了什么和擅长什么
  • 看你项目做Spring比较多, 问一下Spring相关的东西, IoC是什么概念?
  • Bean的默认作用范围是什么?其他的作用范围?
  • 索引是什么概念有什么作用? MySQL里主要有哪些索弓|结构?哈希索弓和B+树索引比较?
  • 平常用线程主要是怎么写的,会用一一些线程框架吗? (没有用框架) Java线程池的概念?线程池有哪
  • 些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
  • ConcurrentHashMap讲一讲?
  • Java GC机制? GC Roots有哪些?
  • Java bin包下面的工具用过哪些?
  • 算法题:红蓝两种球,总共N个,N>2, 排列组合,连续3个颜色一样是非法的,求合法的排列数量

字节跳动二面:

  • 自我介绍
  • 项目询问:问了简历上写得最早的项目的情况,项目QPS ?数据来源和传输形式?
  • 发起一个HTTP请求的过程?刚才提到DNS , DNS用的什么传输层协议?为什么说用的是TCP协议?
  • (我说其实我不清楚是用的什么协议)他说那让你设计的话用什么协议比较合适? (思考了一下,说
  • 觉得UDP比较合适,比较轻量不占用服务器带宽,查了一下TCP和UDP都有 ,用在不同情境下)
  • TCP协议的三次握手和四次挥手过程?
  • 同步IO和异步IO的区别?
  • 操作系统的blablabla? (懵)算了,直接问你好了, select和epoll ?
  • 线程如何实现同步?
  • MySQL了解到什么程度? binLog知道吗?
  • 描述一下堆排的过程?建堆的时间复杂度?最大堆中求前K个最大值的时间复杂度?

字节跳动三面:

  • 自我介绍。
  • ConcurrentHashMap在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用
  • HashMap ,什么情况用ConcurrentHashMap ?
  • 加锁有什么机制?
  • ThreadLocal ?应用场景?
  • Web容器用的什么?你项目里涉及了SSM框架,一个请求到Tomcat容器了,怎么到SSM代码中去?
  • 网络协议了解吗?
  • 项目介绍一 下是做什么的?讲一讲学到什么东西?
  • 平常怎么学习?
  • 大学到现在遇到的最大困难是什么?怎么克服?事情太多的时候会有压力吗?
  • 未来的规划?
  • 目前有offer吗?
  • 设计一个系统:用来促成交易,有多种商品,有购买方和卖出方,促成买家价格大于等于卖出价格的交易。

更多BATJ高级Java必考题与答案

今日头条Java三面:GC+堆排+Tomcat+算法题

最后

ActiveMQ消息中间件面试专题

  • 什么是ActiveMQ?
  • ActiveMQ服务器宕机怎么办?
  • 丢消息怎么办?
  • 持久化消息非常慢怎么办?
  • 消息的不均匀消费怎么办?
  • 死信队列怎么办?
  • ActiveMQ中的消息重发时间间隔和重发次数吗?

ActiveMQ消息中间件面试专题解析拓展:

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


redis面试专题及答案

  • 支持一致性哈希的客户端有哪些?
  • Redis与其他key-value存储有什么不同?
  • Redis的内存占用情况怎么样?
  • 都有哪些办法可以降低Redis的内存使用情况呢?
  • 查看Redis使用情况及状态信息用什么命令?
  • Redis的内存用完了会发生什么?
  • Redis是单线程的,如何提高多核CPU的利用率?

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


Spring面试专题及答案

  • 谈谈你对 Spring 的理解
  • Spring 有哪些优点?
  • Spring 中的设计模式
  • 怎样开启注解装配以及常用注解
  • 简单介绍下 Spring bean 的生命周期

Spring面试答案解析拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


高并发多线程面试专题

  • 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
  • Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
  • Java 中 wait 和 sleep 方法有什么区别?
  • 如何在 Java 中实现一个阻塞队列?
  • 如何在 Java 中编写代码解决生产者消费者问题?
  • 写一段死锁代码。你在 Java 中如何解决死锁?

高并发多线程面试解析与拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


jvm面试专题与解析

  • JVM 由哪些部分组成?
  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM

JVM 由哪些部分组成?

  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

[外链图片转存中…(img-E8knMX4w-1651670695488)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值