2023Java 岗面试,进互联网大厂必备 Java 面试八股文真题解析

news2024/11/15 11:14:18

前言

一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。

很多时候,面试官问的问题会和自己准备的“题库”中的问题不太一样,即使做了复盘,下次面试还是不知道该从何处下手。

为此鄙人软磨硬泡才把阿里 P8 专门归纳整理的《Java 进阶知识典藏版》搞来,内容涵盖:大厂面经、计算机基础、Java、JVM、spring、算法、微服务、分布式、技术脑图等等

【Java 进阶知识典藏版原文档见文末】

【美团】面试真题:

  • Spring AOP 底层原理

  • HashMap 的底层数据结构是怎样的 ?

  • HashMap 的扩容机制是怎样的?

  • ConcurrentHashMap 的存储结构是怎样的?

  • 线程池大小如何设置?

  • IO 密集=Ncpu*2 是怎么计算出来?

  • G1 收集器有哪些特点?

  • 你有哪些手段来排查 OOM 的问题?

  • 请你谈谈 MySQL 事务隔离级别,MySQL 的默认隔离级别是什么?

  • 可重复读解决了哪些问题?

  • 对 SQL 慢查询会考虑哪些优化 ?

  • 谈一谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法?

  • LRU 是什么?如何实现?

  • 什么是堆内存?参数如何设置?

  • 栈和队列,举个使用场景例子?

  • MySQL 为什么 InnoDB 是默认引擎?

  • MySQL 索引底层结构为什么使用 B+树?

  • B+ 树的叶子节点链表是单向还是双向?

  • MVCC 是什么?它的底层原理是什么?

  • undo log 具体怎么回滚事务 ?

  • 如何查询慢 SQL 产生的原因

  • 索引失效的情况有哪些?

  • 一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最 多能存放多少元素?

  • Redis 数据结构 压缩列表和跳跃表的区别

  • 为什么数据量小的时候用压缩列表 ?

  • Redis 主从同步是怎么实现的?

  • Redis 持久化 RDB 和 AOF 优缺点

  • 谈谈自己对于 Spring AOP 的了解?

  • Spring Bean 容器的生命周期是什么样的?

  • RabbitMQ 如何保证消息不丢失 ?

【阿里】面试真题

  • TCP 和 UDP 区别?

  • TCP/IP 协议涉及哪几层架构?

  • 描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?

  • 计算机插上电源操作系统做了什么?

  • Linux 操作系统设备文件有哪些?

  • 多线程同步有哪些方法?

  • 一个对象的两个方法加 synchronized,一个线程进去 sleep,另一个线程 可以进入到另一个方法吗?

  • 什么是可重入锁(ReentrantLock)?

  • 创建线程的三个方法是什么?

  • Java 怎么获取多线程的返回值?

  • 线程池有哪几种创建方式?

  • 线程池参数有哪些?

  • 线程池拒绝策略有哪些?

  • 你认为对线程池的核心参数实现自定义可配置,三个核心参数是?

  • ThreadPoolExecutor 线程池,corePoolSize=5, maximumPoolSize=10,queueCapacity=10,有 20 个耗时任务 交给这个 线程池执行,线程池会如何执行这 20 个任务?

  • 给用户发消息任务超出队列,你用哪个拒绝策略?有其他方法吗 ?

  • Java8 新特性有哪些了解?

  • 什么时候用多线程、为什么要设计多线程?

  • 多线程越多效率越高吗?

  • 多线程会产生哪些并发问题 ?

  • Mybatis 如何将对象转换成 SQL?

  • 虚拟内存是什么,虚拟内存的原理是什么?

  • 栈会溢出吗?什么时候溢出?方法区会溢出吗?

  • JVM 如何加载类的?

  • 自己写过 String 类能加载吗,之前的 String 是什么时候加载进去的?

  • 描述 ThreadLocal(线程本地变量)的底层实现原理及常用场景?

  • 什么是微服务架构?

  • 微服务有哪些特点?

  • Lambda 表达式是啥?优缺点?

  • 讲一下 Lambda 的表达式作用域(Lambda Scopes)。

  • MySQL 事务的特性有什么,说一下分别是什么意思?

