已有101人关注
坦克大战游戏的问题
发表在Java图书答疑 2019-07-29 悬赏:1 学分 《零基础学Java》第16章 坦克大战游戏
是否精华
版块置顶:

1)老师 我问一下  书上的坦克大战游戏 你曾经说过  窗体本身有一个线程  那我问一下你的意思是窗


体线程和主线程(main里的)还是有区别的是吗?就是说主线程main方法里结束了  窗体线程还在执行是


吗?



2)老师还有一个小问题  如果假如main方法里MainFrame frame = new MainFrame();// 创建主窗体,里


的new MainFrame()是一块堆内存空间,如果没有任何引用,那肯定是要垃圾回收了,如果垃圾回收了,


我想问的是后果是电脑上过一小段时间这个窗体就消失了(看不见了)是吗?


分享到:
精彩评论 3
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2019-07-29
沙发
  1. 有区别,不是同一个线程。一个是JVM线程,一个是AWT线程。main方法停止意味着JVM停止,其他线程都会停止。

  2. 只要窗体正常显示,就表示该对象一直被使用,不会被回收。

weikeli19
学分:52 LV3
2019-07-29
板凳

根号申 发表于2019-07-29 14:14

  1. 有区别,不是同一个线程。一个是JVM线程,一个是AWT线程。main方法停止意味着JVM停止,其他线程都会停止。

  2. 只要窗体正常显示,就表示该对象一直被使用,不会被回收。

那老师啊 第一个问题 我有疑惑  就是你说main方法结束意味着JVM停止,其他线程都会停止,那么不对了  你不是说是两个不同的线程吗 一个是JVM线程 一个是AWT线程  那么创建了一个可显示的窗口后  那么即启动了AWT线程 此时main方法结束  那么窗口还显示着呢 ?这如何解释呢?那么照你的意思main方法这个主线程结束了  窗口也将结束了它的生命不显示了

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2019-07-29
地板

weikeli19 发表于2019-07-29 14:30

那老师啊 第一个问题 我有疑惑  就是你说main方法结束意味着JVM停止,其他线程都会停止,那么不对了  你不是说是两个不同的线程吗 一个是JVM线程 一个是AWT线程  那么创建了一个可显示的窗口后  那么即启动了AWT线程 此时main方法结束  那么窗口还显示着呢 ?这如何解释呢?那么照你的意思main方法这个主线程结束了  窗口也将结束了它的生命不显示了

我之前表述的有问题,main是入口方法,启动JVM,如果main方法结束时所有资源都被释放,JVM也会随之停止。但如果main方法结束时仍有资源被使用,JVM不会立即停止,会等待所有资源释放再停止。窗体是AWT线程,只要窗体显示就会占用内存资源,JVM就不会停止。你问的这些问题,网上都丰富在资料,你要学习自己查阅资料。

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照