`
majm
  • 浏览: 35571 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java的内存回收

    博客分类:
  • Java
 
阅读更多
Java的内存回收

Java的引用种类
是否回收一个对象在于,是否有引用对象引用该对象。
只要有引用对象,垃圾回收机制就不会回收它。

强引用;
软引用;当系统内存空间不足时,被回收。
弱引用;不管系统内存是否足够,总会回收该对象所占用内存。
虚引用;

强引用时造成java内存泄漏的主要原因之一。
跟踪,并监控每一个Java对象,当某个对象处于不可达状态时,回收该对象所占用的内存。
清理内存分配,回收过程中产生内存碎片。

窜行回收;不管系统中有多少个cpu,适终用一个cpu来执行垃圾回收。
并行回收;让多个cpu并行回收,效率很高,但复杂度增加。副作用,内存碎片多。

Yong代。
old代。
permanet代,装载class,生成动态代理。

-Xmx;堆内存最大容量
-Xms;堆内存最小容量
-XX:MinHeapFreeRatio = 40 堆内存最小空间百分比
-XX:MaxHeapFreeRatio = 70 对内存最大空间百分比
-XX:NewRatio = 2 Yong/Old内存的比例
-XX:NewSize = 64m Yong代默认容量
-XX:SurvivorRatio = 8;eden/surver
-XX:MaxNewSize = 128m Yong代内存的最大容量

内存管理的技巧
尽量使用直接量
使用StringBuilder,StringBuffer进行字符窜链接
尽早释放元对象的引用
尽量少用静态变量
避免在,循环中创建Java对象。
缓存经常使用的对像,OSCache,Ehcache等缓存
尽量不要使用finallize方法
当用数组时考虑使用SoftReference

分享到:
评论

相关推荐

    Java内存泄露及内存无法回收解决方案

    Java内存管理是编程中至关重要的一个环节,尤其是对于大型、长时间运行的应用来说,内存泄漏和内存无法回收可能导致系统性能下降,甚至导致系统崩溃。本文将深入探讨Java内存泄露的原理,分析内存无法回收的原因,并...

    如何解决Java内存泄漏

    Java内存回收机制 Java的内存管理主要集中在堆(Heap)区域,其中对象的创建通常是通过`new`关键字或反射方式完成,而对象的释放则由Java虚拟机(JVM)通过垃圾回收(GC)机制自动处理。对象回收的基本原则是:当一个...

    Java内存回收机制

    一、Java对象在内存引用状态  内存泄露:程序运行过程中,会不断分配内存空间,那些不再使用...  强引用是Java编程中广泛使用的引用类型,被强引用所引用的Java对象绝不会被垃圾回收机制回收,即使系统内存紧张;即使

    图文详解java内存回收机制

    Java内存回收机制是Java虚拟机(JVM)自动管理内存的一种策略,它的主要目标是确保程序的稳定运行,同时减少因手动内存管理可能导致的错误。Java程序员无需像C++那样显式地分配和释放内存,这使得编程更加简单,但也...

    java之内存泄露

    #### 二、Java内存回收机制 Java的内存管理机制主要依赖于垃圾回收器(Garbage Collection, GC),这是一种自动化的内存管理方式。当对象不再被引用时,GC会自动将其从内存中移除,释放其占用的空间。然而,这种机制...

    java内存泄露总结

    #### 一、Java内存回收机制 Java中的内存管理主要依赖于垃圾回收(Garbage Collection, GC)机制。与C/C++等需要手动管理内存的语言不同,Java虚拟机(JVM)自动处理对象的创建与销毁过程。当通过`new`或反射方法...

    java垃圾回收及内存泄漏.pptx

    #### 一、Java内存管理 1. **运行时数据区**:Java虚拟机管理的内存主要分为以下几个部分: - **方法区(Method Area)**:存储类的信息(如类名、字段、方法等)、常量、静态变量等。每个JVM实例只有一个方法区,...

    Java内存管理机制相关资料汇总

    资源名称:Java内存管理机制相关资料汇总资源目录:【】java内存回收机制及预防【】java内存管理机制【】java内存管理白皮书【】Java虚拟机内存管理_对象和引用_空指针【】深入理解java虚拟机jvm高级行与最佳实践...

    Java的内存回收机制

    在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由...

    java内存机制及异常处理

    Java内存机制是Java虚拟机(JVM)的关键组成部分,它管理着程序运行时的数据存储。在Java中,内存主要分为以下几个区域: 1. **Heap(堆)**:这是Java中最主要的内存区域,用于存储所有的类实例和数组。当堆空间...

    java内存管理与垃圾回收

    总的来说,Java内存管理和垃圾回收机制是Java平台的基石,它们使得开发者可以专注于编写代码,而不必担心内存管理的细节。理解这些概念对于优化程序性能、避免内存溢出等问题至关重要。通过合理地分配和管理内存,...

    java测试Linux服务器内存使用、回收情况

    通过简单的java程序测试Linux服务器内存使用、回收情况,排查Linux服务器内存使用异常的情况

    JAVA内存模型与垃圾回收

    JAVA内存模型与垃圾回收是Java开发中至关重要的概念,它们直接影响到程序的性能和稳定性。首先,我们来看看Java内存模型。 Java内存模型,通常被称为JVM内存模型,它定义了程序中不同部分如何访问和共享数据。在...

    深入了解java内存分配和回收策略

    "深入了解java内存分配和回收策略" java内存分配是java技术体系中的一个核心问题,java技术体系中所提到的内存自动化管理归根结底就是内存的分配与回收两个问题。下面我们将深入了解java内存分配和回收策略。 一、...

    java垃圾回收器代码举例

    - Java内存管理的核心是对象生命周期的管理,当一个对象不再被引用时,垃圾回收器会将其占用的内存空间回收。 2. **垃圾回收器的工作原理** - **可达性分析**:垃圾回收器通过一系列称为“根”(如局部变量、静态...

    java内存原理.doc

    在堆中分配的内存,由 Java 虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了...

Global site tag (gtag.js) - Google Analytics