zoukankan
html css js c++ java
Java 内存回收机制
当执行构造方法生成一个对象时,需要占用各种系统资源。当生成的对象不再使用时,就需要返回给操作系统,以免资源的泄露。在各种系统资源中,最常使用的就是内存。Java运行时系统通过垃圾收集周期性地释放无用对象所使用的内存。当一个对象在程序中不再使用时,即当前的代码段不属于对象的作用域或把对象的引用赋值为空,则该对象就成了一个无用的对象。Java的垃圾收集器自动扫描对象的动态内存区,对不再使用的对象做上标记以进行垃圾回收。垃圾收集器作为一个线程运行。当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行,否则垃圾收集器在系统空闲时异步地执行。C语言中通过free来释放内存,C++中则通过delete来释放内存,如果程序员忘记释放内存,则容易造成内存泄漏甚至导致内存的耗尽。在Java中不会发生内存泄漏情况,但对于其他资源,则有产生泄露的可能性。
Java中的每一个类都有一个finalize()方法用于释放资源,在对对象进行自动垃圾回收前,Java运行时系统会自动调用对象的finalize()方法来释放系统资源,如关闭打开的文件或socket等。该方法的声明格式如下:
protected void finalize() throws throwable
finalize()方法在java.lang.Object中声明,但并没有做任何事情。如果一个类需要释放内存以外的资源,则需要在类中重写finalize()方法。
查看全文
相关阅读:
PHP实现畅言留言板和网易跟帖样式
关于MySql中自增长id设置初始值
建议
P3P解决cookie存取的跨域问题
学习模板实例
Mac 安装Bower
webstorm for mac 破解步骤
Mac上搭建php开发环境
ios 开发之 -- 极光推送,发送自定义消息,进入制定页面
ios开发之 -- 强制横屏
原文地址:https://www.cnblogs.com/ljy-1471914707/p/7365867.html
最新文章
Tensorflow之快速加载MNIST数据集
Tensorflow之调试(Debug)及打印变量
sklearn数字图像识别(RBM+logistic)
Deep learning for Human Strategic Behaviour
Tagger: Deep Unsupervised Perceptual Grouping
Stochastic Multiple Choice Learning for Training Diverse Deep Ensembles
Boosting with Abstention
git 的一些笔记
git 常用命令
How to Install Xcode, Homebrew, Git, RVM, Ruby & Rails on Snow Leopard, Lion, Mountain Lion, and Mavericks
热门文章
Recusively change the owner of files (chown) on Mac OS X
Homebrew OS X 不可或缺的套件管理器
Mac里面如何设置自启动服务
zend server 和zend studio 最佳实践
yii2 beta版 执行流程
yii2中的事件和行为
jdk与jre的区别
MySQL简介
如何把mysql的ID归0?
关于HTTP_CLIENT_IP,HTTP_X_FORWAR
Copyright © 2011-2022 走看看