比较经典的一些jvm调优策略面试题

本文总结了JVM性能调优中的内存溢出和虚拟机栈、本地方法栈溢出错误,通过面试题的形式探讨如何识别、复现及处理这些问题。讲解了堆溢出、内存泄露的区别,以及如何设置JVM参数来复现堆溢出错误。同时,讨论了栈溢出错误的常见原因和避免方法,提供了排查错误的思路。
摘要由CSDN通过智能技术生成

JVM性能调优是一个很大的话题,很多中小企业的业务规模受限,没有迫切的性能调优需求,但是如果不知道JVM相关的理论知识,写出来的代码或者配置的JVM参数不合理时,就会出现很严重的性能问题,到时候开发就会像热锅上的蚂蚁,等待各方的炙烤。今天小编总结了一些相关的面试题,一是希望能够应对性能调优岗位相关的面试;二是希望总结一下具体的实战步骤,并努力吸收书中的实践案例,让自己的经验更丰富一些。

JVM性能调优

内存溢出错误

学习目的:

通过异常信息及时定位到发生内存溢出的运行时数据区域

了解什么样的代码会导致内存溢出,防止写出这样的代码

出现异常后该如何处理,也就是学习事中的处理手段

内存溢出和内存泄露的区别

内存泄露:不该留存在进程中的内存数据,虽然很小,但是在经过多次长期的积累后,会导致内存溢出

内存溢出:程序申请内存时,内存不足的现象

堆溢出错误和预判堆溢出的错误

如何复现出堆溢出错误?

JVM参数部分:最大堆和最小堆设置相同并且设置的比较小,比如只有10M,这样就不会自动扩展堆

代码部分:在一个方法中不断地往集合中加入元素

代码实践

package org.example;

import java.util.ArrayList;
import java.util.List;

/**
 * -Xmx10M -Xms10M -XX:+HeapDumpOnOutOfMemoryError
 */
public class App {
    static class OOMObject {
        int a = 1;
        long b = 2;
        f
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值