【京东】面试真题

  •     哪些情况下的对象会被垃圾回收机制处理掉?

  • 讲一下常见编码方式?

  • utf-8 编码中的中文占几个字节;int 型几个字节?

  • 静态代理和动态代理的区别,什么场景使用?

  • 简述下 Java 的异常体系。

  • 谈谈你对解析与分派的认识。

  • 修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象实例 的时候,会用哪个 equals 方法?

  • Java 中实现多态的机制是什么?

  • 如何将一个 Java 对象序列化到文件里?

  • 说说你对 Java 反射的理解。

  • 说说你对 Java 注解的理解。

  • 说一下泛型原理,并举例说明。

  • 谈谈你对 Java 中 String 的了解。

  • String 为什么要设计成不可变的?

  • Redis 常见的几种数据结构说一下?各自的使用场景?

  • 谈一谈缓存穿透、缓存击穿和缓存雪崩,以及各自的解决方案?

  • 讲下 Kafka、RabbitMQ、RocketMQ 之间的区别是什么?

  • Kafka 的架构说一下?

  • Kafka 怎么保证消息是有序的?

  • Kafka 怎么保证消息不丢失?

  • Kafka 怎么解决重复消费?

  • 介绍下 MySQL 聚簇索引与非聚簇索引的区别(InnoDB 与 Myisam 引 擎)?

  • 然后给一个联合索引(a,b)和一个语句,select * from table where b = 'xxx', 判断是否能命中索引?为什么?

  • Java 多线程有哪几种实现方式?

  • 用过 ConcurrentHashMap,讲一下他和 HashTable 的不同之处?

  • Java 怎么实现线程安全?

  • 描述 ThreadLocal(线程本地变量)的底层实现原理及常用场景。

  • 介绍下 Spring Bean 都有哪些作用域 ?

  • 注解 @Autowired 和 @Resource 有什么区别?

  • RPC 的实现基础?

  • CMS,G1 垃圾回收器中的三色标记了解吗?

【腾讯】面试真题

  • Kafka 是什么?主要应用场景有哪些?

  • kafka 为什么有 topic 还要用 patition?

  • 客户端和服务器之间最多能建立多少个连接 ?

  • HashMap 结构,线程不安全举个例子?

  • MySQL 索引分类?

  • 了解线程 & 进程的区别吗?

  • Java 进程间的几种通信方式?

  • 多台服务器同时对一个数据定时任务,怎么处理 ?

  • 常见分布式锁的几种实现方式?

  • Redis 分布式锁实现原理?

  • Redis 的数据类型及它们的使用场景?

  • 信号量与信号的区别?

  • select 和 epoll 的底层结构是什么原理

  • 场景题:1 亿个数据取出最大前 100 个有什么方法?

  • kafka 如何保证消息可靠?

  • 消息队列的使用场景?

  • 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

  • ArrayList 和 LinkedList 的区别在哪里?

  • 谈谈你对 SQL 注入式攻击的理解?

  • 数据库事务的特性?

  • Redis 如何做内存优化?

  • 缓存穿透,缓存击穿,缓存雪崩都是咋回事?解决办法?

  • 数组和链表的区别?当数组内存过大时会出现什么问题?链表增删过多会 出现的什么问题?

  • 常见排序算法和分别的复杂度?

  • jdk 1.8 的 JVM 内存划分模型 ,堆和栈的区别

  • 简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据 库的性能有什么影响(从读写两方面)?

  • I/O 模型有哪几种?

  • 当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤?

  • 虚拟 DOM 的优劣如何?

  • 幻读是什么,用什么隔离级别可以防止幻读?

【百度】面试真题

  • SpingBoot 也有定时任务?是什么注解?

  • 请描述线程的生命周期,它们之间如何切换?

  • 什么情况线程会进入 WAITING 状态?

  • 简述多进程开发中 join 和 deamon 的区别?

  • 异步和同步、阻塞和非阻塞之间的区别?

  • 为什么要分内核态和用户态?

  • 说下类加载器与类加载?加载的类信息放在哪个区域?

  • UDP 协议和 TCP 协议的区别?

  • limit 1000000 加载很慢的话,你是怎么解决的呢?

  • MySQL 的索引分类是什么?

  • 什么是散列表? select * 和 select 1?

  • MySQL 的主从复制了解吗?

  • Spring 框架事务注解用什么注解?使用该注解的失效场景?

  • final、finally、finallize?finally 是在 return 之前执行还是之后?finally 块 里的代码一定会执行吗?

  • I/O 多路复用实现方式有哪些?

  • select、poll、epoll 区别有哪些?

  • 哈希算法解决哈希冲突方式有哪些?

  • 如何保证 Redis 中的数据不丢失?

  • 如何保证 Redis 中的数据都是热点数据?

  • Redis 持久化机制是如何做的?

  • Redis 为什么在使用 RDB 进行快照时会通过子进程的方式进行实现? 

  • 介绍下 MySQL 的主从复制原理?产生主从延迟的原因?

  • 父进程如果宕掉,子进程会怎样?

  • 孤儿进程和僵尸进程有什么区别?

  • MySQL 中有哪几种锁?

  • 互斥锁(mutex)和自旋锁(spinlock)分别在什么场景使用?

  • 描述 Synchronized、ReentrantLock 的区别 ?

  • HashMap 扩容操作是怎么实现的?

  • ConcurrentHashMap 1.7 与 1.8 区别?

  • 如何使用 Java 的反射?

