java面试题基础篇,kafka与rabbitmq面试题

1. Java 堆空间

**发生频率:**5颗星
造成原因
  1. 无法在 Java 堆中分配对象

  2. 吞吐量增加

  3. 应用程序无意中保存了对象引用,对象无法被 GC 回收

  4. 应用程序过度使用 finalizer。finalizer 对象不能被 GC 立刻回收。finalizer 由结束队列服务的守护线程调用,有时 finalizer 线程的处理能力无法跟上结束队列的增长

解决方案

单位对应:GB -> G, g;MB -> M, m;KB -> K, k

  1. 使用 -Xmx 增加堆大小

  2. 修复应用程序中的内存泄漏

2. GC 开销超过限制

**发生频率:**5颗星
造成原因
  1. Java 进程98%的时间在进行垃圾回收,恢复了不到2%的堆空间,最后连续5个(编译时常量)垃圾回收一直如此。
解决方案
  1. 使用 -Xmx 增加堆大小

  2. 使用 -XX:-UseGCOverheadLimit 取消 GC 开销限制

  3. 修复应用程序中的内存泄漏

3. 请求的数组大小超过虚拟机限制

**发生频率:**2颗星

造成原因
  1. 应用程序试图分配一个超过堆大小的数组
解决方案
  1. 使用 -Xmx 增加堆大小

  2. 修复应用程序中分配巨大数组的 bug

4. Perm gen 空间

**发生频率:**3颗星
造成原因

Perm gen 空间包含:

  • 类的名字、字段、方法

  • 与类相关的对象数组和类型数组

  • JIT 编译器优化

当 Perm gen 空间用尽时,将抛出异常。

解决方案
  1. 使用 -XX: MaxPermSize 增加 Permgen 大小

  2. 不重启应用部署应用程序可能会导致此问题。重启 JVM 解决

5. Metaspace

**发生频率:**3颗星
造成原因
  1. 从 Java 8 开始 Perm gen 改成了 Metaspace,在本机内存中分配 class 元数据(称为 metaspace)。如果 metaspace 耗尽,则抛出异常
解决方案
  1. 通过命令行设置 -XX: MaxMetaSpaceSize 增加 metaspace 大小

  2. 取消 -XX: maxmetsspacedize

  3. 减小 Java 堆大小,为 MetaSpace 提供更多的可用空间

  4. 为服务器分配更多的内存

  5. 可能是应用程序 bug,修复 bug

6. 无法新建本机线程

**发生频率:**5颗星
造成原因
  1. 内存不足,无法创建新线程。由于线程在本机内存中创建,报告这个错误表明本机内存空间不足
解决方案
  1. 为机器分配更多的内存

  2. 减少 Java 堆空间

  3. 修复应用程序中的线程泄漏。

  4. 增加操作系统级别的限制

  • ulimit -a

  • 用户进程数增大 (-u) 1800

  1. 使用 -Xss 减小线程堆栈大小

7. 杀死进程或子进程

**发生频率:**1颗星
造成原因
  1. 内核任务:内存不足结束器,在可用内存极低的情况下会杀死进程
解决方案
  1. 将进程迁移到不同的机器上

  2. 给机器增加更多内存

与其他 OOM 错误不同,这是由操作系统而非 JVM 触发的。

8. 发生 stack_trace_with_native_method

**发生频率:**1颗星
造成原因
  1. 本机方法(native method)分配失败

  2. 打印的堆栈跟踪信息,最顶层的帧是本机方法

解决方案

使用操作系统本地工具进行诊断

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

image

Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

