2023 届 Java 岗高频面试题盘点,老司机也未必全会

news2024/11/22 14:08:15

2023,可谓是招聘面试最难季。不少大厂,如腾讯、字节的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言。今天不谈其它,就说说我作为面试官面试的那些事儿。

从某电商项目负责人的算起,再到后来的首席架构师,我前前后后面试了至少 300 多位求职者。不敢说成功入职的每个同事都发展得特别好,但大部分人来说还是很不错的。

过硬的技术功底是最起码的考核要求。不少来应聘的朋友底子还是有的,但知识面太窄了。那么对于互联网大厂,尤其是电商行业来说,都会重点考核哪些呢?最近我将这些年自己常问的考核知识整理了一下,不下 100 道,其中涵盖了不少大厂必考点、高频点、加薪点,这些也是作为开发人来说日常项目中经常遇到的踩坑点。

为了方便大家,我把这些点做了一个归类,我把关于这些问题的拆解与思考,整理成一个 pdf,限于篇幅,这里就不一一列出了。需要的同学可以文末领取,希望能从中有所启发、收获。

这里直接给大家分享这些面试真题 ,具体有:

JVM

  • java 中会存在内存泄漏吗,请简单描述。

  • 64 位 JVM 中,int 的长度是多数?

  • Serial 与 Parallel GC 之间的不同之处?

  • 32 位和 64 位的 JVM,int 类型变量的长度是多数?

  • Java 中 WeakReference 与 SoftReference 的区别?

  • JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用

  • 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?

  • 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?

  • JRE、JDK、JVM 及 JIT 之间有什么不同?

  • 解释 Java 堆空间及 GC?

  • JVM 内存区域

  • 程序计数器(线程私有)

  • 虚拟机栈(线程私有)

  • 本地方法区(线程私有)

  • 你能保证 GC 执行吗?

  • 怎么获取 Java 程序使用的内存?堆使用的百分比?

  • Java 中堆和栈有什么区别?

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

mysql

  • 数据库存储引擎

  • InnoDB(B+树)

  • TokuDB( Fractal Tree-节点带数据)

  • MyIASM

  • Memory

  • 数据库引擎有哪些

  • InnoDB 与 MyISAM 的区别

  • 索引

  • 常见索引原则有

  • 数据库的三范式是什么

  • 第一范式(1st NF - 列都是不可再分)

  • 第二范式(2nd NF- 每个表只描述一件事情)

  • 第三范式(3rd NF- 不存在对非主键列的传递依赖)

  • 数据库是事务

  • SQL 优化

  • 简单说一说 drop、delete 与 truncate 的区别

  • 什么是视图

  • 什么是内联接、左外联接、右外联接?

  • 并发事务带来哪些问题?

Redis

  • 什么是 Redis?

  • Redis 与其他 key-value 存储有什么不同?

  • Redis 的数据类型?

  • 使用 Redis 有哪些好处?

  • Redis 相比 Memcached 有哪些优势?

  • Memcache 与 Redis 的区别都有哪些?

  • Redis 是单进程单线程的?

  • 一个字符串类型的值能存储最大容量是多少?

  • Redis 持久化机制

  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

  • 热点数据和冷数据是什么

  • 单线程的 redis 为什么这么快

  • redis 的数据类型,以及每种数据类型的使用场景

  • redis 的过期策略以及内存淘汰机制

  • Redis 常见性能问题和解决方案?

  • 为什么 Redis 的操作是原子性的,怎么保证原子性的?

  • Redis 事务

  • Redis 的持久化机制是什么?各自的优缺点?

MongoDB

  • mongodb 是什么?

  • mongodb 有哪些特点?

  • 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用 NoSQL 数据库?说一说 NoSQL 数据库的几个优点?

  • NoSQL 数据库有哪些类型?

  • MySQL 与 MongoDB 之间最基本的差别是什么?

  • 你怎么比较 MongoDB、CouchDB 及 CouchBase?

  • MongoDB 成为最好 NoSQL 数据库的原因是什么?

  • journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

  • 分析器在 MongoDB 中的作用是什么?

  • 名字空间(namespace)是什么?

  • 如果用户移除对象的属性,该属性是否从存储层中删除?

  • 能否使用日志特征进行安全备份?

  • 允许空值 null 吗?

  • 更新操作立刻 fsync 到磁盘?

  • 如何执行事务/加锁?

  • 为什么我的数据文件如此庞大?

  • 启用备份故障恢复需要多久?

  • 什么是 master 或 primary?

