2022年Java面试题 3.pdf

上传人:Che****ry 文档编号:35292992 上传时间:2022-08-21 格式:PDF 页数:16 大小:136.41KB
返回 下载 相关 举报
2022年Java面试题 3.pdf_第1页
第1页 / 共16页
2022年Java面试题 3.pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2022年Java面试题 3.pdf》由会员分享,可在线阅读,更多相关《2022年Java面试题 3.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一选择题1以下属于面向对象的特征的是(C,D)。(两项)A) 重载B) 重写C) 封装D) 继承2以下代码运行输出是(C)publicclass Person private String name = Person; int age = 0; publicclass Child extends Person public String grade; publicstaticvoid main(String args) Person p = new Child(); System.out .println(p.name); A) 输出: Person B) 没有输出C) 编译出错D) 运行出错

2、3在使用super 和 this 关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super ()和 this()不一定要放在构造方法内第一行C) this()和 super ()可以同时出现在一个构造函数中D) this ()和 super ()可以在static 环境中使用,包括static 方法和 static 语句块/ 注意: super 不能用于static 环境下4以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类

3、,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法class Person String name = Person; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页

4、- - - - - - - - - intage = 0; public Person() System.out .println(Person); class Stu extends Person public Stu() System.out .println(stu); publicclass A extends Stu publicstaticvoid main(String args) new A(); 执行结果:Person Stu 6以下程序的运行结果是(D)class Person public Person() System.out .println(this is a Pe

5、rson); publicclass Teacher extends Person private String name = tom; public Teacher() System.out .println(this is a teacher); super(); publicstaticvoid main(String args) Teacher teacher = new Teacher(); System.out .println(this.name); A) this is a Person this is a teacher tom B) this is a teacher th

6、is is a Person tom C) 运行出错名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - D) 编译有两处错误7以下说法错误的是(D)A) super. 方法()可以调用父类的所有非私有方法B) super ()可以调用父类的所有非私有构造函数C) super. 属性可以调用父类的所有非私有属性D) this 和 super 关键字可以出现在同一个构造函数中8以下关于final 关键字说法错误的是(A)A) fina

7、l 是 java 中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final 修饰的类肯定不能被继承C) final 修饰的方法不能被覆写D) final 修饰的变量不允许被再次赋值说明:接口只能用public 和 abstract 修饰,9访问修饰符作用范围由大到小是(D)A) private-default-protected-public B) public-default-protected-private C) private-protected-default-public D) public-protected-default-private 10以下( D)不是 Obje

8、ct 类的方法A) clone ()B) finalize ()C) toString ()D) hasNext ()11多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - 13以下( BD)添加到

9、ComputerBook中不会出错class Book protectedintgetPrice() return 30; publicclassComputerBookextends Book A) protected float getPrice(). B) protectedintgetPrice(int page). C) intgetPrice(). D) publicintgetPrice(). 14以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new 关键字直接实例化15以下对接口描述错误的

10、有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public 、abstract 修饰C) 接口中的属性默认使用public 、static 、final 修饰D) 接口不允许多继承16以下代码,描述正确的有(A)interfaceIDemo publicstaticfinal String name ; 1 void print(); 2 publicvoidgetInfo(); 3 abstractclass Person implementsIDemo 4 publicvoid print() A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,

11、没有实现接口的全部方法D) 第3行错误,没有方法的实现17接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract 修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract 修饰

12、的类,其子类也可以是abstract 修饰的19以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20以下程序运行结果是(A)publicclass Test extends Father private String name = test; publicstaticvoid main(String args) Test test = new Test(); System.out .println(test.getName(); class Father private String name = father

13、; public String getName() returnname ; A) father B) test C) 编译出错D) 运行出错,无输出21以下程序运行结果是(B)publicclass Test extends Father private String name = test; public String getName() returnname ; publicstaticvoid main(String args) Test test = new Test(); System.out .println(test.getName(); class Father privat

14、e String name = father; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - public String getName() returnname ; A) father B) test C) 编译出错D) 运行出错,无输出22以下对异常的描述不正确的有(C)A) 异常分为 Error和Exception B) Throwable 是所有异常类的父类C) Exception 是所有异常类父类D) Except

