一、五道面试题 ?? ?1、什么是JDBC,在什么时候会用到它?、 ?? ??? ?JDBC的全称是:Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同数据库变得更加简单。 ?? ?2、JDBC访问数据库的基本步骤是什么? ?? ??? ?(1)加载数据库驱动(到JVM)。 ?? ??? ?(2)建立数据库连接。 ?? ??? ?(3)创建数据库操作对象。 ?? ??? ?(4)定义操作的SQL语句。 ?? ??? ?(5)执行数据库操作。 ?? ??? ?(6)获取并操作结果集。 ?? ??? ?(7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接) ?? ?3、execute,executeQuery,executeUpdate的区别是什么? ?? ??? ?(1)Statement的execute(String query)方法用来执行任意的SQL查询,如果查询结果是一个Resultset,这个方法返回true。如果结果不是Resultset,比如insert或update查询,就会返回false。 ?? ??? ?(2)Statement的executeQuery(Strign query)接口用来执行select查询语句,并且返回ResultSet。即使查询不到记录返回的ResultSet,比如insert或update查询,就返回false。、 ?? ??? ?(3)Statement的executeUpdate(Strign query)方法用来执行insert或update/delete(DML)语句。 ?? ??? ?只有当你不确定是什么语句的时候,才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。 ?? ?4、JDBC的PreparedStatement是什么? ?? ??? ?PreparedStatement对象代表的是一个预编译的SQL语句。用它提供的setter方法可以传入查询的变量。由于PreparedStatement是预编译的,通过它可以将对应的SQL语句高效的执行多次。由于PreparedStatement自动对特殊字符转 ? ? ? 义,避免了SQL注入攻击,因此应当尽量的使用它。 ?? ?5、.相对于Statement,PreparedStatement的优点是什么? ?? ??? ?1、PreparedStatement有助于防止SQL注入,因为它会自动对特殊字符转义。 ? ?? ?? ??? ?2、PreparedStatement可以用来进行动态查询。 ?? ??? ?3、PreparedStatement执行更快。尤其当你重用它或者使用它的拼量查询接口执行多条语句时。 ?? ??? ?4、使用PreparedStatement的setter方法更容易写出面向对象的代码,而Statement的话,我们得拼接字符串来生成查询语句。如果参数太多了,字符串拼接看起来会非常丑陋并且容易出错。 二、Java方法 ?? ?1、什么是方法: ?? ??? ?方法相当于行为。 ?? ?2、如果方法具有返回值,方法必须使用关键字return返回该值,如果方法没有返回值,返回类型void。 ?? ?3、方法的调用:对象名.方法名()。如果是静态:类名.方法名()。 ?? ?4、方法的重载:方法名相同,方法的参数类型和个数不同的叫方法的重载。 ?? ?5、静态方法不能访问非静态方法(static)。 ?? ?6、返回值只能返回一个值。 ?? ?7、方法里不能定义方法,方法里可以调用方法。 ?? ?8、局部变量和成员变量: ?? ??? ?(1)变量声明的位置决定变量作用域。 ?? ??? ?(2)变量作用域确定可在程序中按变量名访问该变量的区域。 ?? ??? ?局部变量和成员变量的区别: ?? ??? ??? ?作用域不同:(1)局部变量的作用域仅限于定义它的方法。(2)成员变量的作用域在整个类内部都是可见的。 ?? ??? ??? ?初始值不同:(1)Java会给成员变量一个初始值。(2)Java不会给聚币变量赋予初始值。 ?? ??? ?注:在同一个方法中国,不允许有同名局部变量;在不同的方法中,可以有同名局部变量。两类变量同名时,局部变量具有更高的优先级。 三、类、对象 ?? ?1、什么是类什么是对象: ?? ??? ?类是对象的抽象,对象是类的具体。 ?? ?2、对象的创建:使用关键字new来创建;(Person p = new Person())。 ?? ?3、static:如果一个成员声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。static成员最常见的例子是main(),因为任何程序开始执行时必须调用main(),所以它被声明为static。声明为static的方法有一下几条限制:(1)它们仅能调用其他的static方法。(2)它们只能访问static方法。(3)它们不能以任何方式引用this或super。 ?? ?4、什么是构造方法: ?? ??? ?方法名与类名相同,没有返回值的方法。 ?? ?5、当类中有有参的构造方法Java的虚拟机就不会再造一个无参的构造方法。 四、逻辑思维: ?? ?1、有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐 分成50、90克各一份?? ?? ?2、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和 两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?? ?? ?3、对一批编号为1~100 全部开关朝上开的灯进行以下操作凡是1 的倍数反方向拨一次开关2 的倍数反方向又拨一次开关3 的倍数反方向 又拨一次开关。?问最后为关熄状态的灯的编号。 ?? ?
|