Dubbo

  • 为什么要用 Dubbo?

  • Dubbo 的整体架构设计有哪些分层?

  • 默认使用的是什么通信框架,还有别的选择吗?

  • 服务调用是阻塞的吗?

  • 一般使用什么注册中心?还有别的选择吗?

  • 默认使用什么序列化框架,你知道的还有哪些?

  • 服务提供者能实现失效踢出是什么原理?

  • 服务上线怎么不影响旧版本?

  • 如何解决服务调用链过长的问题?

  • 说说核心的配置有哪些?

  • Dubbo 推荐用什么协议?

  • 同一个服务多个注册的情况下可以直连某一个服务吗?

  • 画一画服务注册与发现的流程图?

  • Dubbo 集群容错有几种方案?

  • Dubbo 服务降级,失败重试怎么做?

  • Dubbo 使用过程中都遇到了些什么问题?

  • Dubbo Monitor 实现原理?

  • Dubbo 用到哪些设计模式?

试前最重要的当然是面试的表达技巧了,这个不提前做好准备的话技术强也无法将自身的优势完美地表现出来。

  • 面试软实力

  1. 为什么说简历很重要?

  2. 先从面试来说

  3. 再从面试说起

  4. 必知必会的几点

  5. 必须了解的两大法则

  6. 项目经历怎么写?

  7. 专业技能怎么写

  8. 排版注意事项

  9. 其他一些小 tips

  10. 你对我们公司有什么想问的吗?

  11. 很多人都倒在自我介绍上

  12. 如何与 HR 交谈,如何谈薪水

  13. HR 最喜欢问程序员的 20 个问题

  14. 面试中的礼仪与举止

