115个java面试题和答案终极列表_115个Java面试题和答案——终极列表(下)

41528d3028836879cd698677c3999917.gif115个Java面试题和答案——终极列表(下)

115个Java面试题和答案——终极列表(下) 本文由 ImportNew - miracle1919 翻译自 javacodegeeks。欢迎加入Java小组。转载请参见文章末尾的要求。 第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。 异常处理 Java小应用程序(Applet) Swing JDBC 远程方法调用(RMI) Servlet JSP 异常处理 43.Java中的两种异常类型是什么?他们有什么区别? Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。这里有Java异常处理的一些小建议。 44.Java中Exception和Error有什么区别? Exception和Error都是Throwable的子类。Exception用于用户程序可以捕获的异常情况。Error定义了不期望被用户程序捕获的异常。 45.throw和throws有什么区别? throw关键字用来在程序中明确的抛出异常,相反,throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。 45.异常处理的时候,finally代码块的重要性是什么?(译者注:作者标题的序号弄错了) 无论是否抛出异常,finally代码块总是会被执行。就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行。最后要说的是,finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接。 46.异常处理完成以后,Exception对象会发生什么变化? Exception对象会在下一个垃圾回收过程中被回收掉。 47.finally代码块和finalize()方法有什么区别? 无论是否抛出异常,finally代码块都会执行,它主要是用来释放应用占用的资源。finalize()方法是Object类的一个protected方法,它是在对象被垃圾回收之前由Java虚拟机来调用的。 Java小应用程序(Applet) 48.什么是Applet? java applet是能够被包含在HTML页面中并且能被启用了java的客户端浏览器执行的程序。Applet主要用来创建动态交互的web应用程序。 49.解释一下Applet的生命周期 applet可以经历下面的状态: Init:每次被载入的时候都会被初始化。 Start:开始执行applet。 Stop:结束执行applet。 Destroy:卸载applet之前,做最后的清理工作。 50.当applet被载入的时候会发生什么? 首先,创建applet控制类的实例,然后初始化applet,最后开始运行。 51.Applet和普通的Java应用程序有什么区别? applet是运行在启用了java的浏览器中,Java应用程序是可以在浏览器之外运行的独立的Java程序。但是,它们都需要有Java虚拟机。 进一步来说,Java应用程序需要一个有特定方法签名的main函数来开始执行。Java applet不需要这样的函数来开始执行。 最后,Java applet一般会使用很严格的安全策略,Java应用一般使用比较宽松的安全策略。 52.Java applet有哪些限制条件? 主要是由于安全的原因,给applet施加了以下的限制: applet不能够载入类库或者定义本地方法。 applet不能在宿主机上读写文件。 applet不能读取特定的系统属性。 applet不能发起网络连接,除非是跟宿主机。 applet不能够开启宿主机上其他任何的程序。 53.什么是不受信任的applet? 不受信任的applet是不能访问或是执行本地系统文件的Java applet,默认情况下,所有下载的applet都是不受信任的。 54.从网络上加载的applet和从本地文件系统加载的applet有什么区别? 当applet是从网络上加载的时候,applet是由applet类加载器载入的,它受applet安全管理器的限制。 当applet是从客户端的本地磁盘载入的时候,applet是由文件系统加载器载入的。 从文件系统载入的applet允许在客户端读文件,写文件,加载类库,并且也允许执行其他程序,但是,却通不过字节码校验。 55.applet类加载器是什么?它会做哪些工作? 当applet是从网络上加载的时候,它是由applet类加载器载入的。类加载器有自己的java名称空间等级结构。类加载器会保证来自文件系统的类有唯一的名称空间,来自网络资源的类有唯一的名称空间。 当浏览器通过网络载入applet的时候,applet的类被放置于和applet的源相关联的私有的名称空间中。然后,那些被类加载器载入进来的类都是通过了验证器验证的。验证器会检查类文件格式是否遵守Java语言规范,确保不会出现堆栈溢出(stack overflow)或者下溢(underflow),传递给字节码指令的参数是正确的。 56.applet安全管理器是什么?它会做哪些工作? applet安全管理器是给applet施加限制条件的一种机制。浏览器可以只有一个安全管理器。安全管理器在启动的时候被创建,之后不能被替换覆盖或者是扩展。 Swing 57.弹出式选择菜单(Choice)和列表(List)有什么区别 Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项。Choice中一次只能选中一个选项。List同时可以有多个元素可见,支持选中一个或者多个元素。 58.什么是布局管理器? 布局管理器用来在容器中组织组件。 59.滚动条(Scrollbar)和滚动面板(JScrollPane)有什么区别? Scrollbar是一个组件,不是容器。而ScrollPane是容器。ScrollPane自己处理滚动事件。 60.哪些Swing的方法是线程安全的? 只有3个线程安全的方法: repaint(), ridate(), and invalidate()。 61.说出三种支持重绘(painting)的组件。 Canvas, Frame, Panel,和Applet支持重绘。 62.什么是裁剪(clipping)? 限制在一个给定的区域或者形状的绘图操作就做裁剪。 63.MenuItem和CheckboxMenuItem的区别是什么? CheckboxMenuItem类继承自MenuItem类,支持菜单选项可以选中或者不选中。 64.边缘布局(BorderLayout)里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值