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;处抛出https://www.360docs.net/doc/ed16091947.html,ng.ClassCastException异常,b为Animal 类型,并且具体引用对象是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 main:score = 21

B. 1 add:score=20

2 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 + "," + bStr + "]");

}

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=7

D.以上都不对

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

4.(多选题)请看下列代码,关于运行后的输出结果说法正确的是:()- - - - -AC

1 package util;

2 class Point {}

3 public class Test{

4 public static void main(String[] args) {

5 Point p=new Point();

6 System.out.println(p);

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",s2="tedu";

System.out.println(https://www.360docs.net/doc/ed16091947.html,pareTo(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 compareT o(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 https://www.360docs.net/doc/ed16091947.html, = 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() {

System.out.print("running");

}

public static void main(String[] args) {

Thread t = new Thread(new Threads3());

t.run();

t.run();

t.start();

?} }

?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)</p><p>?public static void main(String args[]) {</p><p>?Thread t = new Thread() {</p><p>?public void run() {</p><p>?pong();</p><p>?}</p><p>?};</p><p>?t.run();</p><p>?System.out.print("ping");</p><p>?}</p><p>?static void pong() {</p><p>?System.out.print("pong");</p><p>}</p><p>?A)pingpong</p><p>?B)pongping</p><p>?C)pingpong和pongping都有可能</p><p>?D)都不输出</p><!--/p15--><!--p16--><p>start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()</p><p>?15.(多选题)下面能让线程停止执行的有(ABD)</p><p>?A)sleep();--------导致此线程暂停执行指定时间;</p><p>?B)stop();---------这个方法将终止所有未结束的方法,包括run 方法;</p><p>?C)notify();</p><p>D)wait();---------当前正在被服务的线程需要睡一会,醒来后继续被服务。</p><p>?16.(多选题)有关线程的哪些叙述是对的(BCD)</p><p>?A)一旦一个线程被创建,它就立即开始运行。</p><p>?B)使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。?C)当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。</p><p>?D)一个线程可能因为不同的原因停止并进入就绪状态。</p><p>异常</p><p>?17.(单选题)getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果(A)</p><p>?public void getCustomerInfo() {</p><p>?try {</p><p>?// do something that may cause an Exception</p><p>?} catch (java.io.FileNotFoundException ex) {</p><p>?System.out.print("FileNotFoundException!");</p><p>?} catch (java.io.IOException ex) {</p><!--/p16--><!--p17--><p>?System.out.print("IOException!");</p><p>?} catch (https://www.360docs.net/doc/ed16091947.html,ng.Exception ex) {</p><p>?System.out.print("Exception!");</p><p>?}</p><p>}</p><p>?A)IOException!找到了相对应的异常类型,就不会再去找父类型的异常Exception了</p><p>?B)IOException!Exception!</p><p>?C)FileNotFoundException!IOException!</p><p>?D)FileNotFoundException!IOException!Exception!</p><p>?7.(多选题)关于异常(Exception),下列描述正确的是(ABC )</p><p>?A)异常的基类为Exception,所有异常都必须直接或者间接继承它</p><p>?B)异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理</p><p>?C)如果某异常继承RuntimeException,则该异常可以不被声明</p><p>?D)异常可以随便处理,而不是抛给外层的程序进行处理</p><p>异常可以在自己方法内部处理,当自己无法解决时,需要抛出给调用者来处理。</p><p>?</p><p>整理</p><p>1. 如果在方法声明时给该方法加锁,只需要使用synchronized关键字来修饰该方法即可,</p><p>不需要传入任何对象,只有在方法内部的某些代码块中才需要传入对象参数。</p><p>2. suspend 可以挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行,用</p><p>resume 是恢复挂起的线程,让这个线程继续执行下去。</p><!--/p17--><!--p18--><p>3.String类中的getBytes()方法的作用是( C ) 将字符串变成字节数组</p><p>4.字符串间不能直接比大小</p><p>5.System.exit()的作用是( b ) 退出当前JVM</p><!--/p18--></div> <div class="pagiv"> </div> <div class="rtopicdocs"> <div class="coltitle">相关主题</div> <div class="relatedtopic"> <div id="tabs-section" class="tabs"> <ul class="tab-head"> </ul> </div> </div> </div> </div> <div id="rightcol" class="viewcol"> <div class="coltitle">相关文档</div> <ul class="lista"> </ul> <div class="coltitle">最新文档</div> <ul class="lista"> <li><a href="/doc/0f19509601.html" target="_blank">幼儿园小班科学《小动物过冬》PPT课件教案</a></li> <li><a href="/doc/0119509602.html" target="_blank">2021年春新青岛版(五四制)科学四年级下册 20.《露和霜》教学课件</a></li> <li><a href="/doc/9b19184372.html" target="_blank">自然教育课件</a></li> <li><a href="/doc/3019258759.html" target="_blank">小学语文优质课火烧云教材分析及课件</a></li> <li><a href="/doc/d819211938.html" target="_blank">(超详)高中语文知识点归纳汇总</a></li> <li><a href="/doc/a419240639.html" target="_blank">高中语文基础知识点总结(5篇)</a></li> <li><a href="/doc/9d19184371.html" target="_blank">高中语文基础知识点总结(最新)</a></li> <li><a href="/doc/8a19195909.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/8519195910.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/7f19336998.html" target="_blank">高中语文基础知识点总结大全</a></li> <li><a href="/doc/7119336999.html" target="_blank">超详细的高中语文知识点归纳</a></li> <li><a href="/doc/6619035160.html" target="_blank">高考语文知识点总结高中</a></li> <li><a href="/doc/6719035161.html" target="_blank">高中语文知识点总结归纳</a></li> <li><a href="/doc/4a19232289.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/3b19258758.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/2619396978.html" target="_blank">高中语文知识点归纳(大全)</a></li> <li><a href="/doc/2b19396979.html" target="_blank">高中语文知识点总结归纳(汇总8篇)</a></li> <li><a href="/doc/1419338136.html" target="_blank">高中语文基础知识点整理</a></li> <li><a href="/doc/ed19066069.html" target="_blank">化工厂应急预案</a></li> <li><a href="/doc/bd19159069.html" target="_blank">化工消防应急预案(精选8篇)</a></li> </ul> </div> </div> <script> var sdocid = "ed89bad5ed3a87c24028915f804d2b160b4e8684"; </script> <div class="clearfloat"></div> <div id="footer"> <div class="ft_info"> <a href="https://beian.miit.gov.cn">闽ICP备16038512号-3</a>&nbsp;<a href="/tousu.html" target="_blank">侵权投诉</a> &nbsp;&copy;2013-2023 360文档中心,www.360docs.net | <a target="_blank" href="/sitemap.html">站点地图</a><br /> 本站资源均为网友上传分享,本站仅负责收集和整理,有任何问题请在对应网页下方投诉通道反馈 </div> <script type="text/javascript">foot()</script> </div> </body> </html>