在java学习中遇到的一些经典问题和解答(6)

1.Applet和普通的Java应用程序有什么区别?

(1)运行方式不同。Java Applet程序不能单独运行,它必须依附于一个用HTML语言编写的网页并嵌入其中,通过与Java兼容的浏览器来控制执行。Java Application是完整的程序,可以独立运行,只要有支持Java的虚拟机,它就可以独立运行而不需要其他文件的支持。

(2)运行工具不同。运行Java Applet程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,而Java Applet必须通过网络浏览器或者Applet观察器才能执行。 
 
(3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说,Java Application程序都含有一个主类。而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。尽管Applet没有含main方法的主类,但Applet一定有一个从 java.applet.Applet派生的类,它是由Java系统提供的。 
 
(4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。 
 
(5)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于 Applet的引入,使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。

2.Java applet有哪些限制条件?

主要由于安全问题,给applet施加了以下的限制条件:
applet不能够载入类库或者定义本地方法;
applet不能够在宿主机上读写文件;
applet不能读取特定的系统属性;
applet不能发起网络连接,除非是跟宿主机;
applet不能开启宿主机上任何其他的程序。

3.什么是不受信任的applet?

不受信任的applet是不能访问或是执行本地系统文件的java applet,默认情况先,所有下载的applet都是不受信任的。

4.从网络上加载的applet和从本地加载的applet有什么区别?

当applet从网络上加载时,applet是由applet类加载器载入的,它受applet安全管理器的限制;
当applet是从客户端的本地磁盘载入的时候,applet是由文件系统加载器载入的;从文件系统载入的applet允许在客户端读文件,写文件,加载类库,并且也允许执行其他程序,但是,确不通过字节码校验。

5.Applet类加载器是什么?他会做哪些工作?

当applet是从网络上加载的时候,它是由applet类加载器载入的。类加载器有自己的java名称空间等级结构。类加载器会保证来自文件系统的类有唯一的名称空间,来自网络资源的类有唯一的名称空间。
当浏览器通过网络载入applet的时候,applet的类被放置于和applet的源相关联的私有的名称空间中。然后,那些被类加载器载入进来的类都是通过了验证器验证的。验证器会检查类文件格式是否遵守Java语言规范,确保不会出现堆栈溢出(stack overflow)或者下溢(underflow),传递给字节码指令的参数是正确的。

6.applet安全管理器是什么?它会做哪些工作?

applet管理器是给applet施加限制条件的一种机制。浏览器可以只有一个安全管理器。安全管理器在启动的时候被创建,之后不能被覆盖或者是扩展

7.弹出式选择菜单(Choice)和列表(List)有什么区别?

Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项。Choice一次只能选中一个选项。List同时可以有多个元素可见,支持选择一种或者多种元素。

8.什么是布局管理器?

布局管理器是用来在容器中组织组件。

9.滚动条(Scrollbar)和滚动面板(ScrollPane)有什么区别?

滚动条是一个组件,不是容器。而滚动面板是容器。滚动面板自己处理滚动事件。

10.哪些Swings的方法是线程安全的?

只有三个线程安全的方法:repaint();revalidate();invalidate()。

猜你喜欢

转载自blog.csdn.net/huangpeng_HP/article/details/86608388
今日推荐