软实力这一块搞定了当然就是技术栈的梳理了

  • Java 基础

  1. 面向对象和面向过程的区别

  2. 八种基本数据类型的大小,以及他们的封装类

  3. 标识符的命名规则。

  4. instanceof 关键词的作用

  5. Java 自动装箱与拆箱

  6. 重载和重写的区别

  7. equals 与==的区别

  8. Hashcode 的作用

  9. Java 创建对象有几种方式?

  10. 获取一个类 Class 对象的方式有哪些?

  11. ArrayList 和 LinkedList 的区别有哪些?

  12. 用过 ArrayList 吗?说一下它有什么特点?

  13. 有数组了为什么还要搞个 ArrayList 呢?

  14. 说说什么是 fail-fast?

  15. 说说 Hashtable 与 HashMap 的区别

  16. HashMap 的长度为什么是 2 的 N 次方呢?

  17. HashMap 与 ConcurrentHashMap 的异同

  18. 红黑树有哪几个特征?

  19. 说说你平时是怎么处理 Java 异常的

  20. 说一下深拷贝和浅拷贝?

  • JVM

  • 多线程并发

  • Spring 篇

  1. 什么是 spring?

  2. 你们项目中为什么使用 Spring 框架?

  3. Autowired 和 Resource 关键字的区别?

  4. 依赖注入的方式有几种,分别是什么?

  5. 说说你对 Spring MVC 的理解

  6. SpringMVC 常用的注解有哪些?

  7. 谈谈你对 Spring 的 AOP 理解

  8. Spring AOP 和 AspectJ AOP 有什么区别?

  9. Spring 框架中的单例 Bean 是线程安全的么?

  10. Spring 是怎么解决循环依赖的?

  11. 说说事务的隔离级别

  12. 说说事务的传播级别

  13. Spring 事务的实现方式

  14. Spring 框架的事务管理有哪些优点?

  15. 事务三要素是什么?

  16. 事务注解的本质是什么?

  • MyBatis

  • SpringBoot

  1. 为什么要用 SpringBoot

  2. Spring Boot 的核心注解是哪个?它主要是由哪几个注解组成的?

  3. 运行 Spring Boot 有哪几种方式?

  4. 如何理解 Spring Boot 中的 Starters?

  5. 如何在 Spring Boot 启动的时候运行一些特定的代码?

  6. Spring Boot 需要独立的容器运行吗?

  7. Spring Boot 中的监视器是什么?

  8. 如何使用 Spring Boot 实现异常处理?

  9. 你如何理解 Spring Boot 中的 Starters?

  10. springboot 常 用的 starter 有哪些

  11. SpringBoot 实现热部署有哪几种方式?

  12. 如何理解 Spring Boot 配置加载顺序?

  13. 如何集成 Spring Boot 和 ActiveMQ?

  • MySQL

  1. 数据库的三范式是什么

  2. MySQL 数据库弓|擎有哪些

  3. 说说 InnoDB 与 MyISAM 的区别

  4. 数据库的事务

  5. 索引是什么

  6. SQL 优化手段有哪些

  7. 简单说一说 drop. delete 与 truncate 的区别

  8. 什么是视图

  9. 什么是内联接、左外联接、右外联接?

  10. 并发事务带来哪些问题?

  11. 事务隔离级别有哪些?MySQL 的默认隔离级别是?

  12. 大表如何优化?

  13. MySQL 索引类型有哪些?

  14. 什么时候不要使用索引呢?

  15. 说说什么是 MVCC?

  16. MVCC 可以为数据库解决什么问题?

  17. 说说 MVCC 的实现原理

  18. MySQL 事务隔离级别?

  19. 请说说 MySQL 数据库的锁?

  20. 说说什么是锁升级?

  21. 说说悲观锁和乐观锁

  22. 怎样尽量避免死锁的出现?

  23. 使用 MySQL 的素引应该注意些什么?

  24. CHAR 和 VARCHAR 的区别?

  25. 主键和候选健有什么区别?

  26. 主键与素引有什么区别?

  27. MySQL 如何做到高可用方案?

  • 微服务

  • Nginx&MQ

  • Linux

  1. 绝对路径用什么符号表示?当前目录、 上层目录用什么表示?目录用什么表示?切换目录用什么命令?

  2. 怎么查看当前进程? 怎么执行退出?怎么查看当前路径?

  3. 查看文件有哪些命令

  4. 列举几个常用的 Linux 命令

  5. 你平时是怎么查看日志的?

  • ZK

  • Redis

  1. 为什么要用缓存

  2. 使用 Redis 有哪些好处?

  3. 什么是 Redis?

  4. 为什么使用 Redis 而不是用 Memcache 呢?

  5. 为什么 Redis 单线程模型效率也能那么高?

  6. 说说 Redis 的线程模型

  7. 为什么 Redis 需要把所有数据放到内存中?

  8. Redis 的同步机制了解是什么?

  9. pipeline 有什么好处,为什么要用 pipeline?

  10. Redis 持久化方式有哪些?以及有什么区别?

  11. 持久化有两种,那应该怎么选择呢?

  12. 怎么使用 Redis 实现消息队列?

  13. 说说你对 Redis 事务的理解

  14. Redis 为什么设计成单线程的?

  15. 什么是 bigkey?会存在什么影响?

  16. 熟悉哪些 Redis 集群模式?

  17. Memcache 与 Redis 的区别都有哪些?

  18. 单线程的 redis 为什么这么快

  19. redis 的数据类型,以及每种数据类型的使用场景

  20. redis 的过期策略以及内存淘汰机制

  21. Redis 为什么是单线程的

  22. Redis 常见性能问题和解决方案?

  23. 为什么 Redis 的操作是原子性的,怎么保证原子性

  • 分布式

  • 网络

  1. HTTP 响应码有哪些?分别代表什么含义?

  2. Forward 和 Redirect 的区别?

  3. Get 和 Post 请求有哪些区别?

  4. 说说 TCP 与 UDP 的区别,以及各自的优缺点

  5. 说一下 HTTP 和 HTTPS 的区别

  6. 说说 HTTP、TCP、Socket 的关系是什么?

  7. 说一下 HTTP 的长连接与短连接的区别

  8. TCP 为什么要三次握手,两次不行吗?为什么?

  9. 说一下 TCP 粘包是怎么产生的?怎么解决粘包问题

  10. 如何理解 HTTP 协议是无状态的?

  11. 什么是长连接和短连接?

  12. 长连接和短连接的优缺点?

  13. 说说长连接短连接的操作过程

  14. 说说 TCP 三次握手和四次挥手的全过程

  15. OSI 的七层模型都有哪些?

  16. OSI 这样分层有什么好处?

  17. 说说 TCP/IP 四层网络模型

  18. 说说域名解析详细过程?

  19. IP 地址分为几类,每类都代表什么,私网是哪些?

  • 设计模式

  1. 说说什么是单例模式

  2. 说说你对代理模式的理解

  3. 说说工厂模式

  4. 抽象工厂模式

  5. 装饰器模式是什么

  6. 代理模式和装饰器模式有什么区别?

  7. 模板方法模式

  8. 知道享元模式吗?

  9. 元模式和单例模式的区别?

  10. 说说策略模式在我们生活中的场景?

  11. 知道是责任链模式吗?

  12. 了解过适配器模式么?

  13. 知道观察者模式吗?

  • Maven&Tomcat&ES&Git

