软件工程08级《Java程序设计》A卷参考答案.docVIP

软件工程08级《Java程序设计》A卷参考答案.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java程序设计Web应用程序,每当一个用户请求服务器连接时,服务器就可以启动一个新的线程为用户服务。然而,创建和销毁本身就有一定的开销,因此,线程池就是为了避免频繁创建和销毁线程。每当服务器接受了一个新的请求后,服务器就从线程池中挑选一个等待的线程并执行请求处理。处理完毕后,线程并不结束,而是转为阻塞状态再次被放入线程池中。这样就避免了频繁创建和销毁线程。 5. wait()、notify()和notifyAll() 方法只能由持有对像锁的线程来调用。“只能由持有对像锁的线程来调用”说明wait方法与notify方法必须在同步块内执行,即synchronized(obj)之内。再者synchronized代码块内没有锁是寸步不行的,所以线程要继续执行必须获得锁。 若一个Java程序一味调用 wait()方法,则所有线程都因为申请不到它们所需要的资源而全部进入“阻塞”状态时,该Java程序将被挂起,程序再不能继续前进,出现死锁现象。所以 wait()/ notify()/ notifyall()必须派对使用。 6.在编写异常处理程序时,使用的多重catch语句有明确的父子关系时,应该将子catch语句放在前面,父catch语句放在后面,否则放在后面的子catch语句永远得不到执行。 7. 因为要求重写run()和stop()方法,所以需要采用扩展tread类的方法实现,如果只是重写 run()方法则可以采用扩展tread类或实现runable接口的方法。 8. 使用多线程技术,即创建多个线程处理多个连接,每个线程对应一个客户。这样既可以满足多用户的同时连接请求,也能够使这些线程资源共享,有效提高了效率。 9. ① 创建事件监听器类,在相应的方法中编写事件处理代码;② 声明一个事件监听器对象;③ 将事件监听器对象添加到事件源的监听器列表。 程序分析题(共27分) 评分标准:主观题,答对得全分,答案近似得一半分,否则0分。 1. (1) 不会,当执行statement2产生异常后,将转到catch语句处。 (2分) (2) 如果异常未被捕获,statement4能否被执行System.out.println(x)和method1()编译不能通过, (2分) 因为非静态变量或方法需要实例化后才能使用。 (2分) 3. (1) 语句1调用的是 Circle类的draw方法,如果g换成Circle类引用调用的依然是 Circle类的draw方法,如果Circle类不覆盖draw方法则调用的是Ellipse类的draw方法。 (3分) (2) 不能,因为父类引用指向子类时,只能调用子类覆盖了父类的方法,而不能调用子类新产生的方法。 (2分) 4. 不能, (1分) 因为子类覆盖父类方法,要求他们的方法头必需一致,而该例子中两个方法的返回类型不一致。 (3分) 5. WindowListener监听器的实现方法有错误。 (1分) 可以将 implements WindowListener改为extended Windowadapter,或者在类中补充其他6个空方法: public void windowOpened(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} (3分) 6. 在 First 类中声明了私有变量a,他们的作用域只能在 First 类内部, (2分) 而在子类 Second 中使用变量a将出现不能识别标识符的错误。

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档