Java校招面试题(五)

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语言规范,确保不会出现堆栈溢出或者下溢,传递给字节码指令的参数是正确的

猜你喜欢

转载自blog.csdn.net/qq_39837804/article/details/104093070