搜索
您的当前位置:首页正文

JAVA基础和API错题合集

来源:知库网
一 JAVA基础

JAVA

1.(多选题)关于 Java 语言,下列描述正确的是(AD)

A)switch不能够作用在String类型上

B)List, Set, Map都继承自Collection接口-Map没有继承Collection接口; C)Java语言支持goto语句---------------java不支持goto语句 D)GC是垃圾收集器,程序员不用担心内存管理

排序

(单选题)序列[15, 67, 26, 43, 61, 25, 84, 80, 34, 70]进行冒泡排序时,第三趟排序的结果是:(B)。

A.[15, 26, 43, 61, 25, 67, 80, 34, 70, 84] B.[15, 26, 25, 43, 61, 34, 67, 70, 80, 84] C.[15, 26, 43, 25, 61, 67, 34, 70, 80, 84] D.[15, 25, 26, 43, 34, 61, 67, 70, 80, 84]

数组

1、关于数组下列说法错误的是(C)。 A.数组中的每个元素都有相同的类型

B.数组中的元素可以是基本数据类型,也可以是对象 C.一旦数组被声明,大小就不能改变 D.一旦数组被创建,大小就不能改变 2( 多选题)下列说法错误的有( BCD) A)数组是一种对象

B)数组属于一种原生类----------------数组不是原生类 C)int number=[]={31,23,33,43,35,63} D)数组的大小可以任意改变

整理

能存储汉字“达”的是:()。1.int 2.char

字符类型事实上是一个16位无符号整数,这个整数对应字符的Unicode字符集编码。本题中,int类型和char类型都可以存储汉字“达”。

Java Card、Java Me、Java Se、Java EE都属于Java技术体系 Java虚拟机解释执行字节码

Java的类是对具有相同行为对象的一种抽象 Java中的垃圾回收机制是一个系统级的线程

在JDK目录结构中,lib目录下存放的都是库文件,而bin目录下有编译器、解释器和许多工具(如服务器工具、IDL、package工具和jdb等)。 (多选题)下列描述中,哪些符合 Java 语言的特征 支持跨平台(Windows,Linux,Unix等) 提高了代码安全性支持与其它语言书写的程序进行通讯) 没有指针的概念,拥有GC垃圾自动回收机制。

String类型变量取值应为小写null或其他用\"\"双引号括起来的内容 在java中,char是一个无符号16位类型,取值范围为0到65535。 隐式类型转换规则是: byte→short(char)→int→long→float→double

二 面向对象

1.(单选题)关于以下代码描述正确的有( ) public class Cats {

public static void main(String args[]) {

List cats = new ArrayList(); cats.add(new Cat());

Animal b = new Animal();

Cat a = null;

if(b instanceof Animal)

强转成类型为Cat-应该判断b instanceof Cat判断前者是否是后者的一个实例

a = (Cat)b; if(a != null) cats.add(a);

System.out.println(cats.size() +\"cats\"); }

}

class Animal {}

class Cat extends Animal{}

   

A)编译失败 B)输出1 cats C)输出2 cats D)运行时抛出异常

 解析:

a = (Cat)b;处抛出java.lang.ClassCastException异常,b为Animal<p>类型,并且具体引用对象是Animal对象,不能强转成Cat类型。

1 (单选题)请问,以下哪些修饰符不能用于顶层类?(BCD)

A)publicB)privateC)abstractD)final

对于顶层类(外部类)来说,只有两种修饰符:public和默认(default)。 因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。 因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。 但是private可以修饰class的,只不过该类不能使顶层类,可以是内部类 构造方法的作用是在实例化对象的时候给属性成员进行初始化。

A.类中如 果没有显示的给出构造方法,系统会提供一个无参构造方法。 B.构造方法 与类同名,类中可以有和类名相同的方法。 C.constructor 在一个对象被 new 时执行 D.构造方法可以重载。

静态块是类加载的时候就会被执行到的,静态执行顺序是按照在类中出现 的先后顺序执行。 对象是先声明,声明后会在给对象在内存里开辟空间,之后初始化,再进行使用

2.(单选题)关于实例方法和类方法,以下描述正确的是(D)

oA)实例方法只能访问实例变量-------------------------------A 实例方法可以访问类变量; oB)类方法既可以访问类变量,也可以访问实例变量 B 类方法只能访问类变量; oC)类方法只能通过类名来调用-------------------------------C 类方法可以调用静态方法; oD)D实例方法只能通过对象来调用 3.(多选题)下列说法错误的有(ACD)

