java中的GC和内存泄漏

Wesley13
• 阅读 763

java中的GC

1.GC是什么? 为什么要有GC? 

GC是垃圾回收的意思。

是指JVM清理不再使用的对象释放内存。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存.

2. 需要GC的内存区域

垃圾回收区域: 主要针对无用堆对象回收和常量池的回收和类型的卸载

java中的GC和内存泄漏

3.为什么会产生内存泄漏?

长生命周期的对象持有短生命周期对象的引用,导致本改回收的对象不能被回收.

4.Java中内存泄漏产生的原因可能有哪些?

1.静态集合类引起内存泄漏

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java系列笔记
Java垃圾回收概况  JavaGC(GarbageCollection,垃圾收集,垃圾回收)机制,是Java与C/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(J
Stella981 Stella981
3年前
JVM调优
概述  什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存分配、回收的情况来调整各区域内存比例或者gc回收的策略;更深一层就是根据dump出来的内存结构和线程栈来分析代码中不合理的地方给予改进。eclipse优化主要涉及的是前者,通过gc日志来分析。本文主要是通过分析eclipsegc日志为例来示例如何根据gc日志来分析jvm内存而进
Stella981 Stella981
3年前
Android 优化二 Java内存分配机制及内存泄漏
Java内存分配机制及内存泄漏目录介绍1.JVM内存管理1.1JVM内存管理图1.2Java采用GC进行内存管理。2.JVM内存分配的几种策略2.1静态的2.2栈式的2.3堆式的2.4堆和栈的区别2.5得出结论
Wesley13 Wesley13
3年前
Java 内存泄漏
  Java的一个重要优点就是通过垃圾收集器(GarbageCollection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C不同。  随着越来越多的服
Wesley13 Wesley13
3年前
Java 内存区域和GC机制
Java垃圾回收概况  JavaGC(GarbageCollection,垃圾收集,垃圾回收)机制,是Java与C/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM
Stella981 Stella981
3年前
Python的垃圾回收机制
垃圾回收机制「垃圾回收(GC)」大家应该多多少少都了解过,什么是垃圾回收呢?垃圾回收GC的全拼是GarbageCollection,在维基百科的定义是:在计算机科学中,垃圾回收(英语:GarbageCollection,缩写为GC)是一种自动的内存管理机制。当一个电脑上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源
Wesley13 Wesley13
3年前
Java内存泄漏解析!
前言:内存管理是Java最重要的优势之一,你只需创建对象,Java垃圾收集器会自动负责分配和释放内存。但是,情况并不那么简单,因为在Java应用程序中经常发生内存泄漏。本章会说明什么是内存泄漏,为什么发生,以及如何防止它们。什么是内存泄漏?内存泄漏的定义:应用程序不再使用的对象,垃圾收集器却无法删除它们,因为它们正在被引用。为了理
Stella981 Stella981
3年前
Android开发的内存问题
不少人认为Java(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.51code.com%2F)程序因为有垃圾回收机制,就不会有内存泄漏。其实如果我们一个程序中已经不再使用某个对象,但是依然有引用指向它,垃圾回收器就没有办法回收它,所以该对象占用的内存就无法被使用,造成内存泄露
Stella981 Stella981
3年前
JVM的GC算法总结
Java程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经失去标记,程序用不了它们了,对程序而言它们已经废弃),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC),这就是我们的垃圾回收机制,关于垃圾回收我总结了一下几种:标记–清除算法(MarkSweep)