java的笔试题(java笔试题目及答案分析)
本文分享给大家的是:
以下整理了一套Java常用的笔试题,选择题50道,简答题5道,试试你能做对多少题吧,含答案选择题(共50题,每题1.5分,共75分多选题选不全或选错都不得分)1. 以下属于面向对象的特征的是(C,D)(两项)。
A) 重载B) 重写C) 封装D) 继承2. 以下代码运行输出是(C)public class Person{ private String name=”Person”; int age=0;
}public class Child extends Person{ public String grade; public static void m引流seoain(String[] args){
Person p = new Child(); System.out.println(p.name); }}A) 输出:PersonB) 没有输出C) 编译出错D) 运行出错
3. 在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行
C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境引流seo中使用,包括static方法和static语句块4. 以下对封装的描述正确的是(D)
A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
5. 以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6. 以下程序的运行结果是(D)
class Person{ public Per引流seoson(){ System.out.println(“this is a Person”); }}public class Teacher extends Person{
private String name=”tom”; public Teacher(){ System.out.println(“this is a teacher”); super();
} public static void main(String[] args){ Teacher teacher = new Teacher(); Sy引流seostem.out.println(this.name);
}}A) this is a Person this is a teacher tomB) this is a teacher this is a Person tomC) 运行出错
D) 编译有两处错误7. 以下说法错误的是()A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性
D) this和super关键字可以出现在同一个构造函数中8. 以下关于final关键字说法错误的是(A,C)(两项)A) final是引流seojava中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承
C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9. 访问修饰符作用范围由大到小是(D)A) private-default-protected-publicB) public-default-protected-private
C) private-protected-default-publicD) public-protected-default-private10. 以下(D)不是Object类的方法A) clone()
B) finalize()C) toStrin引流seog()D) hasNext()11. 多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12. 以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部
B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13. 以下(D)添加到ComputerBook中不会出错class Book{ protected int getPrice(){
return 30; }}public class ComputerBook extends Book{}A) protected float getPrice(){}B) pro引流seotected int getPrice(int page){}
C) int getPrice(){}D) public int getPrice(){return 10;}14. 以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法
C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15. 以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰
D) 接口不允许多继承16. 以下代码,描述正确的有(A)interfa引流seoce IDemo{ public static final String name; 1 void print(); 2
public void getInfo(); 3}abstract class Person implements IDemo{ 4 public void print(){ }
}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17. 接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数
B) 接口没有构造函数C) 抽象类不允许多引流seo继承D) 接口中的方法可以有方法体18. 以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量
D) abstract修饰的类,其子类也可以是abstract修饰的19. 以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写
20. 以下程序运行结果是(A)public class Test extends Father{ private String name=”test”; public static voi引流seod main(String[] args){
Test test = new Test(); System.out.println(test.getName()); }}class Father{ private String name=”father”;
public String getName() { return name; }}A) fatherB) testC) 编译出错D) 运行出错,无输出21. 以下对异常的描述不正确的有(C)
A) 异常分为Error和ExceptionB) Throwable是所有异常类的父类C) Exception引流seo是所有异常类父类D) Exception包括RuntimeException和RuntimeException之外的异常
22. 在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catchB) tryC) throwsD) throw23. 下面代码运行结果是(B)public class Demo{
public int add(int a,int b){ try{ return a+b; }catch(Exception e){ System.out.println(“ca引流seotch 语句块”);
}finally{ System.out.println(“finally 语句块”); } return 0; } public static void main(String[] args){
Demo demo = new Demo(); System.out.println(“和是:”+demo.add(9,34)); }}A) 编译异常B) finally语句块 和是:43
C) 和是:43 finally语句块D) catch语句块 和是:4324. 以下描述不正确的有(D)A) tr引流seoy块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略
25. 以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义
26. 以下程序运行结果是(D)public class Test { public int div(int a, int b) { try { return a / b;
}catch(Exce引流seoption e){ System.out.println(“Exception”); }catch(NullPointerException e){
System.out.println(“ArithmeticException”); } catch (ArithmeticException e) {
System.out.println(“ArithmeticException”); } finally { System.out.println(“finally”);
} return引流seo 0; } public static void main(String[] args) { Test demo = new Test();
System.out.println(“商是:” + demo.div(9, 0)); }}A) Exception finally 商是:0B) ArithmeticException finally 商是:0
C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于引流seoTCP
28. 在Java中,下面对于构造函数的描述正确的是(D)(选择一项)A) 类必须显示定义构造函数B) 构造函数的返回类型是voidC) 构造函数和类有相同的名称,并且不能带任何参数D) 一个类可以定义多个构造函数。
29. 根据下面的代码,String s = null;会抛出NullPointerException异常的有(A,C)[两项]A) if( (s!=null) & (s.length()>0) )B) if( (s!=null) & & (s.length()>0) )
C) if( (s==null) | (s.length()==0) )D) if( (s==null) 引流seo|| (s.length()==0) )30. .在Java中,关于HashMap类的描述,以下廉洁错误的是( B )。
A) HashMap使用键/值得形式保存数据B) HashMap 能够保证其中元素的顺序C) HashMap允许将null用作键D) HashMap允许将null用作值31. 下列选项中关于java中super关键字的说法错误的是( B )
A) super关键字是在子类对象内部指代其父类对象的引用B) super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C) 子类可以通过super关键字调用父类的方法D) 子类可以通过super关键字调用父类的属性
32. 在Jav引流seoa中,以下代码( A )正确地创建了一个InputStreamReader对象A) InuptStreamReader(new FileInputStream(“1.dat”));B) InuptStreamReader(new FileReader(“1.dat”));。
C) InuptStreamReader(new BufferReader(“1.dat”));D) InuptStreamReader (“1.dat”);33. 在Java中,( D )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。
A) FileInputStreamB) FileReaderC) FileW引流seoriterD) File34. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是(C)(选择一项)
A) ArrayList和LinkedList均实现了List接口B) ArrayList的访问速度比LinkedList快C) 添加和删除元素时,ArrayList的表现更佳D) HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
35. 在Java中开发JDBC应用程序时,使用DriverManager类的getConnection()方法建立与数据源的连接语句为:Connection con = D引流seoriverManager.getConnection(“jdbc:odbc:news”);
URL连接中的“news”表示的是(C)(选择一项)A) 数据库中表的名称B) 数据库服务器的机器名C) 数据源的名称D) 用户名36. 在Java中,JDBCAPI定义了一组用于与数据库进行通信的接口和类,它们包括在(B)包中。
A) java.langB) java.sqlC) java.utilD) java.math37. Java中,以下( B )接口以键_值对的方式存储对象A) java.util.Collection。
B) java.util.MapC) java.util.ListD) ja引流seova.util.Set38. 以下关于对象序列化描述正确的是( C,D )[两项]A) 使用FileOutputStream可以将对象进行传输
B) 使用PrintWriter可以将对象进行传输C) 使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取D) 对象序列化的所属类需要实现Serializable接口
39. 在Java中,( A )类可用于创建链表数据结构的对象A) LinkedListB) ArrayListC) CollectionD) HashMap40. 分析下面这段Java代码,它的运行结果是( C )。
import j引流seoava.io.*;public class B{ public static void main(string [] args){ int i=12; System.out.println(i+=i-=i*=i);
}}A) 100B) 0C) -120D) 程序无法编译41. 使用JDBC事务的步骤是(C,A,B,D)(多选)A) 取消Connection的事务自动提交方式B) 发生异常回滚事务C) 获取Connection对象
D) 操作完毕提交事务42. 以下对JDBC事务描述错误的是( B )A) JDBC事务属于JAVA事务的一种B) JDBC事务属于容引流seo器事务类型C) JDBC事务可以保证操作的完整性和一致性D) JDBC事务是由Connection发起的,并由Connection控制
43. 要通过可滚动的结果集更新数据,以下正确的是(AA) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
B) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY)C) pst=con.prepareStat引流seoement(sql, Resu ltSet.TYPE_SCROLL_SENSITIVE)
D) pst=con.prepareStatement(sql, ResultSet.CONCUR_UPDATABLE)44. 存储过程pro有两个参数,第一个为输入参数,第二个为输出参数,以下代码正确的是(C)
A) CallableStatement cst=con.prepareCall(“(call pro(?,?))”);B) CallableStatement cst=con.prepareCall(“(call pro(?))”);
C) CallableStatement cst=con.pre引流seopareCall(“{call pro(?,?)}”);D) CallableStatement cst=con.prepareCall(“{call pro(?,?,?)}”);
45. 以下描述正确的是(B)A) CallableStatement是PreparedStatement的父接口B) PreparedStatement是CallableStatement的父接口C) CallableStatement是Statement的子接口
D) PreparedStatement是Statement的父接口46. 要删除book表中书籍(bookName)是”java”的记录,以下代码正确的引流seo是(A)String sql=”delete from book where bookName=?”;
PreparedStatement pst=con.preparedStatement(sql);______________________________pst.execute();A) pst.setString(1,”java”);
B) pst.setString(0,”java”);C) pst.setInt(0,”java”);D) 以上选项都不正确47. 获取ResutlSet对象rst的第一行数据,以下正确的是(B)A) rst.hashNext();
B) rst.next()引流seo;C) rst.first();D) rst.nextRow();48. 以下可以正确获取结果集的有(AD)(多选)A) Statement sta=con.createStatement();
ResultSet rst=sta.executeQuery(“select * from book”);B) Statement sta=con.createStatement(“select * from book”);
ResultSet rst=sta.executeQuery();C) PreparedStatement pst=con.preparedStatement();ResultSet引流seo rst=pst.executeQuery(“select * from book”);
D) PreparedStatement pst=con.preparedStatement(“select * from book”);ResultSet rst=pst.executeQuery();
49. 以下负责建立与数据库连接的是(D)A) StatementB) PreparedStatementC) ResultSetD) DriverManager50. 使用JDBC连接数据库的顺序是(B,A,D,C,E)(多选)
A) 加载驱动B) 导入驱动包C) 发送并处理SQL语句D) 建立于数据库的连引流seo接E 关闭连接二、简答题(各5分,共25分)1、在java中如果声明一个类为final,表示什么意思? (不计分)答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。
1、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的 2、请讲述String 和StringBuffer的区别 答:String 类所定义的对象是用于存放”长度固定”的字符串。
StringBuffer类所定义的对象是用于存放”长度可变动”的字符串 3、如果有两个类A、B(注意不是接口),你想同时使用这两个引流seo类的功能,那么你会如何编写这个C类呢? 答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。
假如A为B的父类,B为C的父类,此时C就能实现A、B的功能 4、分析sleep()和wait()方法的区别 答: sleep睡眠的意思 : sleep() 方法用来暂时中止执行的线程在睡眠后,线程将进入就绪状态。
wait等待的意思: 如果调用了 wait() 方法,线程将处于等待状态用于在两个或多个线程并发运行时 5、谈谈你对抽象类和接口的理解 答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类引流seo不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。
他使用extends来继承 接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量其实现方式是interface来实现。
主讲课程:学士后java 学士后网络营销 .NET课程 办公软件引流seo课程网址:m.xsh-gz.com 联系人:殷老师咨询电话:18406601664咨询QQ:2901568457