学习
实践
活动
专区
工具
TVP
写文章
专栏首页令仔很忙【JVM调优】----内存溢出和内存泄漏

【JVM调优】----内存溢出和内存泄漏

项目的开发,涉及到了服务器的运维,先来介绍下JVM相关的知识,也方便后期的使用。今天主要是说一说内存溢出和内存泄漏两件事。

内存溢出


从字面上来说,溢出,什么是溢出?就比如说你把一壶的水倒进一个小杯子里面,小杯子容量小,多出来的水就会溢出。就是你这个小杯子的容量撑不下你的一壶的水。用专业点的语言来说内存溢出,就是你申请内存容量的时候,系统无法给到你足够的内存容量大小,你申请了一个Integer类型的大小空间,但是你却往里面放long类型才能存的下的数据,这个时候就会内存溢出(Out Of Memory)。

内存泄漏


泄漏,什么是泄漏?我举个简单的例子,不知道是不是这个意思,就比如说有人跟你关系不错,找你借了点钱,但是后来他搬家了,新地址你不知道,你想找他要钱回来,但是就是找不到他在什么地方。专业点的话就是说你向系统申请到了你想要的内存空间(new),但是使用完了之后却不归还(delete),结果你申请到的内存空间你自己也访问不到(也许你把地址搞丢了),系统也无法分配该空间给其他的程序。这就是一次泄漏。 内存泄漏没有什么明显的特征。本身不会有多么严重的伤害,也基本感觉不到内存泄漏。但是可怕的是内存泄漏的堆积,时间长了,你的内存空间会一点点的变小,Memory leak最终会导致Out Of Memory,因为你的可用的内存空间会越来越小,可分配给其他程序的容量也越来越小,很容易就会造成OOM.

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/zlts000复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • JVM内存泄漏和内存溢出的原因

    回收废弃常量与回收 Java 堆中的对象非常类似。以常量池中字面量的回收为例,假如一个字符串”abc”已经进入了常量池中,但是当前系统没有任何一个 Strin...

    Java技术债务
  • JVM-内存泄漏和内存溢出的区别?

    内存泄漏(memory leak):是指程序在申请内存后,无法释放已申请的内存空间,新申请的内存在增加,而没有内存释放,迟早被占光,导致后面程序无法申请...

    逍遥壮士
  • JVM性能调优总结:JVM内存模型,内存泄漏及解决方法,调优方法~

    其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:Pe...

    秃顶的Java程序员
  • 内存溢出和内存泄漏

    通俗的讲就是设备内存不够了。就好比我们的手机,运行内存是4G的,当我们运行了太多的程序时,在运行其他的软件时就会很卡或者提示xx运行停止。

    卡二条
  • 内存泄漏和内存溢出

    b)创建匿名内部类的静态对象 c)未关闭资源 d)长时间存在的集合容器中创建生命周期短的对象

    名字是乱打的
  • 内存溢出和内存泄漏

    内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。 内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前...

    在水一方
  • 【JVM进阶之路】四:直面内存溢出和内存泄漏

    在JVM的几个内存区域中,除了程序计数器外,其他几个运行时区域都有发生内存溢出(OOM)异常的可能。

    三分恶
  • 内存溢出和内存泄漏的区别

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了...

    用户6182664
  • JVM内存调优工具

    1.统计gc次数 jstat -gc pid S0 — Heap上的 Survivor space 0 区已使用空间的百分比 S1 — Heap上...

    用户1499526
  • JavaScript之内存溢出和内存泄漏

    程序运行出现的错误,就像水杯,满了之后再加水就溢出了。同理,内存溢出就是程序运行所需的内存大于可用内存,就出现内存溢出错误。

    wade
  • 内存溢出和内存泄漏的区别

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了...

    全栈程序员站长
  • jvm内存溢出分析内存溢出是什么?内存溢出和内存泄漏有什么区别?用到的jvm参数分析解决方法分析

    概述 jvm中除了程序计数器,其他的区域都有可能会发生内存溢出 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemor...

    用户1174983
  • jvm内存泄漏

    Runtime.getRuntime().freeMemory()表示当前还有多少空闲内存

    全栈程序员站长
  • php内存泄漏,内存溢出,垃圾回收

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了...

    程序员小饭
  • 内存溢出与内存泄漏的区别

    内存溢出(out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer, 但给它...

    用户9914333
  • 什么,系统内存溢出了?记一次JVM调优实战

    这里我们不讲JVM的内存划分,垃圾判定算法,垃圾回收算法,垃圾收集器等知识。主要讲的是实际调优的操作,对JVM调优感兴趣的可以看下去。至于垃圾回收算法,可以看看...

    Lvshen
  • JVM调优——Java动态编译过程中的内存溢出问题

    由于测试环境项目每2小时内存就溢出一次, 分析问题,发现Java动态加载Class并运行那块存在内存溢出问题, 遂本地调测。

    执笔记忆的空白
  • jvm性能调优 - 02JVM中内存区域

    大家需要搞明白的是,在什么情况下会触发类的加载?加载之后的验证、准备和解析分别是干什么的?

    小小工匠
  • jvm性能调优实战 -52修复堆内存区域内存溢出问题OutOfMemoryError: Java heap space

    上一篇文章已经给大家分析了栈内存溢出是如何来解决的,这篇文章我们给大家分析一下最常见的堆内存溢出是如何来解决的。

    小小工匠

扫码关注腾讯云开发者

领取腾讯云代金券