用System.exit(0)关闭窗口 和 用dispose()关闭窗口有什么区别
请问在JAVA中用System.exit(0)关闭窗口和用dispose()关闭窗口有什么区别?谢谢...
请问在JAVA中用System.exit(0)关闭窗口 和 用dispose()关闭窗口有什么区别?
谢谢 展开
谢谢 展开
4个回答
展开全部
Frame 是窗口是系统资源,你要是new Frame("frame title")的话,
它不仅要在jvm的内存的heap中分配空间生成Frame对象,还要象操作系统申请分配资源!
所以它生成两个资源,一个在JVM中,一个在操作系统中!
你要是退出程序,你就最好调用dispose()让操作系统把窗体的资源释放掉。
当然,jvm中的内存资源是不需要你释放的,
你把它交给垃圾自动回收吧!它会把它自动回收的!但垃圾回收对操作系统中的资源是无法回收的!
System.exit(0)是关掉jvm,参数0是正常关闭!你把它关闭了,程序的运行平台都没了,
程序肯定也就结束了!但那个窗口资源还在哟!操作系统也许能把它给回收了!但这是不好的编程习惯!
它不仅要在jvm的内存的heap中分配空间生成Frame对象,还要象操作系统申请分配资源!
所以它生成两个资源,一个在JVM中,一个在操作系统中!
你要是退出程序,你就最好调用dispose()让操作系统把窗体的资源释放掉。
当然,jvm中的内存资源是不需要你释放的,
你把它交给垃圾自动回收吧!它会把它自动回收的!但垃圾回收对操作系统中的资源是无法回收的!
System.exit(0)是关掉jvm,参数0是正常关闭!你把它关闭了,程序的运行平台都没了,
程序肯定也就结束了!但那个窗口资源还在哟!操作系统也许能把它给回收了!但这是不好的编程习惯!
参考资料: http://topic.csdn.net/t/20050114/21/3727069.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.exit(0)是将你的整个这个虚拟机里的内容都停掉了
而dispose()只是关闭这个窗口,但是并没有停止整个application
而dispose()只是关闭这个窗口,但是并没有停止整个application
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,第一个是关闭JVM 第2个是关闭当前程序;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询