15、ion 包括 RuntimeException和RuntimeException之外的异常23在 try-catch-finally语句块中,以下可以单独与finally 一起使用的是(B)A) catch B) try C) throws D) throw 24下面代码运行结果是(B)publicclass Demo publicint add(int a, int b) try return a + b; catch (Exception e) System.out .print(catch语句块 ); finally System.out .print(finally语句块 ); ret

16、urn 0; publicstaticvoid main(String args) Demo demo = new Demo(); System.out .print( 和是: + demo.add(9, 34); A)编译异常B) finally 语句块和是: 43 C) 和是: 43 finally 语句块D) catch 语句块和是: 43 25以下描述不正确的有(D)A) try 块不可以省略B)可以使用多重catch 块C) finally 块可以省略名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

17、 - - - - - 第 6 页,共 16 页 - - - - - - - - - D) catch 块和 finally 块可以同时省略26以下程序运行结果是(D)publicclass Test publicint div(int a, int b) try return a / b; catch (Exception e) System.out .println(Exception); catch (NullPointerException e) System.out .println(ArithmeticException); catch (ArithmeticException e)

18、 System.out .println(ArithmeticException); finally System.out .println(finally); return 0; publicstaticvoid main(String args) Test demo = new Test(); System.out .println( 商是: + demo.div(9, 0); A) Exception finally 商是: 0 B) ArithmeticException finally 商是: 0 C) finally 商是: 0 D) 编译报错27. 以下对 TCP和UDP描述正确

19、的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDP D) UDP数据传输效率高于TCP 28. 在 Java中,下面对于构造函数的描述正确的是(D)。A) 类必须显示定义构造函数B) 构造函数的返回类型是void C) 构造函数和类有相同的名称,并且不能带任何参数D) 一个类可以定义多个构造函数29. 根据下面的代码,String s = null; 会抛出 NullPointerException异常的有( A,C)。 两项 A)if (s != null ) & (s.length() 0) B)if (s != null) &

20、(s.length() 0)C)if (s = null ) | (s.length() = 0)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - D) if ( s = null) | (s.length() = 0)30在 Java中,关于 HashMap 类的描述,以下错误的是( B )。A) HashMap 使用键 /值得形式保存数据B) HashMap 能够保证其中元素的顺序C) HashMap 允许将 null 用作

21、键D) HashMap 允许将 null 用作值31. 下列选项中关于java中super 关键字的说法错误的是(B )A) super 关键字是在子类对象内部指代其父类对象的引用B) super 关键字不仅可以指代子类的直接父类,还可以指代父类的父类C) 子类可以通过super 关键字调用父类的方法D) 子类可以通过super 关键字调用父类的属性32. 在 Java中,以下代码 ( A ) 正确地创建了一个InputStreamReader对象。A) InuptStreamReader(new FileInputStream(“ 1.dat” );B) InuptStreamReader(

22、new FileReader(“ 1.dat” );C) InuptStreamReader(new BufferReader(“ 1.dat” );D) InuptStreamReader (“ 1.dat” );33. 在 Java中, ( D )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。A) FileInputStream B) FileReader C) FileWriter D) File 34. Java中的集合类包括ArrayList 、LinkedList 、HashMap 等类,下列关于集合类描述错误的是( C)A) ArrayList 和LinkedList

23、 均实现了 List接口B) ArrayList 的访问速度比 LinkedList 快C)添加和删除元素时,ArrayList 的表现更佳D) HashMap 实现 Map 接口,它允许任何类型的键和值对象,并允许将null 用作键或值35在 Java中,JDBCAPI定义了一组用于与数据库进行通信的接口和类,它们包括在(B)包中。A) java.lang B) java.sql C) java.util D) java.math 36. Java中,以下 ( B )接口以键 _值对的方式存储对象。A) java.util.Collection B) java.util.Map C) jav

24、a.util.List D) java.util.Set 37. 以下关于对象序列化描述正确的是(C,D )两项 A) 使用 FileOutputStream可以将对象进行传输B) 使用 PrintWriter 可以将对象进行传输C) 使用 ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取D) 对象序列化的所属类需要实现Serializable 接口38.在Java中, ( A )类可用于创建链表数据结构的对象。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

25、- - - - - - - 第 8 页,共 16 页 - - - - - - - - - A) LinkedList B) ArrayList C) Collection D) HashMap 39. 使用 JDBC 事务的步骤是(C,A,B,D)(多选)A) 取消 Connection的事务自动提交方式B) 发生异常回滚事务C) 获取 Connection对象D) 操作完毕提交事务40. 要删除 book 表中书籍 (bookName) 是” java”的记录,以下代码正确的是(A) String sql=” delete from book where bookName=?”;Prepar

