Java简答题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java简答题

1.谈谈final,finally,finalize的区别。(必考题目)

答:final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

f inally—再异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

2.解释什么是线程同步,有哪些方式可以实现线程同步?(必考题目)

答:线程同步就是指多个操作在同一个时间段内只能有一个线程进行,其他线程要等待此线程完成之后才可以继续执行。线程同步有两种实现方式:一是同步代码块:即在需要同步的代码块上加上synchronized关键字,二是同步方法:即使用synchronized关键字将一个方法声明成同步方法,此方法用来实现同步。

3.什么是异常?举例说明程序什么时候需要处理异常?处理异常的程序有什么优点?

答:Java中的异常是一个被中断了的正常执行程序流程的错误情况。比如:打开一个不存在的文件、网络连接中断、数组下标越界等。

有处理异常的程序:发生异常,捕获后,可继续执行后面的程序。

无处理异常的程序:发生异常,程序终止。

处理了异常的程序更健壮。

4.抽象类(abstract class)和接口(interface)有什么区别?

答:抽象类:抽象类和抽象方法都用abstract来声明。没有具体实例对象的类,不能用new 来创建对象。可包含常规类所包含的任何东西。抽象类必须由子类继承,且如果abstract类的子类不是抽象类,那么子类必须重写父类中所有的abstract方法。

接口:用interface声明。是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的定义。接口中只能定义抽象方法,而且这些方法默认为是public的。只要类实现了接口,就可以在任何需要该接口的地方使用这个类的对象。接口可以多重实现。

5.什么是事件监听器,主要功能是什么?

答:程序可以使用事件监听器,选择接收事件。将事件监听器添加到事件源中,一旦有事件发生,程序就会调用跟事件源连接的事件监听器的方法。

6.构造方法的作用是什么?它的定义有哪些特点?

答:用来使用new操作符调用其实例化对象(包括分配内存),第一它与类名相同;第二它不允许有返回类型;第三可重载;

7.接口的作用是什么?它包含哪些内容?

答:接口是用来补充java语言无多继承的机制,因而它是实现多继承的一种有效方法,接口的定义应包括两部分内容,一为只读变量部分(标识符常量部分);二为方法原型部分。

8.请说说什么是异常,举例说明三种可能导致异常的情况。

答:异常是一个被中断了的正常执行程序流程的错误情况。可能导致异常的情况如:被0除;访问数组越界;系统资源耗尽。

9.谈谈局部变量、成员变量、实例变量、静态变量之间的联系。

成员变量:类定义时,变量部分所定义的变量;

局部变量:方法体中定义的变量和方法的参数。成员变量在整个类内都有效;

局部变量只在定义它的方法内有效;

局部变量与成员变量名字相同时,则成员变量被隐藏,即在这个方法内暂时失效;

成员变量又分为实例变量和类变量,有static修饰的成员变量为类变量,也叫静态变量,没有static修饰的成员变量为实例变量。

静态变量属于这个类,不属于这个类的某个对象,实例成员由每一个对象个体独有,不同的对象之间,他们的实例成员相互独立,静态变量既可以使用对象访问,也可以使用类名直接访问;

实例成员只能通过对象来访问,不能通过类名访问。

10.如何定义一个抽象类?抽象类的功能是什么?

答:使用abstract关键字定义的类是抽象类,抽象类不能用来实例化对象,只能被用来派生出新的子类,在子类中要实现抽象类中的抽象方法。

相关文档
最新文档