oA)在类方法中可用 this 来调用本类的类方法A在类方法中不能使用 this 关键字。 oB)在类方法中调用本类的类方法时可直接调用

oC)在类方法中只能调用本类中的类方法C在类方法中可以调用其它类中的类方法。

oD)在类方法中绝对不能调用实例方法---D在类方法中可以通过实例化对象调用实例方法。

程序中的对象是一种数据信息,并非现实中的实际物体

静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静 态变量x, 静态变量可以通过类名调用。

java中,null、true、false都不属于java 的关键字,它们都属于字面量值,都有着特殊的用途,且不建议作为标识符使用。

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 4 (单选题)程序执行的结果是:(D)。 public class Answer {

public static void main(String[] args) { int score = 20;

Answer ans= new Answer(); ans.add(score);

System.out.println(\" main: score = \" + score); }

void add(int score) {

System.out.println(\" add: score=\" + score++); }}

A . 1 add: score=21 2 B. 1 2

main: score = 21 add: score=20 main: score = 21

C. 1 add: score=21

2

main: score = 20

D. 1 add: score=20

2 main: score = 20

形参score在add方法中发生变化时不会影响到main方法中局部变量score的值。 在Java中方法参数传递只有值传递,其特点如下:

1)基本数据类型传递的是值本身。

2)引用数据类型传递也是引用的值,是对象的地址,而不是对象本身。 final修饰局部变量时若是未使用可以不初始化,使用前必须要初始化 java中的局部变量不能加上访问权限修饰符 final关键字的用法如下:

1.final关键字修饰的类不可以被继承。

2.2.final关键字修饰的方法不可以在子类中被重写。

3. 3.final关键字修饰成员变量,意为初始化后不可改变。该成员变量必需在初始化时赋值,对象一旦创建即不可改变。可以在声明时初始化或在构造方法中进行初始化。 不同包子类的关系, 可以访问到父类 B 的 protected 成员 5.(多选题)属性的可见性有(ABD) A)公有的

B)私有的 C)私有保护的

D)保护的

属性的可见性有四种:公有的(public)、保护的(protected)、默认的(default)、私有的(private)

6.(多选题)给定java代码如下所示,在1处新增下列(AC)方法,是对show方法的重载 public class Test{

public void show(int x, int y, int z) { } }

A.public int show(int x,int y,float z){return 0;} B.public int show(int x,int y,int z){return 0;}

C.public void show(int x,int z){} D.public viod show(int z,int y,int x){}

方法的重载必须满足方法名相同和参数不同(类型或个数)

三 API

String

System.out.println(\"\\\\\".length());//1 System.out.println(\"\\633\".length());//2 System.out.println(\"\\63\".length());//1 System.out.println(\"\\6\".length());//1

1(单选题)以下表达式那个是否不合法 String x=\"Hello\";int y=9;if(x==y) { }

因为\"==\"两边的类型不匹配,无法比较,所以此表达式是错误的。 2(单选题)-----------------------------------------D public class Base{ private void test() {

String aStr = \"? One? \"; String bStr = aStr; aStr.toUpperCase(); aStr.trim();

System.out.println(\"[\" + aStr + \}

static public void main(String[] a) { new Base().test(); } }

A)[ONE,?One?] B)[?One?,One] C)[ONE,ONE] D)[?One?,?One?]

对字符串的任何改动都是创建新的对象,只要做出改变后未将其地址赋给原字符串的引用,该引用指向的字符串值不变

File directory = new File(\"d\");如果当前目录下不存在d目录会抛出异常java.io.IOException: 系统找不到指定的路径。

2. 下面程序运行的结果是( C )

String str = “abcdefg”;

str.substring(0,2);-------对字符串的改变就是创建新对象

System.out.println(str);

a) ab

b) abc

c) abcdefg

d) 出现下标越界异常

