有用的面试题
键字声明,抽象类必须有子类,而且通过对象多态性可以直接为父类对象进行实例化,一个抽象类可以包含任意的东西,包括构造方法、普通方法、抽象方法、属性、全局常量等等,可以包含内部接口或抽象类,模板设计
? 接口:由抽象方法和全局常量组成的特殊类称为接口,接口可以被实现,一个类可以同时实现多个接口,但是一个接口只允许继承其他接口,通过接口可以实现多继承的关系,一个接口中可以包含其他的内部接口或内部类。代理、工厂。
5、请写出异常处理的主要流程。(5)
如果程序中没有任何的异常处理语句,则将交给JVM进行处理,一旦出现了异常之后程序将退出执行
如果程序中存在了异常的处理语句,则出现异常之后,在try中进行捕获,之后与catch中的异常类型进行匹配,如果匹配成功,则可以进行处理
不管如何处理异常,只要是加入了finally关键字,则肯定都要执行此出口。
一旦出现了异常之后,抛出的就是一个异常类的实例化对象。
6、详细解释Java中垃圾收集的主要流程。(5)
垃圾收集主要有两种形式:手工、自动
自动会不定期进行回收,以释放无用的空间
手工调用的是System类中的gc()方法,此方法实际上调用的是Runtime类中的gc()方法,当一个对象被回收之前将调用类中的finlalize()方法,此方法为 Object类所提供,表示对象回收前的收尾工作。即使出现了异常,也不影响程序的执行,而且此方法抛出的是Throwable,表示可能是异常也可能是错误。
编程题
1、编写一个Singleton。(5)
class Singleton{
public static Singleton instance = new Singleton() ;
private Singleton(){}
public static Singleton getInstance(){
return instance ;
}
}
Runtime、Class都采用了此类形式。
2、使用JDBC + Oracle完成一个dept表的查询操作,可以根据关键字显示出全部的查询结果。(10)
import java.sql.* ;
public class JDBC{
public static void main(String args[]) throws Exception {
String sql = "SELECT deptno,dname,loc FROM dept" ;
Class.forName("oracle.jdbc.driver.OracleDriver") ;
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MLDN","scott","tiger") ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
ResultSet rs = pstmt.executeQuery() ;
while(rs.next()){
int deptno = rs.getInt(1) ;
String dname = rs.getString(2) ;
String loc = rs.getString(3) ;
System.out.println(deptno + " --> " + dname + "," + loc) ;
}
rs.close() ;
pstmt.close() ;
conn.close() ;
}
}
3、输入一个email地址,之后使用正则表达式验证该em
ail地址是否正确。(5)
public class JDBC{
public static void main(String args[]) throws Exception {
String str = "aa@http://www.77cn.com.cn"