【华为】面试真题

  • Java 常用集合及特点?

  • 开启一个线程的方法?

  • Java 面向对象包括哪些特性,怎么理解的?

  • Java 如何保证线程安全?

  • 介绍 Spring MVC 的工作流程 ?

  • Spring 框架中用到了哪些设计模式?

  • Redis 的特点是什么?

  • 为什么使用 Redis,有什么好处?

  • Redis 雪崩和击穿了解吗?

  • 什么是面向对象,谈谈你的理解?

  • 访问数据库除了 JDBC 还有什么?

  • 你知道有哪些设计原则?

  • 在生产环境 Linux 服务器上,发现某台运行 Java 服务的服务器的 CPU100%,不借助任何可视化工具,怎么进行问题的定位?

  • JDK 里面带的工具你知道哪些?

  • 基本数据类型 bit 长度?

  • char 能不能存中文?

  • 谈谈你对泛型的理解?

  • Java 程序是怎样运行的?

  • GC root 有哪些?

  • 栈帧的大小什么时候确定?

  • 静态 filed 声明和构造器哪个先执行?

  • 线程创建方式是什么?

  • 传统 I/O 跟 NIO 的区别?

  • 消息队列的在各种场景下如何选型?

  • Java 的安全性体现在哪里?

  • static 方法怎么访问非 static 变量?

  • 讲下你理解的 Java 多继承?

  • Java 基本类型有哪些?

  • 线程池如果满了会怎么样?

  • 什么是双亲委派机制,它有什么作用?

各知识点面试题整理

这份 Java 进阶知识典藏版内容非常的全面,真的可以好好补一补,希望大家都能拿到理想的薪资和 offer!【Java 进阶知识典藏版原文档👇】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合并两个有序链表——力扣21