3.(单选题)以下程序运行结果是:(C) class Demo { int x;

public static void main(String[] args) { Demo d = new Demo();

d.x = 8; -----------------引用地址相同 show(d);

System.out.println(\"x=\"+d.x); }

public static void show(Demo d)

{

d.x = 7;-----------------引用地址相同 }}

A.x=8 B.会出现语法编译错误 C.x=7D.以上都不对

本题考查调用带有引用类型的参数 调用带有引用类型的参数,传递的是对象的引用,方法中操作该参数,操作的 是传递到该方法中的具体对象。

4.(多选题)请看下列代码,关于运行后的输出结果说法正确的是:()- - - - -AC 1 package util; 2 class Point {} 3 public class Test{

4 public static void main(String[] args) { 5 Point p=new Point();

System.out.println(p); 6

System.out.println(p.toString());

7 } 8 }

A.输出结果相同 B.输出结果不同

C.输出结果都是util.Point@hashCode D.其中一个输出结果是Point@hashCode

所有的Java类都继承了Object的toString方法,该方法默认返回的字符串的形式为:类名@ hashCode值,其中类名包括“包名.类”。

Java类可以根据需要重写toString方法以返回更有意义的信息。在输出对象时没有显式调用toString方法,系统也会默认调用toString方法。 5.下面所有描述String类中equals()方法正确的是( d ) a) equals()方式是覆盖Object类中的equals()方法 b) equals()比较字符串中的内容,区分大小写 c) equals()方法的的返回值是布尔类型 d) 以上说法都正确

6.(单选题)下面的程序输出的结果是(-32) // 已知 'T' 的int值为84,'t' 的int值为116 String s1=\"TEDU\

System.out.println(s1.compareTo(s2)); A. 考查compareTo()方法。

7.关于null和””说法正确的是( a b d ) a) null是常量(空常量) b) “”是字符串对象 c) null可以调用方法

d) “”可以调用方法

8.(单选题)下列程序运行结果是(C)。 public class Test {

String str=new String(\"tedu\"); char[]ch={'x','y','z'};

public static void main(String args[]){ Test t = new Test(); t.change(ex.str,ex.ch); System.out.print(t.str+\"and\"); System.out.print(t.ch);}

public void change(String str,char ch[]){

str=\"tarena\";------形参传入在经过改变若最终未对原参数进行赋值覆盖,则原参数不变 ch[0]='w';---------在方法中对数组的改动直接作用于原数组 } }

   

A.tedu and xyz B.tarena and xyz C.tedu and wyz D.tarena and wyz

集合

1.选项中哪个方法不是Collection接口所定义的(C )

A)int size()

B)boolean containsAll(Collection c) C)int compareTo(Object obj) D)boolean equals(Object o);

2.(单选题)下面哪个是链式存储并快速顺序(不需要随机访问)访问的集合类型(B)

A)java.util.LinkedList B)java.util.Queue C)java.util.ArrayList D)java.util.LinearList

请参考集合队列的结构特点及元素的存取

3.(单选题)请看下列代码: 1 public class Emp { 2 private String name; 3 public Emp(String name) { 4 this.name = name; 5 }

6 public int hashCode() { 7 return 520; 8 } 9 }

下列说法正确的是:(D)。

A.由于没有覆盖equals方法,Emp类编译失败

错误,equals是Object类方法,Emp类默认继承Object类的方法,不进行覆盖不会编译失败

B.从HashMap中,删除一个Emp类型Key,那么HashMap中的所有对象将被删除

错误,由于没有覆盖equals方法,不会删除HashMap中的对象

C.向HashMap中放入已存在的name字符序列的Emp对象,将更改对应的value

错误,由于Emp类没有覆盖equals方法,不会认为name字符序列相同的两个Emp对象是同一个对象,因此,会将向HashMap中放入已存在的name字符序列的Emp对象作为新的key存入到Map中.

D.HashMap对象可以包含多个name字符序列相同的Emp对象作为Key

4.(多选题)链表具有的特点是(ACD)

A)不必事先估计存储空间

采用动态存储分配,不会造成内存浪费和溢出。

B)可随机访问任一元素-----不可随机访问 C)插入删除不需要移动元素

插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素

D)所需空间与线性表长度成正比 需要用额外空间存储线性表的关系,存储密度小

5.(单选题)如果要按照特定顺序保存元素,应当使用的容器是(C) A.HashMap B.ArrayList C.TreeSet D.数组 TreeSet保存元素,会以特定的顺序保存元素

7.(单选题)对保存在List中的数据进行查找,方法不正确的是(D)。 A.对元素进行遍历,依次比较

B.对内容有序的List可以进行二分法查找 C.调用indexOf方法查找

D.无论是否有序都可以用二分法查找,比线性查找快很多 二分查找法,必须是对有序的元素。

9.(多选题)关于集合框架,说法正确的是(ABD)。

    