26、edStatementpst=con.preparedStatement(sql); _ pst.execute(); A) pst.setString(1,” java” );B) pst.setString(0,” java” );C) pst.setInt(0,” java” );D) 以上选项都不正确41. 以下可以正确获取结果集的有(AD)(多选)A) Statement sta=con.createStatement(); ResultSetrst=sta.executeQuery(“ select * from book” );B) Statement sta=con.creat

27、eStatement(“ select * from book” );ResultSetrst=sta.executeQuery(); C) PreparedStatementpst=con.preparedStatement(); ResultSetrst=pst.executeQuery(“ select * from book” );D) PreparedStatementpst=con.preparedStatement(“ select * from book” );ResultSetrst=pst.executeQuery(); 42. 以下负责建立与数据库连接的是(D)A) St

28、atement B) PreparedStatement C) ResultSet D) DriverManager 43. 使用 JDBC 连接数据库的顺序是(B,A,D,C,E)(多选)A) 加载驱动B) 导入驱动包名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - C) 发送并处理SQL语句D) 建立于数据库的连接E)关闭连接1Java 语言是一种面向对象程序设计语言。( 对 ) 2在 Java有布尔类型,该类型只能有两个值

29、:1 和 0。( 错 ) 3Java 中一个类可以同时继承多个其他类,但只能实现一个接口。( 错 ) 4在 Java中字符串的长度和字符串中字符的个数是相等的。( 对 ) 5程序中的异常是错误的一种,通过调试程序可以解决异常。( 错 ) 6使用 Java 语言既可以读写二进制文件,又可以读写文本文件。( 对 ) 7线程就是程序,只不过是代码较少。( 错 ) 二、填空题1、面向对象程序设计所具有的基本特征是: _ 封装性 _,_继承性 _,_多态性2、数组 x 定义如下int x =new int32 则 x.length 的值为 _3_ , x0.length 的值为 _2_ 。3、Java

30、中实现多线程一般使用两种方法,一是_继承 Thread 类_,二是_实现 Runnable 方法_ 4、Java 的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)_FlowLayout_, _GridLayout_ ,_BorderLayout_ ,_CardLayout_ 5字符串分为两大类,一类是字符串常量,使用(String )类的对象表示;另一类是字符串变量,使用()类的对象表示。6 定 义 字 符 串 : String s = abcd;, 则s.charAt(0)的 值 是(a),s.subString(0,3)的值是(“ abc”)

