一、面试题
    1、JDBC的ResultSet是什么?
        在查询数据库后返回一个ResultSet,他就像是擦讯结果集的一张数据表。ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中遍历数据表。
    2、java.util.Date和java.sql.Date有什么区别?
        java.util.Date包含日期和时间,java.sql.Date只包含日期信息。如果你想把时间信息储存到数据库里,可以考虑使用Timestamp或者DateTime字段。
    3、说说事务的概念,在JDBC编程中处理事务的步骤。
        事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性(ACID) 属性,只有这样才能成为一个事务 。
        JDBC处理事务有如下操作:
            conn.setAutoComit(false);设置提交方式为手工提交
            conn.commit()提交事务
            conn.rollback(),回滚
            提交与回滚只选择一个执行。正常情况下提交事务,如果出现异常,则回滚。
    4、数据库连接池的原理。为什么要使用连接池。
        数据库连接是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释        放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
    5、什么是JDBC的最佳实践?
        1、数据库资源是非常昂贵的,用完了应该尽快关闭它。Connection,   Statement,    ResultSet等JDBC对象都有close方法,调用它就好了。
        2、养成在代码中显式关闭掉ResultSet,Statement,Connection的习惯,如果你用的是连接池的话,连接用完后会放回池里,但是没有关闭的ResultSet和Statement就会造成资源泄漏了。
二、Java面向对象(抽象、接口)
    首先要了解:抽象类针对的是类,接口针对的是行为。
    1、抽象类:
        抽象类里可以没有抽象方法,但一个类里有一个抽象方法那么这个类一定是抽象类
        一个类继承抽象类那么这个类必须实现这个类的抽象方法,如果这个类没有实现这个类的抽象方法那么这个也是一个抽象类。
        继承实例化对象只能调用父类的属性,如果要使用子类独有的属性,那么就创一个构造方法。
    2、接口:
        概念:标准和规范
        修饰符:public
        接口关键字:interface
        实现接口关键字:implements
        接口里面有常量和未实现的方法。
带着概念去了解接口:比如USB接口,我规范了插口的形状,但是手机厂商想要充电必须使用USB接口,那我USB相当于接口,我标准了接口,规范了接口。其他厂商想用必须规范USB插口,才能使用。这就是接口。