- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)