31、 。7类的访问控制符有()和()两种, ()类具有跨包访问性而()类不能被跨包访问。8使用()方法加载和注册驱动程序后,由()类负责管理并跟踪JDBC驱动程序,在数据库和相应驱动程序之间建立连接。9 ()语句只中断所在层循环中的当次循环,()语句只中断某一层的循环。四、阅读程序,回答问题1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - public class Demo public static void main(Str

32、ing args) int a = 5, 9, 6, 8, 7 ; fun(a); print(a); private static void print(int a) for (int i = 0; i a.length; i+) System.out.print(ai + ); System.out.println(); private static void fun(int. arg) int i, j; for (i = 0; i arg.length - 1; i+) int k = i; for (j = i; j arg.length; j+) if (argj StringBu

33、ffer String 使用场景: 1.如果要操作少量的数据用= String 2.单线程操作字符串缓冲区下操作大量数据= StringBuilder 3.多线程操作字符串缓冲区下操作大量数据= StringBuffer 2、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗?静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于该类的对象,必须产生该类对象,才能调用实例变量静态方法及变量属于整个类,数据将会被存储在公共区域,非静态方法及变量属于对象静态方法中无法调用实例变量,而实例方法却可以调用静态变量2、继承和接口是什么?以及他们的区别?1 接口定义一个类需要实现的

34、方法属性索引事件和可能的参数返回值类型,具体的实现交由相应的类或结构,从而实现多态;而继承用于在一个现有父类基础上的功能扩展,把几个类中相同的成员提取出来放在一个父类中,在子类中添加独特的方法即继承扩展2 接口能够实现多接口继承,而继承只能实现单继承3 继承能够获得父类方法的实现,而接口只能获得方法的定义,所以必须获得所有的方法4 在继承中为父类添加方法不影响子类的继承,但在接口中为父类添加一个方法定义必须在子类中添加此方法的实现3、HashMap 和 Hashtable的区别?1,Hashtable 是基于陈旧的Dictionary 类的, HashMap 是 Map 接口的一个实现。2,H

35、ashtable 的方法是同步的,而HashMap 的方法不是3,只有 HashMap 可以让你将空值作为一个表的条目的key 或 value 4、抽象类 (abstract class) 和接口( interface)有什么区别? 声明方法的存在而不去实现它的类被叫做抽象类(abstract class ) ,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实

36、现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法接口( interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, i

37、nstanceof 运算符可以用来决定某对象的类是否实现了接口5、重载( Overload)和重写( Override)的区别。 Overloaded 的方法是否可以改变返回值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - 的类型 ? Overload 是重载,是有相同的方法名,但参数类型或个数彼此不同Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数、类型都与父类中的完全一样,在子类中覆盖掉了父类的改

38、方法。6、你所知道的集合类都有哪几类?主要区别有哪些并简单描述?集合类型主要有3 种: set(集)、list(列表)和map(映射)集 Set 它的对象不按特定方式排序,只是简单的把对象加入集合中对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。列表List List 接口与其实现类是容量可变的列表,可以按照索引访问集合中的元素,是有序的集合列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。常用的有ArrayList vector 映射Map 映射中每个项都是成对的,Map 是把键对象和值对象进行关联的容器。映射中存储的每个对象都有一个相关的关键字(Key)对

39、象,关键字决定了对象在映射中的存储位置,关键字应该是唯一的 ,常用的有HashMap,HashTable 7、线程和进程的区别?实现多线程的方式有哪几种?如何实现多线程同步?区别:线程和进程是不同的,每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程间的变量不能共享;而线程是运行在进程内部的,每个正在运行的进程至少有一个线程,而且不同的线程之间可以在进程范围内共享数据。也就是说进程有自己独立的存储空间,而线程是和它所属的进程内的其他线程共享一个存储空间。实现多线程的方法:1、 继承 java.lang.Thread,并重写它的run()方法,将线程的执行主体放入其中。2、 实现 jav

40、a.lang.Runnable 接口,实现它的run()方法,并将线程的执行主体放入其中。如何实现线程同步:给一个方法增加synchronized 修饰符之后就可以使它成为同步方法,这个方法可以是静态方法和非静态方法,但是不能是抽象类的抽象方法,也不能是接口中的接口方法8、中的异常处理机制的简单和应用。当 Java程序违反了Java的语义规则时, Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括 2 种情况。一种是Java类库内置的语义。例如数组下标越界,会引发 IndexOutOfBoundsException; 访问null 的对象时会引发NullPointerExcepti

41、on 。另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw 关键字引发异常。所有的异常都是java.lang.Thowable 的子类9、线程同步的方法(类里有哪些方法来支持线程同步)。wait(): 使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是静态方法,调用此方法要捕捉InterruptedException异常。notify(): 唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切地唤醒某一个等待状态的线程,而是由JVM 确定唤醒哪个线程,而且不是按优先级。

42、Allnotity(): 唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。10、 Error 与 Exception有什么区别Error 表示系统级的错误和程序不必处理的异常,Exception 表示需要捕捉或者需要程序进行处理的异常。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 11.谈谈 final, finally, finalize的区别。final修饰符 (关键字 )如果一个类被

43、声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract 的,又被声明为final 的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final 的方法也同样只能使用,不能重载。finally异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块(如果有的话 )。finalize方法名。Java 技术允许使用finalize() 方法在垃圾收集器将对象

44、从内存中清除出去之前做必要的清理工作。 这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的编程题1、 编写一个完整的 Java Application 程序。 包含接口 ShapeArea, 类 Circle 、Rectangle 、Test,具体要求如下:接口 ShapeArea:接口方法double getArea():求一个形状的面积double getPerimeter ():求

45、一个形状的周长类 Rectangle :实现 ShapeArea接口,并有以下属性和方法:属性width: double型,表示长方形的宽度height :double 型,表示长方形的长度方法Rectangle(double w, double h):构造函数 t oString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”Test 类作为主类要完成测试功能生成 Rectangle 对象 调用对象的 toString方法,输出对象的描述信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