1,Arraylist和LinkedList的区别
ArrayList、LinkedList、Vector和Stack是List的四个实现类,其中Vector是基于JDK1.0,虽然实现了同步,但是效率低,已经不用了,Stack继承Vector
区别:
- ArrayList是实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构
- 对于随机访问get和set,ArrayList要优于LinkedList,LinkedList不支持高效的随机访问
- ArrayList适合查找,LinkedList适合增删
2,重载和重写的区别?
override(重写)
1.方法名、参数、返回值类型相同。
2.子类方法不能缩小父类方法的访问权限。
3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4.存在于父类和子类之间。
5.方法被定义为final不能被重写。
overload(重载)
1.参数类型、个数、顺序至少有一个不相同。
2.不能重载只有返回值不同的方法名。
3.存在于父类和子类、同类中。
3,&和&&的区别。
&按位与----a&b是把a和b都转换成二进制数然后再进行与的运算
不管前面的条件是否正确,后面都执行
&&逻辑与---a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;(短路功能)
前面条件正确时,才执行后面,不正确时,就不执行,效率高
4,抽象类和接口的区别。
抽象类(abstract class):
1:abstract 关键字修饰,并且没有方法体
2:抽象类不能直接创建实例
3:抽象类只能被继承,一个具体类继承一个抽象类,必须实现所有抽象方法
接口(interface):
1:实现接口的一定要实现接口里定义的所有方法
2:接口可以实现多重继承
区别:
1:抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用
2:一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类
3:接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法
4:抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的
5:抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法
5,JDBC的连接步骤。
1:加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
2:创建连接
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "1111", "1111");
3:创建语句
PreparedStatement ps = con.prepareStatement("select * from user");
4:执行语句
ResultSet rs = ps.executeQuery();
5:处理结果
while(rs.next()) {
rs.get.....(“”);
}
6:关闭资源
finally {
if(con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}