A.与数组不同,集合框架是容量可变的容器

B.集合框架不能保存基本类型,但是可以将它们转换为包装类后保存 C.集合框架中的List, Set, Map接口都是Collection接口的子接口 D.集合类除了提供可变容量的存储外,还提供了对数据的算法

本题考查集合框架 选项C错误,Map接口不是Collection接口的子接口。

I/O流

FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型( )OutputStream

RandomAccessFile是java.io包中的一个兼有输入输出功能的类它继承了Object类,用DataInput和DataOutput接口来实现。。由于它是随机访问,所以文件读写一个记录的位置是任意位置

正则

11.(多选题)腾讯QQ号从10000开始的,下列能正确表示QQ号的正则是(CD)。

A.

^\\d{5,}$-------------5位数,包括0开头,故为错,不能以0开头

 B.

^[1-9][0-9]{4,8}$-------限制总个数不能超过9,故错

 C.

^[1-9]\\d{4,}$

 D.

^[1-9][0-9]{4,}$

线程

11.(多选题)以下集合对象中哪几个是线程安全的(CD)  A)LinkedList  B)ArrayList

 C)Vector------------Vector是线程安全的  D)Hashtable

12.(单选题)请选择正确的一项(B)

public class Threads3 implements Runnable {

    

public void run() { }

public static void main(String[] args) {

Thread t = new Thread(new Threads3()); t.run(); t.run(); t.start(); } }

System.out.print(\"running\");

A)The code executes and prints \"runningrunning\". B)The code executes and prints \"runningrunningrunning\". C)The code executes and prints \"running\". D)An exception is thrown at runtime.

在执行t.start();之前所执行的两个t.run();只是单纯的通过虚拟机进行调用该方法,t.start();执行后会将该线程置于就绪状态,等待系统分配时间片段给该线程去执行线程任务。

      

