经典Java面试100例,轻松搞定BAT——高频面试题(中)

浅浅的花香味﹌ 2022-10-06 06:52 243阅读 0赞

" class="reference-link">e27997eaf308fca8a57dd5a74c676238.png

异常处理

43. Java 中的两种异常类型是什么? 他们有什么区别?
Java 中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须 要用 throws语句在方法或者是构造函数上声明。这里有 Java 异常处理的一些小建议。

44. Java Exception Error 有什么区别**
Exception 和 Error 都是 Throwable 的子类。 Exception 用于用户程序可以捕获的异常情况。
Error定义了不期望被用户程序捕获的异常。
45. throw throws 有什么区别**?
throw 关键字用来在程序中明确的抛出异常,相反,throws 语句用来表明方法不能处理的异 常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
46. 异常处理的时候****finally 代码块的重要性是什么**
无论是否抛出异常,finally 代码块总是会被执行。就算是没有 catch 语句同时又抛出异常的情况下,finally 代码块仍然会被执行。最后要说的是,finally 代码块主要用来释放资源,比如:I/O 缓冲区,数据库连接。
47. 异常处理完成以后Exception 对象会发生什么变化**?
Exception 对象会在下一个垃圾回收过程中被回收掉。
48. finally 代码块和 finalize()**方法有什么区别**?
无论是否抛出异常,finally 代码块都会执行,它主要是用来释放应用占用的资源。 finalize()方法是 Object 类的一个 protected 方法,它是在对象被垃圾回收之前由 Java 虚拟机来调用的。

Java 小应用程序(Applet)

49. 什么是 Applet?
java applet 是能够被包含在 HTML 页面中并且能被启用了 java 的客户端浏览器执行的程序。Applet 主要用来创建动态交互的 web 应用程序。
50. 解****一下 Applet 的生命周期
applet 可以经历下面的状态:
Init:每次被载入的时候都会被初始化。
Start:开始执行 applet。
Stop:结束执行 applet。
Destroy:卸载 applet 之前,做最后的清理工作。
51. 当 applet 被**入的候会生什么
首先,创建 applet 控制类的实例,然后初始化 applet,最后开始运行。
52. Applet 和普通的 Java 用程序有什么区**?
applet 是运行在启用了 java 的浏览器中,Java 应用程序是可以在浏览器之外运行的独立的Java 程序。但是,它们都需要有 Java 虚拟机。
进一步来说,Java 应用程序需要一个有特定方法签名的 main 函数来开始执行。 Java applet 不需要这样的函数来开始执行。
最后,Java applet 一般会使用很严格的安全策略,Java 应用一般使用比较宽松的安全策略。
53. Java applet 有哪些限制条件?
主要是由于安全的原因,给 applet 施加了以下的限制:
applet 不能够载入类库或者定义本地方法。 applet 不能在
宿主机上读写文件。applet 不能读取特定的系统属性。
applet 不能发起网络连接,除非是跟宿主机。
applet 不能够开启宿主机上其他任何的程序。
54. 什么是不受信任的 applet?
不受信任的 applet 是不能访问或是执行本地系统文件的 Java applet,默认情况下,所有下载的 applet 都是不受信任的。
55. 从网**上加**的 applet 和从本地文件系****的 applet 有什么区****?
当 applet 是从网络上加载的时候,applet 是由 applet 类加载器载入的,它受 applet 安全管 理器的限制。
当 applet 是从客户端的本地磁盘载入的时候,applet 是由文件系统加载器载入的。
从文件系统载入的 applet 允许在客户端读文件,写文件,加载类库,并且也允许执行其他程序,但是,却通不过字节码校验。
56. applet 类**器是什么**? 它会做哪些工作?
当 applet 是从网络上加载的时候,它是由 applet 类加载器载入的。类加载器有自己的 java名称空间等级结构。类加载器会保证来自文件系统的类有唯一的名称空间,来自网络资源的 类有唯一的名称空间。
当浏览器通过网络载入 applet 的时候, applet 的类被放置于和 applet 的源相关联的私有的名 称空间中。然后,那些被类加载器载入进来的类都是通过了验证器验证的。验证器会检查类 文件格式是否遵守
Java 语言规范,确保不会出现堆栈溢出(stack overflow) 或者下溢(underflow),传递给字节码指令的参数是正确的。
57. applet 安全管理器是什么? 它会做哪些工作?
applet 安全管理器是给 applet 施加限制条件的一种机制。浏览器可以只有一个安全管理器。安全管理器在启动的时候被创建,之后不能被替换覆盖或者是扩展。

Swing

58. 弹**出式选择(Choice)和列表(List)有什么区
Choice 是以一种紧凑的形式展示的,需要下拉才能看到所有的选项。 Choice 中一次只能选中
一个选项。 List 同时可以有多个元素可见,支持选中一个或者多个元素。
59. 什么是布局管理器?
布局管理器用来在容器中组织组件。
60. 滚动(Scrollbar)滚动面板(JScrollPane)有什么区**?
Scrollbar 是一个组件,不是容器。而 ScrollPane 是容器。 ScrollPane 自己处理滚动事件。
61. 哪些 Swing 的方法是**线程安全的
只有 3 个线程安全的方法: repaint(), revalidate(), and invalidate()。
62. 出三种支持重(painting)件。
Canvas, Frame, Panel,和 Applet 支持重绘。
63. 什么是裁剪(clipping)?
限制在一个给定的区域或者形状的绘图操作就做裁剪。
64. MenuItem 和 CheckboxMenuItem 的区是什么**?
CheckboxMenuItem 类继承自 MenuItem 类,支持菜单选项可以选中或者不选中。

65. 边缘**布局(BorderLayout)里面的元素是如何布局的?
BorderLayout 里面的元素是按照容器的东西南北中进行布局的。
66. 网格包布局(GridBagLayout)里面的元素是如何布局的?
GridBagLayout 里面的元素是按照网格进行布局的。不同大小的元素可能会占据网格的多于 1 行或一列。因此,行数和列数可以有不同的大小。
67. Window 和 Frame 有什么区
Frame 类继承了 Window 类,它定义了一个可以有菜单栏的主应用窗口。
68. 裁剪(clipping)和重(repainting)有什么
当窗口被 AWT 重绘线程进行重绘的时候,它会把裁剪区域设置成需要重绘的窗口的区域。
69. 事件听器接口(event-listener interface)和事件适配器(event-adapter)有什么关系?
事件监听器接口定义了对特定的事件,事件处理器必须要实现的方法。事件适配器给事件监听器接口提供了默认的实现。
70. GUI 件如何来理它自己的事件?**
GUI 组件可以处理它自己的事件,只要它实现相对应的事件监听器接口,并且把自己作为事件监听器。

71. Java 的布局管理器比**传统的窗口系有哪些优势**?
Java 使用布局管理器以一种一致的方式在所有的窗口平台上摆放组件。因为布局管理器不会
和组件的绝对大小和位置相绑定,所以他们能够适应跨窗口系统的特定平台的不同。
72. Java Swing 组**件使用了哪种设计模式**?
Java 中的 Swing 组件使用了 MVC(视图-模型-控制器)设计模式。

发表评论

表情:
评论列表 (有 0 条评论,243人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Netty经典高频面试

    关于Netty这部分,如果面试被问到,那就有点难度了,不过一些基础的知识还是可以掌握一下的,如果自己做的项目里牵涉到了Netty相关的知识,那你就一定要好好准备了