115-Java-Interview-Questions-and-Answers

Java Applets

48. 什么是 Applet ?

一个 Java Applet 可以包含在 HTML 页面中并且可以在启用 Java 客户端的浏览器中运行。Applets 可以用来创建动态和交互式的 web 应用程序。

49. Applet 生命周期的说明

一个 Applet 可能会经历以下的几个状态:

  • Init: 每次加载的时候都进行初始化
  • Start: 开始执行一个 applet
  • Stop: 停止执行一个 applet
  • Destroy: 卸载 applet 之前执行最后的清理

50. 当 applet 加载的时候会发生什么?

首先,会创建一个 applet 的控制类的实例。然后,applet 初始化,最后 applet 开始运行。

51. Applet和Java应用程序有什么不同?

Applets需要一个支持Java的浏览器, 但是Java应用程序可以被单独执行。但是,他们都需要一个Java虚拟机,JVM。 还有, 一个Java应用程序需要一个main方法与特定的签名,来确保启动. Java applets并不需要这样一些东西。 最后, Java Applet通常使用严格的安全策略,而Java应用程序通常使用较宽松的安全策略。

52. 什么是强加给Java Applet限制?

这主要是由于安全原因,以下限制强加在Java小程序:

  • Applet无法加载库或定义本地方法。
  • Applet 通常无法读取或执行主机的文件。
  • Applet无法读取某些系统属性。
  • 除非连接来自主机否则不能进行网络连接。
  • Applet程序不能启动主机上执行它的任何程序。

53. 什么是不可信的Applet ?

不受信任的Applet是那些Java Applet不能访问或执行本地系统的文件的程序。默认情况下,所有下载的Applet被认为是不可信的。

54. 通过文件系统加载的小程序在加载了互联网和Applet之间的区别是什么 ?

关于其中一个applet被加载在互联网的情况下,applet是由applet类加载器加载并须受该applet安全管理器执行的限制。
关于其中一个applet是从客户端的本地磁盘加载的情况下,applet是由文件系统加载器加载的。
通过文件系统加载的applet允许读取文件,写入文件并加载在客户端上。还有,通过文件系统加载applet允许执行,最后,通过文件系统加载的applet不管是否通过字节码验证都可加载。

55. 什么是applet类加载器,它提供了什么?

当在互联网上加载applet,该applet是由applet的类加载器加载的。类加载器强制执行Java命名空间的层次结构。此外,类加载器保证这是在来自本地文件系统的类中唯一的命名空间,以及在每个网络源中唯一的命名空间。

当浏览器在网络上加载applet,applet的类被放置在私人的和applet起始地址有关的命名空间中。那么,那些类加载器加载的类就会通过校验。这个校验会检查类文件是否符合Java语言规范。除此之外,校验器会确保没有堆栈溢出或者向下溢出,参数的所有字节码指令也是正确的。

56. 什么是applet安全管理,它提供什么?

applet安全管理是对Java applet做了限制的机制。浏览器只能有一个安全管理器。安全管理器在启动的时候建立,之后它不能被取代,重载,重写或者延长。