[外链图片转存中…(img-9K6gK1T1-1709131642802)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

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

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

相关文章

BOOT电路

本质:BOOT电路本质上是单片机的引脚 作用:BOOT电路的作用是用于确定单片机的启动模式 使用方法:在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式。 原理:单片机上电或复位后会先启动内部晶振&a…

【C++进阶】哈希 + unordered系列容器

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

华为 OD 一面算法原题

2.2 亿彩票公布调查结果 昨天,闹得沸沸扬扬的《10 万中 2.2 亿》的彩票事件,迎来了官方公告。 简单来说,调查结果就是:一切正常,合规合法。 关于福利彩票事件,之前的推文我们已经分析过。 甚至在后面出现《…

鸿运(通天星CMSV6车载)主动安全监控云平台敏感信息泄露漏洞

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 鸿运主动安全监控云平台实现对计算资源、存储资源、网络资源、云应用服务进行7*24小时全时区、多地域、全方位、立体式、智能化的IT运维监控,保障IT系统安全、稳定、可靠运行…

unity初学问题:如何修改图片的坐标

如图,我们想要修改图片的轴心点坐标(Pivot) 选择图片组 打开编辑器在里面修改即可(最下面的Custom Pivot)

golang使用gorm操作mysql1

1.mysql连接配置 package daoimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/logger" )var DB *gorm.DB// 连接数据库,启动服务的时候,init方法就会执行 func init() {username : "roo…

浅谈 Linux 网络编程 - 网络字节序

文章目录 前言核心知识关于 小端法关于 大端法网络字节序的转换 函数 前言 在进行 socket 网络编程时,会用到字节流的转换函数、例如 inet_pton、htons 等,那么为什么要用到这些函数呢,本篇主要就是对这部分进行介绍。 核心知识 重点需要记…

数仓项目6.0(二)数仓

中间的几步意义就在于,缓存中间处理数据样式,避免重复计算浪费算力 分层 ODS(Operate Data Store) Spark计算过程中,存在shuffle的操作,而shuffle会将计算过程一分为二,前一阶段不执行完&…

链表之“带头双向循环链表”

目录 ​编辑 1.链表的分类 2.带头双向循环链表的实现 1.创建结构体 2.创建返回链表的头节点 3.双向链表销毁 4.双向链表打印 5.双向链表尾插 6.双向链表尾删 7.双向链表头插 8.双向链表头删 9.双向链表查找 10.双向链表在pos的前面进行插入 11.双向链表删除pos位…

ECLIP

denote the representation of the positive prompt produced by the momentum model as h ξ i h_{\xi}^{i} hξi​ 辅助信息 作者未提供代码

蓝桥杯前端Web赛道-课程列表

蓝桥杯前端Web赛道-课程列表 题目链接:0课程列表 - 蓝桥云课 (lanqiao.cn) 题目要求如下: 分析题目我们发现其实就是需要我们手写一个分页的功能,根据题目的要求,分析如下 需要通过axios获取数据每页显示5条数据,默…

11.vue学习笔记(组件生命周期+生命周期应用+动态组件+组件保持存活)

文章目录 1.组件生命周期2.生命周期应用2.1通过ref获取元素DOM结构2.2.模拟网络请求渲染数据 3.动态组件3.1.A,B两个组件 4.组件保持存活(销毁期) 1.组件生命周期 每个Vue组件实例在创建时都需要经历一系列的初始化步骤,比如设置…

Rocky Linux安装部署Elasticsearch(ELK日志服务器)

一、Elasticsearch的简介 Elasticsearch是一个强大的开源搜索和分析引擎,可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性,支持全文搜索、聚合分析、地理空间搜索等功能,是构建实时应用和大规模数据分析平台的首选工具。 …

Linux学习之system V

目录 一,system V共享内存 快速认识接口 shmget(shared memory get) shmat(shared memory attach) shmdt(shared memory delete) shmctl (shared memory control) 编写代码 综上那么共享内存与管道通信有什么区别? system v消息队列 system v信号…

【深度学习笔记】深度卷积神经网络——NiN

网络中的网络(NiN) LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。 AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。 或者&am…

Linux------进程地址空间

目录 一、进程地址空间 二、地址空间本质 三、什么是区域划分 四、为什么要有地址空间 1.让进程以统一的视角看到内存 2.进程访问内存的安全检查 3.将进程管理与内存管理进行解耦 一、进程地址空间 在我们学习C/C的时候,一定经常听到数据存放在堆区、栈区、…

4、正则表达式、本地存储

一、正则表达式 1、定义 用事先定义好的一些特定字符,这样的字符组合,组合成一个“规则字符串” 2、正则的组成 特殊字符 字母、数字、下划线、中文、特殊字符… 元字符(常用) 1、\d 匹配至少有一个数字 var reg /\d/ /…

SpringBoot整合rabbitmq-直连交换机队列(二)

说明:本文章主要是Direct定向/直连类型交换机的使用,它的大致流程是将一个队列绑定到一个直连交换机上,并赋予一个路由键 routingkey,当一个消息携带着路由值为routingkey,这个消息通过生产者发送给交换机时&#xff0…

【冲击蓝桥篇】动态规划(下):你还在怕动态规划!?进来!答题模板+思路解析+真题实战

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《数据结构与算法:初学者入门指南》📘&am…