进程:正在运行的程序,负责了这个程序的内存空间分配,代表了内存中的执行区域。(启动一个软件) 线程:在一个程序中负责了代码的执行,就是进程中一个执行路径 多线程:在一个进程中有多个线程同时执行不同的任务 一个java程序至少有几个线程 2个 主线程负责了main代码的执行 垃圾回收器负责了 回收垃圾 ...
分类:
编程语言 时间:
2017-11-04 11:17:40
阅读次数:
173
垃圾回收:只回收托管堆中的内存资源,不回收其他资源(数据库连接、文件句柄、网络端口等) 什么样的对象才会被回收?答:没有变量引用的对象 什么时间回收? 系统回收,具体何时回收垃圾由系统自行确定,并不是即时执行回收的 手动调用垃圾回收器GC.Collect();,不建议使用,垃圾回收时会使程序暂停,影 ...
分类:
其他好文 时间:
2017-11-03 16:46:13
阅读次数:
169
C#中IDisposable接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存。但无法预测进行垃圾回收的时间。另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资源一无所知。将此接口的Dispose方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象 ...
分类:
其他好文 时间:
2017-11-01 12:12:31
阅读次数:
188
一.内存泄漏: 内存泄漏指对象已经没有被应用程序使用,但是垃圾回收器无法移除它们,因为还在被引用着。 出现内存泄漏的情况和防止:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的 ...
分类:
其他好文 时间:
2017-10-27 23:02:58
阅读次数:
163
在进行Java开发时,如果框架或者程序用到了JavaBeans Introspector了,那么就启用了一个系统级别的缓存,这个缓存会存放一些曾加载并分析过的javabean的引用,当web服务器关闭的时候,由于这个缓存中存放着这些javabean的引用,所以垃圾回收器不能对web容器中的javaB ...
分类:
编程语言 时间:
2017-10-26 13:54:49
阅读次数:
251
Java习题10.25 1、 实际上这道题考查的是两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。 2、 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存。 在函数中定义的一些基 ...
分类:
编程语言 时间:
2017-10-25 15:26:17
阅读次数:
212
9.垃圾回收机制和JVM 1.GC(Garbage Coolection)指垃圾回收机制。没有提供相关api,手动回收,所有的内存分配和回收权限都在jvm中 2.System.gc():呼叫java虚拟机的垃圾回收器运行回收内存的垃圾 3.finalize()方法 当垃圾回收器认为一个对象没有存在意 ...
分类:
其他好文 时间:
2017-10-20 01:11:11
阅读次数:
151
在.NetFrameWork中有一个垃圾回收器,用于管理应用程序内存的分配和释放 想要了解垃圾回收机制,要先知道托管堆和堆栈 堆栈和托管堆都在线程的虚拟内存中, 堆:顺序随意 栈:先进后出 值类型存储在堆栈上,引用类型都存储在托管堆中 在使用new关键字创建类的对象时,分配给对象的内存单元就位于托管 ...
分类:
其他好文 时间:
2017-10-16 19:41:27
阅读次数:
104
在Java中,当一个对象变得不可到达时,垃圾回收器会回收与该对象相关联的存储空间。用try-finally块来回收其他的非内存资源。 终结方法的缺点在于不能保证会被及时地执行。从一个对象变得不可到达开始,到它的终结方法被执行,所花费的这段时间是任意长的。这意味着注重时间的任务不应该由终结方法来完成。 ...
分类:
编程语言 时间:
2017-10-07 16:26:24
阅读次数:
189
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。 可以。 程序员可以手动执行 ...
分类:
其他好文 时间:
2017-10-06 10:32:48
阅读次数:
242