CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 460908
holly
:
不是可能不调用, 而是可能根本就不回收, 如果你内存够大的话
[阅读: 459] 2007-01-12 04:40:42
<空>
相关信息:
不管有没有垃圾回收,构造函数与析构函数中的异常处理不好都可能导致孤魂野鬼
(1120字)
(
李战
[797]
2007-01-12 03:40
)
收藏,战哥哥写的真好。很有用
(空) (
龙之吻
[390]
2007-01-12 03:47
)
希望大牛们向战哥哥这样,写点随笔,对小弟们灰常有帮助的
(空) (
龙之吻
[390]
2007-01-12 03:48
)
对不起,至少这种说法在Java中不存在
(13字)
(
JoJo
[452]
2007-01-12 03:49
)
finalize()
(空) (
李战
[412]
2007-01-12 03:54
)
以前没用过java时,我也这么想当然
(空) (
amo
[386]
2007-01-12 03:56
)
你在finalize()里面抛个异常看看,我想知道结果。
(空) (
李战
[358]
2007-01-12 04:06
)
没有任何问题,对象仍然会被释放掉
(30字)
(
JoJo
[388]
2007-01-12 04:12
)
Java的异常处理机制是不是抛出异常语句之后,后面关闭文件的语句还会被继续执行?
(空) (
李战
[958]
2007-01-12 04:17
)
finalize不是析构函数
(19字)
(
JoJo
[441]
2007-01-12 04:10
)
要的就是这个机会
(13字)
(
haitao
[379]
2007-01-12 04:22
)
可惜不一定有这个机会
(空) (
holly
[387]
2007-01-12 04:24
)
是否gc回收对象时也可能不调用finalize(),如果那样,可就真的危险了
(空) (
李战
[431]
2007-01-12 04:38
)
不是可能不调用, 而是可能根本就不回收, 如果你内存够大的话
(空) (
holly
[458]
2007-01-12 04:40
)
原来是这个意思
(空) (
李战
[368]
2007-01-12 04:42
)
还有呢
(34字)
(
holly
[383]
2007-01-12 04:44
)
对象生死的临界状态嘛,肯定不安全。
(空) (
李战
[379]
2007-01-12 05:11
)
那java类结束自己的生命前,进行善后的时机是什么呢?
(44字)
(
haitao
[570]
2007-01-12 04:47
)
没有所谓的善后
(16字)
(
holly
[353]
2007-01-12 05:12
)
一个对象,除了它自己的空间,肯定还会用到其他一些什么东西
(102字)
(
haitao
[521]
2007-01-12 05:31
)
可以在死之前通知别人, 对不对?
(空) (
holly
[342]
2007-01-12 05:33
)
一般,每个对象都是众多环节里的一环。。。。。
(19字)
(
haitao
[358]
2007-01-12 05:38
)
构造和析构不仅仅是分配和释放内存,而是要让对象有机会建立和释放自己要用到的资源。
(空) (
李战
[430]
2007-01-12 04:26
)
另外,资源和对象是两个概念
(110字)
(
JoJo
[434]
2007-01-12 03:53
)
这应该只是针对象C++、Delphi这样的语言平台
(46字)
(
amo
[421]
2007-01-12 03:54
)
愿闻其详,讨论讨论也好啊
(空) (
李战
[368]
2007-01-12 04:04
)
Java和.net都禁止直接控制对象的生命期
(96字)
(
JoJo
[430]
2007-01-12 04:16
)
禁止直接控制没错
(60字)
(
holly
[354]
2007-01-12 04:20
)
这个你比我在行,我对java也没做深入的研究
(空) (
JoJo
[359]
2007-01-12 04:41
)
finalize()难道不是让自己去释放生命中用到的资源的?难道Java的垃圾回收器可以自己帮你把资源释放掉?
(空) (
李战
[487]
2007-01-12 04:21
)
no. 你没理解 finalize
(74字)
(
holly
[378]
2007-01-12 04:24
)
是不是说Java的对象都是没有中间状态的?或者
(194字)
(
李战
[458]
2007-01-12 04:34
)
怎么可能没状态
(67字)
(
holly
[424]
2007-01-12 04:42
)
我也是,从来没写过finalize
(空) (
JoJo
[400]
2007-01-12 04:43
)
如果要写finalize(), 请别抛出异常...
(空) (
李战
[678]
2007-01-12 05:12
)
的确,“不要在构造/析构或者initialize/finalize这些涉及对象生死的临界点,打开和关闭外部资源”也是一些程序员奉行的好习惯。
(27字)
(
李战
[492]
2007-01-12 05:08
)
嘿嘿. C++ 就不是这样
(空) (
holly
[377]
2007-01-12 05:13
)
是啊,C++中构造和析构代码没写好,常常会出现创建一半的孤魂和释放一半的野鬼...
(空) (
李战
[483]
2007-01-12 05:16
)
C++ 的构造函数抛出异常是被鼓励的
(空) (
holly
[608]
2007-01-12 05:24
)
C++构造函数中遇到异常因该自行释放异常前分配的资源,鼓励你再次抛出该异常。如果自己把苦果吞下,就可能生出怪胎!哈哈...
(空) (
李战
[520]
2007-01-12 05:31
)
所以说,将那个函数改为__init__就不容易让别人误解了
(空) (
cndev.org
[429]
2007-01-12 04:28
)
只对 delphi. C++ 不是这样的
(空) (
holly
[404]
2007-01-12 04:18
)
什么意思?
(空) (
好望角
[373]
2007-01-12 05:35
)
delphi不知道,大致看了下标准,C++不完全是这样吧。
(126字)
(
周星驰
[404]
2007-01-12 07:06
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录