java内存释放——《thinkinginjava》随笔004

     2022-03-14     720

关键词:

 1 package cn.skyfffire;
 2 
 3 /**
 4  * 
 5  * @author skyfffire
 6  *
 7  */
 8 public class Test {
 9     static boolean gcrun = false;        // GC是垃圾回收器
10     static boolean f = false;            // 终止创建对象的条件
11     static int created = 0;                // 对象个数计数器
12     static int finalized = 0;            // 对象销毁
13     int i;
14     
15     Test() {
16         i = ++created;
17         
18         if (created == 47) {
19             System.out.println("已经达到47个");
20         }
21     }
22     
23     protected void finalize() {
24         if (!gcrun) {
25             gcrun = true;
26             
27             System.out.println(created + "号对象创建完毕");
28         }
29         
30         if (i >= 47) {
31             System.out.println("47以上了");
32             
33             f = true;
34         }
35         
36         finalized++;
37         
38         if (finalized >= created) {
39             System.out.println("所有对象销毁完毕");
40         }
41     }
42 }
43 
44 class Garbage {
45     public static void main(String[] args) {
46         if (args.length == 0) {
47             System.err.println("请加上参数");
48             
49             return;
50         }
51         
52         while (!Test.f) {
53             new Test();
54         }
55         
56         System.out.println(Test.created + "---" + Test.finalized);
57         
58         if (args[0].equals("before")) {
59             System.out.println("gc");
60             System.gc();
61             System.out.println("runFinalization():");
62             System.runFinalization();
63         }
64 //        
65 //        if (args[0].equals("after")) {
66 ////            System.runFinalizersOnExit(false);
67 //        }
68     }
69 }

 

java内存管理——垃圾收集

其它语言(如C语言)要求程序员显式地分配内存、释放内存。程序需要内存时分配内存,不需要时释放内存。但是这种做法常常引起内存泄漏。所谓内存泄漏,就是由于某种原因使分配的内存始终没有得到释放。如果该任务不... 查看详情

在 Java 中为 JOGL 释放直接缓冲区本机内存

】在Java中为JOGL释放直接缓冲区本机内存【英文标题】:DeallocatingDirectBufferNativeMemoryinJavaforJOGL【发布时间】:2010-08-1619:18:43【问题描述】:我正在使用直接缓冲区(java.nio)来存储JOGL的顶点信息。这些缓冲区很大,并且在应用程序... 查看详情

关闭java InputStream后内存未释放[重复]

】关闭javaInputStream后内存未释放[重复]【英文标题】:Memorynotfreedup,afterclosingjavaInputStream[duplicate]【发布时间】:2019-02-0119:29:30【问题描述】:在这段代码的sn-p中,我使用ApachePOI库加载了一个大小为10MB的excel文件。这消耗了将近2G... 查看详情

怎样释放java程序运行中所用的内存

...员,请问在用JAVA程序的过程中,因为用的越久JAVA就占用内存越多,所以我想知道哪种方法可以简便的释放JAVA内存  JAVA具有自动的垃圾回收机制,不需要释放内存的操作;  垃圾回收能自动释放内存空间,减轻编程的负担... 查看详情

从 Java 堆转储中获取已使用和释放的内存

】从Java堆转储中获取已使用和释放的内存【英文标题】:GetusedandfreememoryfromJavaheapdump【发布时间】:2015-01-1911:59:51【问题描述】:我有一个Java堆转储,我想了解已用堆的大小以及可用的空闲内存量。我正在使用Eclipse内存分析器... 查看详情

在 Java 中删除部分数组以释放堆内存

】在Java中删除部分数组以释放堆内存【英文标题】:DeletingPartofAnArrayinJavatoFreeMemoryonHeap【发布时间】:2011-02-1409:11:14【问题描述】:我正在为Java中的背包问题实现一个动态编程算法。我声明了数组,然后将其大小初始化为[对象... 查看详情

java线程同步临界区:thinkinginjava421.3.5(代码片段)

java线程同步临界区:thinkinginjava421.3.5thinkinginjava4免费下载:http://download.csdn.net/detail/liangrui1988/7580155packageorg.rui.thread.critical;importjava.util.ArrayList;importjava.util. 查看详情

java啥资源需要手动释放

...以实现垃圾回收,在某种特定情况下会使用到 参考技术B内存资源什么都不需要手动释放数据库链接一类的当然必须要释放原因?原因就是JAVA虚拟机直接控制了内存的回收所以不需要主动回收(也不可能主动回收)数据库链接一类... 查看详情

Java 在对象释放和垃圾回收后仍然使用系统内存

】Java在对象释放和垃圾回收后仍然使用系统内存【英文标题】:Javastillusessystemmemoryafterdeallocationofobjectsandgarbagecollection【发布时间】:2010-09-2409:09:13【问题描述】:我正在运行JVM1.5.0(MacOSX默认),并且正在活动监视器中监视我... 查看详情

华为od机试真题java实现简易内存池2真题+解题思路+代码(2022&2023)(代码片段)

简易内存池2题目请实现一个简易内存池根据请求命令完成内存分配和释放内存池支持两种操作命令REQUEST和RELEASE其格式为REQUEST=请求的内存大小表示请求分配指定大小内存如果分配成功,返回分配到的内存首地址如果内存不足,... 查看详情

java内存管理机制

JAVA 内存管理总结1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外... 查看详情

java编程思想thinkinginjava

Java编程思想【Thinkinginjava】目录:第1章对象导论1.1抽象过程1.2每个对象都有一个接口1.3每个对象都提供服务1.4被隐藏的具体实现1.5复用具体实现1.6继承1.6.1“是一个”(is-a)与“像是一个”(is-like-a)关系1.7伴随多... 查看详情

内存管理

1.java是如何管理内存的?  (1)java的内存管理就是对象的分配和是释放问题。在java中,程序员你需要通过new关键字为每个对象来申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。另外,对象的释放是由GC决定和... 查看详情

java我可以主动去释放对象占的内存吗?可以的怎释放?

参考技术A不可以,Java增加了垃圾回收机制来管理内存!就算你将对象赋值为null,垃圾回收机也不会立即回收该对象所占的资源,只有当内存不够用的时候,垃圾回收机才会去回收!! 参考技术B不能Java里面的垃圾回收机制就是... 查看详情

释放占用的内存

在Java中,如果我们创建了一个对象实例,则这个实例就会在内存中开辟一块空间;当我们给这个实例各种数据处理,这些数据的处理都经过内存,最终还会在这个对象内存中保存最终的数据;如果在处理完了之后,建议将这个对象开辟的... 查看详情

java模拟内存分配与释放——首次适应算法

前言首次适应算法(FF,firstfit)是内存基于顺序搜索的动态分配分区算法,在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止,然后在按照作业的大小从该分区中划出一块内存空间,分配给请... 查看详情

关于java内存释放的问题

...但AjaxAction这个类被自动回收后,这个public的map所占用的内存是否被释放。这不是一个简单的问题,请仔细考虑。我是怀疑这个map还在占用内存。我想你说的应该是AjaxAction对象被回收吧要清楚这个问题必须了解对象的结构java虚拟... 查看详情

jni内存方面说明以及相关类型手动释放内存(代码片段)

...:https://blog.csdn.net/nanke_yh/article/details/124863685一、Java内存Java程序所涉及的内存可以从逻辑上划分为两部分:HeapMemory和NativeMemory。1)HeapMemory:供Java应用程序使用的,所有java对象的内存都是从这里分配的&# 查看详情