社区
Java SE
帖子详情
java 的几个问题
xiaofish
2003-10-15 02:07:50
1. 当java程序被kill掉的时候, 程序如何捕捉到这个kill消息。
2. 当java程序运行很长一段时间后, 发现系统内存会被占用的越来越多, 如何改变这种情况。
谢谢大家!
...全文
35
9
打赏
收藏
java 的几个问题
1. 当java程序被kill掉的时候, 程序如何捕捉到这个kill消息。 2. 当java程序运行很长一段时间后, 发现系统内存会被占用的越来越多, 如何改变这种情况。 谢谢大家!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
truezerg
2003-10-15
打赏
举报
回复
你的内存总是再长的问题,我怀疑你是因为没有了解java的回收机制引起的,当你写 aObject = null; (对不起,上面我写错了,不是:= 是 = ,可能最近又写delphi 写多了^_^)
这个对象并不一定会被释放。有可能其它地方还有引用指向它。所以你必需保证所有的引用都解除了才行。检查你的程序,如果你弄明白了这个道理,看看是不是程序写的有问题。祝你好运
truezerg
2003-10-15
打赏
举报
回复
to: xiaofish()
你要弄明白在什么情况下java的垃圾回收才能回收对象所占用的空间。那就是只有当一个对象没有被任何引用指向它的时候,这时java的垃圾回收程序才能够回收这个对象所占用的内存空间。 这种机制是非常好的,你不必为担心何时释放一个对象而举棋不定。比C++的机制强好很多。
从表面上看当你不用一个对象时,在java里和在C++里的操作好像都差不多比如
aObject := null; //java
aObject.delete; //C++
表面上好像都差不多,其实一点也不一样。C++里要复杂的多,这种情况存在于多个指针(引用)指向一个对象时,比如在C++中,如果有二个引用(C++里叫指针? 我不知道叫什么,就都叫引用吧)指向了一个对象,当你delete掉这个对象后,而其它的引用并不知道这个对象已经被delete掉了,所以当你通过其它的引用再使用这个对象时就会出错。 而java不是。当你写 aObject := null; 这句话时,那个对象并没有被释放掉。只是当前的这个引用不再指向它而已。 所以不会影响其它也指向这个对象的引用。 不会引起向C++里的问题。而当指向这个对象的所有的引用都不再指向这个对象时,它才会被归入到垃圾回收器待回收的对象列表里。等待回收。
所以我们没有垃圾回收机制的程序语言里所面对的困难不是 "忘记释放掉对象",真正的难点是“何时释放对象”。
alienbat
2003-10-15
打赏
举报
回复
楼上的,只有没有任何变量指向对象的时候,此对象才会被回收。
C++的方式需要程序员自己管理内存,是非常麻烦的,而且很容易造成内存空洞。
xiaofish
2003-10-15
打赏
举报
回复
伙计, 我觉得把全世纪的内存都加到上面,也会用光的, 呵呵!
我曾经用过 gc()的方式进行内存的回收,但是没效果!
我不知道,是否当变量new过以后,是否要赋null才能被及时回收掉!
如果是这样的话,我倒觉得c++的自己管理内存的机制还要可取得多,
想用就new,不用就delete掉!
关于第一个问题的解决方法,我去try一下先!
欢迎大家踊跃发言哦!
wyhgg
2003-10-15
打赏
举报
回复
1涉及进程监测
xieweibbs
2003-10-15
打赏
举报
回复
JAVA的垃圾收集机制会自动处理
realzealy
2003-10-15
打赏
举报
回复
JAVA程序的运行本身是就是多线程的,有垃圾回收的线程回收那些不用资源,但是它的优先级很低,很多时候你是感觉不到的,但是如果资源非常少的情况下,也会强制回收一些资源,但是通常自己动手回收更有效就是用System.gc(),或者重写finalize()方法
mortal
2003-10-15
打赏
举报
回复
第一个不知道,第二个是因为JAVA的垃圾收集机制的原因,因为垃圾收集的优先级非常的低,当你程序在不断运行时,没用的东西还会一直在内存中(没机会清除),有一种方法是自己手动的进行收集,可以用System.gc(),或者重写finalize()方法
ervinlj
2003-10-15
打赏
举报
回复
你说的kill掉,可是强行kill掉这个程序,这我不知道!如果是程序正常退出的话,你只要覆盖finalize方法就可以了,你试试看kill掉这个程序,会调用这个方法的吗?
第2个问题吗?运行Java程序应该不会出现这样的情况的,因为Java有Garbage Collection的机制的吗!如果实在系统内存会被占用的越来越多的话,关掉几个程序,再不行,伙计还是多加点内存把!!!
java
学习笔记总结
自己
几个
月的学习总结,一些解决
问题
的办法,很实用,希望对大家有所帮助!
char
几个
字节
java
_
java
中char占
几个
字节?
java
中char占
几个
字节?
java
中的一个char占用2个字节。
java
采用unicode,2个字节来表示一个字符。 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。1:“字节”是byte,“位”是bit ;2: 1 byte = 8 bit ;例子代码如下:public class Test {public s...
入门
Java
安全开发
本课程将从
Java
的角度出发,接触
几个
实际的安全开发的例子,带领广大想要从事安全研发行业的同学进行入门学习。包括以下内入:1、安全领域研发相关基础知识,例如安全资产包含的内容,以公司、域名、子域名、IP、端口、服务等维度全面刻画一个资产。2、编写安全的
Java
项目的基础知识,了解一个依赖的Jar包是否有安全
问题
3、以编写敏感词检测为案例带领同学们进行
Java
安全研发4、分析SIEM系统和开源扫描器的实现方案,让同学们了解安全开发的逻辑和思路
java
int
几个
字节_
java
中的int占
几个
字节
java
中的int占
几个
字节发布时间:2020-06-26 18:07:29来源:亿速云阅读:131作者:Leah今天就跟大家聊聊有关
java
中的int占
几个
字节,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。字节:byte:用来计量存储容量的一种计量单位;位:bit一个字节等于8位1byte = 8bitint 数据类型是4个字节,32位、...
Java
Int 占
几个
字节
Java
Int 占
几个
字节
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章