用System.exit(0)关闭窗口 和 用dispose()关闭窗口有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/16 12:27:59
请问在JAVA中用System.exit(0)关闭窗口 和 用dispose()关闭窗口有什么区别?
谢谢

很简单的区别:
System.exit(0);是系统关闭,也就是你的平台虽然关闭了,但在你的内存还是占有着,
dispose();是释放资源,也就将你的平台从内存中释放!(建议用这种)

Frame 是窗口是系统资源,你要是new Frame("frame title")的话,
它不仅要在jvm的内存的heap中分配空间生成Frame对象,还要象操作系统申请分配资源!
所以它生成两个资源,一个在JVM中,一个在操作系统中!
你要是退出程序,你就最好调用dispose()让操作系统把窗体的资源释放掉。
当然,jvm中的内存资源是不需要你释放的,
你把它交给垃圾自动回收吧!它会把它自动回收的!但垃圾回收对操作系统中的资源是无法回收的!

System.exit(0)是关掉jvm,参数0是正常关闭!你把它关闭了,程序的运行平台都没了,
程序肯定也就结束了!但那个窗口资源还在哟!操作系统也许能把它给回收了!但这是不好的编程习惯!

System.exit(0)是将你的整个这个虚拟机里的内容都停掉了
而dispose()只是关闭这个窗口,但是并没有停止整个application

很简单,第一个是关闭JVM 第2个是关闭当前程序;