题目描述 法一 递归 class Solution { public:ListNode* mergeTwoLists(ListNode *l1, ListNode*l2){if(l1 nullptr){return l2;} else if (l2nullptr){return l1;} else if (l1->val<l2->val){l1->next mergeTwoLists(l1->next, l2);return l1;} else {l2-&g…

常用的快捷键 -VTK快捷键

按键W --------------------- 网格显示模型 按键S --------------------- 曲面显示模型 按键P --------------------- 显示模型包围框 按键F --------------------- 放大到选取点 按键R --------------------- 重置相机视图 按键A ---------------------- 切换演员模式 按…

SSM框架 基础

1.数据库 2.工程 3.pom 4.web.xml 5.spring配置文件头部 6.实体类 7.StudentMapper接口 8. StudentMapper.xml 9.StudentService 10. StudentServiceImpl 11.StudentController 实战 查询所有 StudentMapper StudentService StudentServiceImpl StudentMapper.xml Stude…

使用jmeter进行接口测试

jmeter介绍 JMeter是Apache基金会Jakarta上的一个纯java开源项目&#xff0c;起初用于基于Web的压力测试&#xff08;pressure test&#xff09;&#xff0c;后来其应用范围逐渐扩展到对文件传输FTP&#xff0c;大型数据库&#xff08;JDBC方式&#xff09;&#xff0c;脚本程…

列表的sort方法和sorted的区别

问题&#xff1a;简述一下列表list的sort方法和sorted的区别 sort是应用在list列表上的方法&#xff0c;sorted可以对所有可迭代的对象进行排序操作 list.sort()不会返回对象&#xff0c;会改变原有的list&#xff0c;即直接在原来的list基础上修改(原列表就地排序)&#xff0…

(链表) 剑指 Offer 35. 复杂链表的复制 ——【Leetcode每日一题】

❓ 剑指 Offer 35. 复杂链表的复制 难度&#xff1a;中等 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#x…

从容应对,探索CAD辅助命令的优秀实践

在CAD设计中&#xff0c;辅助命令是提升效率和精确度的重要工具。熟练掌握并正确运用CAD中的各种辅助命令对于设计师们来说至关重要。本文将为你介绍一些常用的CAD辅助命令&#xff0c;并详细说明它们的功能和使用方法&#xff0c;帮助你更好地利用这些命令完成高质量的设计工作…

Elasticsearch:使用 ELSER 释放语义搜索的力量:Elastic Learned Sparse EncoderR

问题陈述 在信息过载的时代&#xff0c;根据上下文含义和用户意图而不是精确的关键字匹配来查找相关搜索结果已成为一项重大挑战。 传统的搜索引擎通常无法理解用户查询的语义上下文&#xff0c;从而导致相关性较低的结果。 解决方案&#xff1a;ELSER Elastic 通过其检索模型…

虚拟机(VMware)安装Linux(Ubuntu)安装教程

清华大学开源网站镜像站网址&#xff1a;清华大学开源软件镜像站 | Tsinghua Open Source Mirror 进入之后在搜索框中搜索“ubuntu” 直接点击箭头所指的蓝色字体“ubuntu-20.04.1-desktop-amd64.iso”即可下载

Jmeter介绍以及脚本制作与调试

Jmeter介绍 Jmeter 是 Apache 基金会 Jakarta 上的一个纯 Java 开源项目&#xff0c;起初用于基于 Web 的压力测试&#xff08;pressure test&#xff09;&#xff0c;后来其应用范围逐渐扩展到对文件传输 FTP, 大型数据库&#xff08;JDBC 方式&#xff09;&#xff0c;脚本程…

7.27 作业

1.闹钟 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);tid1 startTimer(1);//显示时间计时器ui->pushButton_2->setEnabled(false);//设置停止为不可用…

陕西师范大学大学:融合传统与创新的学府之旅

前言 > &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 > &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 > &#x1f4d…

MUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管

编辑&#xff1a;ll MUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管 型号&#xff1a;MUR2080CT/MUR2080CTR 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220 恢复时间&#xff1a;50ns 正向电流&#xff1a;20A 反向耐压&#xff1a;800V 芯片大小&#xff1a;102MIL*2 …

BGP劫持原理及如何防御

互联网跟人类社会一样&#xff0c;都通过特定的规则和法律来确保社会的正常运行。BGP协议就是互联网中的“规则”之一。BGP用于在不同的自治系统(AS)之间交换路由信息&#xff0c;当两个AS需要交换路由信息时&#xff0c;每个AS都必须指定一个运行BGP的节点&#xff0c;来代表A…

K8s使用Ceph作为后端存储

Ceph概述 部署Ceph集群 Ceph存储使用 Pod使用Ceph持久化数据 Ceph监控 Rook部署Ceph Ceph概述 Ceph介绍 Ceph架构 Ceph核心概念 Ceph介绍 Ceph是一个开源的分布式存储系统&#xff0c;具有高扩展性、高性能、高可靠性等特点&#xff0c;提 供良好的性能、可靠性和可扩展性。…

重新C++系列之运算符重载

一、什么是运算符重载 简单来讲就是对运算符赋予新的意义&#xff0c;但是又不能改变原有的含义&#xff0c;它本身也就是一个函数。运算符重载的本质是以函数的方式来体现。 二、运算符重载有几种 1、按照作用域来划分&#xff0c;有全局操作符重载函数和成员函数操作符重载函…

面向对象——步入JavaScript高级阶段的敲门砖

目录 前言一、认识对象1.什么是对象2.对象的方法3.对象的遍历4.对象的深浅克隆 二、认识函数上下文1.函数的上下文规则 ★2.call和apply ★ 三、构造函数1.用new操作符调用函数2.类与实例3.构造函数和类" 四、原型和原型链1.prototype和原型链查找 ★2.在prototype上添加方…

access偏移注入

偏移注入是因为知道猜到access数据库表名&#xff0c;猜不到列名 因为之前http://192.168.246.11:83/news_view.asp?id15网站有设置waf过滤&#xff0c;需要先把waf防御先删掉后使用 <!--#include file"waf.asp"--> 之前已经知道注入点&#xff0c;详见acces…

从简单的例子 来看 倒排索引

文章首发地址 倒排索引-是什么&#xff1f; 倒排索引&#xff08;Inverted Index&#xff09;是一种常用的文本检索技术&#xff0c;用于快速定位包含某个词汇的文档集合。它的原理是将文档中的每个单词记录在一个索引表中&#xff0c;并且将每个单词所对应的文档编号和位置都…

多租户的低代码平台,Saas开发平台:MateCloud

简介 MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 2.7.0、 Spring Cloud 2021、Spring Cloud Alibaba 2021、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等&#xff0c;支持多租户的低代码平台&#xff0c;Saas平台开发套件…