13.(单选题)代码执行后输出的结果是( ) public class Z{

public static void main(String[] args){ new Z(); } Z(){

Z alias1 = this;

              

Z alias2 = this; synchronized (alias1){ try{

alias2.wait();

System.out.println(\"DONE WAITING\"); } catch (InterruptedException e) { System.out.println(\"IN TEEEUPTED\"); } catch (Exception e) {

System.out.println(\"OTHER EXCEPTION\"); } finally {

System.out.println(\"FINALLY\"); } }

System.out.println(\"ALL DONE\"); }

}

   

A)The application compiles but doesn't print anything. B)The application compiles and print \"DONE WAITING\". C)The application compiles and print \"FINALLY\". D)The application compiles and print \"ALL DONE\".

wait方法和sleep方法很类似,都是处于等待状态,但是不同的是,wait方法执行后会释放锁对象,所以此段代码中wait方法后面的语句不会被执行,而是一直处于

等待状态中。

在主线程中启动新线程后,新线程处于就绪状态,那么新线程对象中的哪个方法被系统执行时,视为已经进入执行新线程的内容( ) public void run()

解析:

线程的执行计划是在run方法中的。<p>           <p>14.(单选题)下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.run();<p>System.out.print(\"ping\"); }<p>static void pong() { System.out.print(\"pong\");<p>}<p>   <p>A)pingpong B)pongping<p>C)pingpong和pongping都有可能 D)都不输出<p>start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()<p>   <p>15.(多选题)下面能让线程停止执行的有(ABD) A)sleep();--------导致此线程暂停执行指定时间;<p>B)stop();---------这个方法将终止所有未结束的方法,包括 run 方法; C)notify();<p>D)wait();---------当前正在被服务的线程需要睡一会,醒来后继续被服务。 16.(多选题)有关线程的哪些叙述是对的(BCD) A)一旦一个线程被创建,它就立即开始运行。<p>B)使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。 C)当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 D)一个线程可能因为不同的原因停止并进入就绪状态。<p>    <p>异常<p><p>17.(单选题)getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如<p>果在该方法运行中产生了一个IOException,将会输出什么结果(A)<p>     <p>public void getCustomerInfo() { try {<p>// do something that may cause an Exception } catch (java.io.FileNotFoundException ex) { System.out.print(\"FileNotFoundException!\"); } catch (java.io.IOException ex) {<p>   <p>System.out.print(\"IOException!\"); } catch (java.lang.Exception ex) { System.out.print(\"Exception!\"); }<p>}<p> A)IOException! 找到了相对应的异常类型,就不会再去找父类型的异常<p>Exception了<p>       <p>B)IOException!Exception!<p>C)FileNotFoundException!IOException!<p>D)FileNotFoundException!IOException!Exception!<p>7.(多选题)关于异常(Exception),下列描述正确的是(ABC ) A)异常的基类为 Exception,所有异常都必须直接或者间接继承它 B)异常可以用 try{ . . .}catch(Exception e){ . . .}来捕获并进行处理 C)如果某异常继承 RuntimeException,则该异常可以不被声明 D)异常可以随便处理,而不是抛给外层的程序进行处理<p>异常可以在自己方法内部处理,当自己无法解决时,需要抛出给调用者来处理。<p><p>整理<p>1. 如果在方法声明时给该方法加锁,只需要使用synchronized关键字来修饰该方法即可,不需要传入任何对象,只有在方法内部的某些代码块中才需要传入对象参数。<p>2. suspend 可以挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行,用 resume 是恢复挂起 的线程,让这个线程继续执行下去。<p>3.String类中的getBytes()方法的作用是( C ) 将字符串变成字节数组 4.字符串间不能直接比大小<p>5.System.exit()的作用是( b ) 退出当前JVM<p> <div class="preview-ft"> <div class="preview-title"> <p style="color: red;"><strong>因篇幅问题不能全部显示,请点此查看更多更全内容</strong></p> <div class="model-fold-cover-bd"><a href="https://www.tang5.com/mluiea/nreixisesug/" target="_blank"><span>查看全文</span><i class="iconfont icon-chakangengduo"></i></a></div> </div> </div> <script type="text/javascript" src="https://jss.zicool.com/pc/wenzhang/detail_left.js"></script> </div> <div class="content_fy"> </div> </div> <script type="text/javascript" src="https://jss.zicool.com/pc/wenzhang/detail_foot.js"></script> <script type="text/javascript" src="https://jss.zicool.com/pc/share_right_gg1.js"></script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/share_right_xgzx.js"></script> <script type="text/javascript" src="https://jss.zicool.com/pc/share_right_gg2.js"></script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/share_right_rmyd.js"></script> </div> <div class="n_right"> <script type="text/javascript" src="https://jss.zicool.com/pc/share_cebian_gg1.js"></script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/share_cebian_rmht.js"></script> <script type="text/javascript" src="https://jss.zicool.com/pc/share_cebian_gg2.js"></script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/share_cebian_rmtw.js"></script> <script type="text/javascript" src="https://jss.zicool.com/pc/share_cebian_gg3.js"></script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/share_cebian_wntj.js"></script> </div> </div> <div class="footer"> Copyright © 2019-<span class="currentYear"></span> zicool.com 版权所有<br> <a href="https://beian.miit.gov.cn/" target="_blank" style="color: #fff">湘ICP备2023022495号-2</a> </div> <script type="text/javascript" src="/zixun/pc/js/jquery-1.8.3.min.js"></script> <script src="/zixun/pc/js/jquery.SuperSlide.2.1.3.js"></script> <a href="#0" class="cd-top">Top</a> <script type="text/javascript" src="https://jss.zicool.com/pc/foot_foot.js"></script> <script type="text/javascript"> jQuery(".focusBox").hover(function () { jQuery(this).find(".prev,.next").stop(true, true).fadeTo("show", 0.2) }, function () { jQuery(this).find(".prev,.next").fadeOut() }); jQuery(".focusBox").slide({mainCell: ".pic", effect: "fold", autoPlay: true, delayTime: 600, trigger: "click"}); </script> <script type="text/javascript"> $(function () { var _line = parseInt($(window).height() / 3); $(window).scroll(function () { if ($(window).scrollTop() > 75) { $('.i_sidemenu').css({'position': 'fixed', 'top': '75px'}) } else { $('.i_sidemenu').css({'position': '', 'top': ''}) } ; }); }); $(function () { var _line = parseInt($(window).height() / 3); $(window).scroll(function () { if ($(window).scrollTop() > 1000) { $('.right_a').css({'position': 'fixed', 'top': '75px'}) } else { $('.right_a').css({'position': '', 'top': ''}) } ; }); }); </script> <script type="text/javascript"> const currentYear = new Date().getFullYear(); $('.currentYear').html(currentYear) </script> <script type="text/javascript" src="https://jss.huatuo6.com/pc/tj_foot.js"></script> </body> </html>