Java面试题讲诉.doc
文本预览下载声明
运行时异常与一般异常有何异同?
解答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常 操作中可能遇 到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发 生的非运行时异常,但是 并不要求必须声明抛出未被捕获的运行时异常。
类有哪三个基本特性?各特性的优点?
解答:类具有封装性、继承性和多态性。 封装性:类的封装性为类的成员提供公有、 缺省、保护和私有等多级访问权限,目的是隐藏类中的私 有变量和类中方法的实现细节。继 承性:类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动 拥有 被继承类(父类)的全部可继承的成员。 多态性:类的多态性提供类中方法执行的多 样性,多态性有两种表现形式:重载和覆盖。
简单说明什么是递归?什么情况会使用?并使用 java 实现一个简单的递归程序。
解答: 1)递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中 直接或间接调 用自身而产生的重入现象。 48 / 237 2)递归算法一般用于解决三类问题: a.数据的定义是按递归定义的。(Fibonacci(斐波那契)函数) b.问题解法按递归算法实现。(回溯) c.数据的结构形式是按递归定义的。(树的遍历,图的搜索) 3)这是一个排列的例子,它所做的工作是将输入的一个字符串中的所有元素进行排序 并输出,例如: 你给出的参数是abc 则程序会输出:abc acb bac bca cab cba a.算法的出口在于:low=high也就是现在给出的排列元素只有一个时。 b.算法的逼近过程:先确定排列的第一位元素,也就是循环中i所代表的元素, 然 后low+1开始减少排列元素,如此下去,直到low=high
public class Foo {
public static void main(String[] args) {
permute(abc);
}
public static void permute(String str) {
char[] strArray = str.toCharArray();
permute(strArray, 0, strArray.length - 1);
}
public static void permute(char[] list, int low, int high) {
int i; if (low == high) {
String cout = ;
for (i = 0; i = high; i++) cout += list[i];
System.out.println(cout);
} else {
for (i = low; i = high; i++) {
char temp = list[low]; list[low] = list[i];
list[i] = temp; permute(list, low + 1, high);
temp = list[low]; list[low] = list[i]; list[i] = temp;
}
}
}
}
列出自己常用的 jdk 包.
解答:JDK 常用的 package java.lang: 这个是系统的基础类,比如 String 等都是这里面的,这个 package 是唯一 一个可以不 用 import 就可以使用的 Package。 java.io: 这里面是所有输入输出有关的类,比如文件操作等 java.net: 这里面是与网络有关的类,比如 URL,URLConnection 等。 java.util : 这个是系统辅助类,特别是集合类 Collection,List,Map 等。 java.sql: 这个是数据库操作的类,Connection, Statememt,ResultSet 等
列出自己常用的 jdk 中的数据结构
解答:线性表,链表,哈希表是常用的数据结构。
abstract class 和 interface 有什么区别?
解答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建 一个体现 某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能 创建 abstract 类的 实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体 子类的一个实例。不能有抽象 构造函数或抽象静态方法。Abstract 类的子类为它们父类中 的所有抽象方法提供实现,否则它们也 是抽象类。取而代之,在子类中实现该方法。知道 其行为的其它类可以在类中实现这些方法。接口(in
显示全部