1.throw和throws有什么区别?
throw用于方法内容,throws用于方法声明上
throw后缀异常对象,throws后跟异常类型
throw后只能跟一个异常对象,throws后可以一次声明多种异常类型
2.异常处理完成后,exception对象会发生什么变化?
exception对象会在下一个垃圾回收过程中被回收掉
3.finally代码块和finalize()方法有什么区别?
无论是否抛出异常,finally代码块都会被执行,它主要是用来释放应用占用的资源,finalize()方法是object类的一个protected方法,它是在对象被垃圾回收之前由java虚拟机来调用的
4.什么是applet?
java applet是能够被包含在HTML页面中并且能够被启用了java的客户端浏览器执行的程序,applet主要用来创建动态交互的web应用程序
5.解释一下applet的生命周期?
applet可以以经历下面的状态:
init:每次被载入的时候都会被初始化
start:开始执行applet
stop:结束执行applet
destroy:卸载applet之前,做最后的清理工作
6.当applet被载入的时候会发生什么?
首先,创建applet控制类的实例,然后初始化applet,最后开始执行
7.applet和普通的java应用程序有什么区别?
applet是运行在启用了java的浏览器中,java应用程序是可以在浏览器之外运行的独立的java程序,但是,它们都需要有java虚拟机。
进一步来说,java应用程序需要一个有特定方法签名的main函数来开始执行,java script不需要这样的函数来开始执行
最后,java script一般使用很严格的安全策略,java应用一般使用比较宽松的安全策略
8.java applet有哪些限制条件?
主要是由于安全的原因,给applet施加了以下的限制:
applet不能够载入类库或者定义本地方法
applet不能在宿主机上读写文件
applet不能发起网络链接,除非是跟宿主机
applet不能够开启宿主机上其他任何的程序
9.什么是不受信任的applet?
不受信任的applet是不能访问或是执行本地系统文件的java applet ,默认情况下,所有下载的applet都是不受信任的
10.从网络上加载的applet和从本地文件系统加载的applet有什么区别?
当applet是从网络上加载的时候,applet是由applet类加载器载入的,它受applet安全管理器的限制
当applet是从客户端的本地磁盘载入的时候,applet是由文件系统加载器载入的。
从文件系统载入的applet允许在客户端读文件,写文件,加载类库,并且也允许执行其他程序,但是,却通不过字节吗校验。
11.applet类加载器是什么?它会做哪些工作?
当applet是从网络上加载的时候,它是由applet类加载器载入的,类加载器有自己的java名称空间等级结构,类加载器会保证来自文件系统的类有唯一的名称空间,来自网络资源的类有唯一的名称空间。
当浏览器通过网络载入applet的时候,applet的类被放置于和applet的源相关联的私有的名称空间中。然后,那些被类加载器载入进来的类都是通过了验证器验证的。验证器会检查类文件格式是否遵守java语言规范,确保不会出现堆栈溢出或者下溢,传递给字节码指令的参数是正确的