最后

我们从踏入这一行开始,职业生涯里肯定会遇到很多场大大小小的面试,不管是凯旋还是败北,每一次面试都会是我们的提升的一个机会!

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

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

相关文章

【笔试强训选择题】Day25.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

不愧是阿里大牛珍藏的“redis深度笔记(全彩版)”这细节讲解,神了

前言 说到 Redis 相信对于我们这些程序员来说太熟悉了,Redis 凭借着自己超高的超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持,很快就在国内的互联网市场占据了一席之地,得到了广大用户的一致好评,随着国内外使用 …

反射---getattr,hasattr,setattr,delattr加插播enumerate

什么是反射? 用字符串数据类型的变量名来访问这个变量的值 反射的方法:getattr,hasattr,setattr,delattr 类:(通过类名反射类名空间里面的内容的) 类:静态属性,类方法,静…

Vue中如何进行代码高亮与语法着色?

Vue中如何进行代码高亮与语法着色? 在Vue的开发过程中,我们经常需要展示代码片段或者进行代码高亮与语法着色。Vue提供了多种方式来实现代码高亮与语法着色,本文将为你详细介绍这些方法。 1. 使用prism.js进行代码高亮与语法着色 prism.js是…

mybatis的一级缓存和二级缓存

目录 1、简介 2、Mybatis缓存 3、一级缓存 3.1、初体验测试 3.2、一级缓存失效的四种情况 4、二级缓存 4.1、使用步骤 4.2、结论 5、缓存原理 1、简介 什么是缓存 [ Cache ]? 存在内存中的临时数据。将用户经常查询的数据放在缓存(内存&…

gomod在项目中的作用

Part1gomod在golang项目中的作用 1介绍 gomod是Go语言中一个非常重要的工具,它在Golang项目的开发过程中扮演着关键的角色。gomod是模块依赖管理工具,可以帮助开发者更好地管理和组织项目的依赖关系,提供了便捷的方式来管理和升级依赖项。 2为…

gtk实现spice剪切板

重要的函数: void spice_main_channel_clipboard_selection_grab(SpiceMainChannel *channel, guint selection, guint32 *types, int ntypes); 抓取剪切板 void spice_main_channel_clipboard_selection_release(SpiceMainChannel *channel, guint selection); 剪…

软件项目管理需要具备哪些能力?

作为一名软件项目管理者,在处理许多事情时需要不断提高个人在数据分析处理、项目业务流程管理等各个领域的能力。当然作为过来人,我也很清楚很多软件项目管理新人也较为疑惑如何提高自己的能力和专业水平,以便提高工作效率。那我也想与大家唠…

【论文阅读笔记】Local Model Poisoning Attacks to Byzantine-Robust Federated Learning

个人阅读笔记,如有错误欢迎指出! 会议: Usenix 2020 [1911.11815] Local Model Poisoning Attacks to Byzantine-Robust Federated Learning (arxiv.org) 问题: 模型攻击对拜占庭鲁棒性联邦学习的攻击效果尚未清楚 创新点&…

SpringBatch从入门到实战(六):ItemReader

一&#xff1a;ListItemReader 用于简单的开发测试。 Bean public ItemReader<String> listItemReader() {return new ListItemReader<>(Arrays.asList("a", "b", "c")); }二&#xff1a;FlatFileItemReader 1.1 完全映射 当文件…

万物云原生下的服务进化 | 京东云技术团队

导读&#xff1a; 在万物云原生下的环境下&#xff0c;Java的市场份额也因耗资源、启动慢等缺点&#xff0c;导致在云原生环境里被放大而降低&#xff0c;通过这篇文章&#xff0c;读者可以更好地了解如何在云原生环境下通过升级相关版本和使用GraalVM打出原生镜像到方式&…

Linux之特殊权限

目录 Linux之特殊权限 SUID 定义 案例 原因 查找真个系统的SUID/SGID文件 SGID 定义&#xff1a; Sticky Bit 案例 设置文件和目录的特殊权限 方法一 使用 chmod命令 方法二 使用数字形式的权限模式 设置新建文件或目录的默认权限 设置修改文件的扩展性 设置文件…

MySQL连接查询——外连接

内连接查询顺序 首先看student和exam表的内容&#xff1a; 然后执行如下内连接查询&#xff1a; explain select a.*,b.* from student a inner join exam b on a.uidb.uid;查询计划如下 由于a表记录数量少为小表做全表扫描&#xff08;rows为6&#xff09;&#xff0c;然后到…

微信小程序标签知识点总结

View 标签 <scroll-view class"scroll_list" scroll-x"true"> 标签 设置 scroll-x/y是可以设置 滚动模式到底是x方向还是Y方向 &#xff08; 需要调整样式&#xff0c;请参考如下 .scroll_list{ border: 1px solid red; width: 240px; white-sp…

算法学习day21

文章目录 530.二叉搜索树的最小绝对差递归 501.二叉搜索树中的众数递归 236.二叉树的最近公共祖先递归 总结 530.二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值…

管理类联考——逻辑——知识篇——题型说明

管理类联考基础逻辑—逻辑规划 一、联考中逻辑部分的重要性 管理类综合能力测试的数学、逻辑、写作三个部分中&#xff0c;逻辑是毫无疑问最重要的一部分&#xff0c;体现在以下三个方面&#xff1a; 1、时间分配&#xff1a;逻辑部分的阅读量相当大&#xff0c;30道题的阅读…

2023史上最全java面试题题库大全800题含答案

如果你不停地加班。却很少冒险&#xff0c;也很少学习&#xff0c;那你极大可能会陷入到内卷中。 为什么这么说呢&#xff1f;我们先来捋清楚「内卷」的概念&#xff1a; 「内卷化」简而言之就是&#xff1a;日复一日&#xff0c;越混越掉坑里。 所谓内卷化&#xff0c;指一种社…

HTTP 网络通讯过程

1.知识点&#xff1a; 在计算机网络中&#xff0c;通信协议用于规范数据传输的格式和传送方式。下面是常见的网络通信协议&#xff1a; HTTP协议&#xff1a;超文本传输协议&#xff0c;用于在Web浏览器和Web服务器之间传输HTML文件和其他资源。 HTTPS协议&#xff1a;HTTP安…

《水经注地图服务》如何快速发布经纬度DAT缓存

概述 《水经注地图服务》的快速发布功能是一个能够帮助用户实现快速发布地图服务的功能&#xff0c;并且提供常规情况下大多数用户所需的默认配置&#xff0c;让用户在发布地图时更加便捷。 这里为大家演示如何快速发布经纬度DAT缓存以及如何在水经微图中加载。 准备工作 离…

2023-6-14-第五式原型模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…