java选择题

1.下列类在多重catch中同时出现时,哪一个异常类应最后一个列出()

正确答案: C 你的答案: C (正确)
ArithmeticException
NumberFormatException
Exception
ArrayIndexOutOfBoundException

解析:这是多重catch块的顺序问题,由于异常处理系统就近寻找匹配异常处理程序,应先子类后父类

2.对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()
正确答案: D 你的答案: B (错误)
float
char
short
double

解析:基本数据类型的运算,会自动向上转型。boolean不可以和其他基本数据类型相互转换。
byte->short,char -> int -> long
float -> double
int -> float
long -> double
3.下语句通过算术运算和逻辑运算之后i和 j的结果是( )

int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}

正确答案: D 你的答案: D (正确)
i=0;j=0
i=1;j=1
i=0;j=1
i=1;j=0

解析:++i先自增再运算,i++先运算在自增,所以i=1。||短路前一部分不正确就不会继续执行,所以j=0.
4.下面程序的输出结果为( )

public class Demo {
public static String sRet = “”;
public static void func(int i)
{
try
{
if (i%2==0)
{
throw new Exception();
}
}
catch (Exception e)
{
sRet += “0”;
return;
}
finally
{
sRet += “1”;
}
sRet += “2”;
}
public static void main(String[] args)
{
func(1);
func(2);
System.out.println(sRet);
}
}
正确答案: B 你的答案: B (正确)
120
1201
12012
101

解析:第一步,func(1),if条件不成立,不抛出异常,catch不运行,final运行,拼串得到“1”,程序继续往下走,拼串得到“12”。 第二步,fun(2),if条件成立,抛出异常,catch捕获异常,运行catch里面代码,拼串得到“120”,虽然有return,但是不管出不出异常,final里代码必须执行,执行final,拼串得到“1201”,然后return结束。所以最终结果“1201”。

5.不考虑反射机制,一个子类显式调用父类的构造器必须用super关键字。( )

正确答案: A 你的答案: A (正确)
正确
错误

解析:子类显示调用父类中的构造方法必须使用super关键字;如果子类没有显示调用父类中的构造方法,则系统默认会调用父类中的无参构造方法;若此时父类中没有定义无参构造方法则会报错。

6.如下代码,执行结果为:

def f(x):
if x == 0:
return 0
elif x == 1:
return 1
else:
return (x*f(x-1))
print(f(5))

正确答案: A 你的答案: A (正确)
120
720
24
64

7.Which is the return type of the method main()?
正确答案: B 你的答案: B (正确)
int
void
Boolean
static

解析:主方法是无返回值类型的,所以要用void修饰。

8.一个抽象类并不需要其中所有的方法都是抽象的。( )

正确答案: A 你的答案: A (正确)
正确
错误

解析:1)抽象类可以包括抽象方法和非抽象方法
2)如果类里面有抽象方法的话,那么类一定要声明为抽象的!

9.关于容器下面说法正确的是? ( )

正确答案: D 你的答案: B (错误)
列表(List)和集合(Set)存放的元素都是可重复的。
列表(List)和集合(Set)存放的元素都是不可重复的。
映射(Map)<key,value>中key是可以重复的。
映射(Map)<key,value>中value是可以重复的。

解析:列表(List)的元素是有 序、可重复 的;
集合(Set)的元素是无序、不可重复的。

10.一个类的构造器不能调用这个类中的其他构造器。( )

正确答案: B 你的答案: A (错误)
正确
错误

解析:this()和super()都是构造器,this()调用本类构造器,super()调用父类构造器

11.导出类调用基类的构造器必须用到的关键字: ( )

正确答案: C 你的答案: C (正确)
this
final
super
static

解析:子类调用父类的构造器使用super(),放在子类构造函数的首行

12.ava中基本的编程单元为:
正确答案: A 你的答案: A (正确)

函数
变量
数据

13.Given:
//point X
public class Foo {
public static void main(String[] args) throws Exception {

    PrintWriter out = new PrintWriter(
        new java.io.OutputStreamWriter(System.out), true);
    out.printIn(“Hello”);
}

}

Which statement at PointX on line I allows this code to compile and run?
正确答案: A 你的答案: B (错误)
import java.io.PrintWriter;
include java.io.PrintWriter;
import java.io.OutputStreamWriter;
include java.io.OutputStreamWriter;
no statement is needed.

14.public class TestObj{
public static void main(String[] args){
Object o=new Object(){
public boolean equals(Object obj){
return true;
}
};
System.out.println(o.equals(“Fred”));
}
}
请给出结果:()
正确答案: B 你的答案: D (错误)
运行时抛出异常
true
Fred
第三行编译错误

15.下列哪种异常是检查型异常,需要在编写程序时声明?

正确答案: C 你的答案: B (错误)
NullPointerException
ClassCastException
FileNotFoundException
IndexOutOfBoundsException:

解析:(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.

16.在面向对象编程里,经常使用is-a来说明对象之间的继承关系,下列对象中不具备继承关系的是?()
正确答案: D 你的答案: B (错误)
手机与小米手机
企业家与雷军
编程语言与Java
中国与北京

17.Integer i = 42;
Long l = 42l;
Double d = 42.0;
下面为true的是
正确答案: G 你的答案: G (正确)
(i == l)
(i == d)
(l == d)
i.equals(d)
d.equals(l)
i.equals(l)
l.equals(42L)

解析:ABC3 个选项很明显,不同类型引用的 == 比较,会出现编译错误,不能比较。
DEF 调用 equals 方法,因为此方法先是比较类型,而 i , d , l 是不同的类型,所以返回假。
选项 G ,会自动装箱,将 42L 装箱成 Long 类型,所以调用 equals 方法时,类型相同,且值也相同,因此返回真。

18.下列关于Java并发的说法中正确的是()
正确答案: B 你的答案: B (正确)
CopyOnWriteArrayList适用于写多读少的并发场景
ReadWriteLock适用于读多写少的并发场景
ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了

19.下面有关JAVA异常类的描述,说法错误的是?
正确答案: D 你的答案: B (错误)

异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
非RuntimeException一般是外部错误(非Error),其必须被 try{}catch语句块所捕获
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获

解析:运行时异常故名思议就是程序在运行的时候出现异常,隐含的一个前提就是程序在编译时是检测不到异常的存在,作者本人也并不知道是否自己的代码中含有运行时异常,所以根本也不可能提前使用try{}catch{}捕获.

20.下列代码执行结果为()
public static void main(String args[])throws InterruptedException{
Thread t=new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.print(“2”);
}
});
t.start();

        t.join();
        System.out.print("1");
    }

正确答案: A 你的答案: A (正确)
21
12
可能为12,也可能为21
以上答案都不对

解析:因为子线程的休眠时间太长,因此主线程很有可能在子线程之前结束也就是输出结果是12,但是子线程用了join函数,因此主线程必须等待子线程执行完毕才结束因此输出结果只能是21

21.以下代码将打印出

public static void main (String[] args) {
String classFile = “com.jd.”. replaceAll(".", “/”) + “MyClass.class”;
System.out.println(classFile);
}
正确答案: C 你的答案: B (错误)
com. jd
com/jd/MyClass.class
///MyClass.class
com.jd.MyClass

解析:由于replaceAll方法的第一个参数是一个正则表达式,而".“在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成”/"。如果想替换的只是".",那么久要写成"\."

22.以下哪些语言是面向对象的()
正确答案: B C 你的答案: C D (错误)
C
C++
JAVA
汇编

23.以下哪几个是java中的集合类型?
正确答案: A B D 你的答案: A B C D (错误)
Vector
Set
String
List

解析:在这里插入图片描述
24.下列关于final、finally、finalize说法正确的是( )

正确答案: A B D 你的答案: A B D (正确)
final可以用来修饰类、方法、变量
finally是java保证重点代码一定要被执行的一种机制
变量被final修饰后不能再指向其他对象,但可以重写
finalize设计的目的是保证对象在被垃圾收集前完成特定资源的回收

解析:当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。

25.Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素

正确答案: A B D 你的答案: A B C (错误)
事件源
事件对象
事件过程
事件监听器

26.下列关于while循环、do-while循环和for循环说法错误的是

正确答案: B C 你的答案: C D (错误)
while循环先执行条件判断,do-while循环执行循环体
do-while循环结束的条件是关键字while后的条件表达式成立
for循环结构中的3个表达式缺一不可
while循环能够实现的操作,for循环也能实现

27.下列代码片段中,存在编译错误的语句是()
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2); /语句1/
b6=b4+b5; /语句2/
b8=(b1+b4); /语句3/
b7=(b2+b5); /语句4/
System.out.println(b3+b6);

正确答案: B C D 你的答案: B C D (正确)
语句2
语句1
语句3
语句4
解析:本地变量必须在声明时赋值。 final成员变量必须在声明的时候初始化或者在构造器中初始化

28.以下JAVA程序的运行结果是什么( )

public static void main(String[] args) {
Object o1 = true ? new Integer(1) : new Double(2.0);
Object o2;
if (true) {
o2 = new Integer(1);
} else {
o2 = new Double(2.0);
}
System.out.print(o1);
System.out.print(" ");
System.out.print(o2);
}

正确答案: D 你的答案: A B (错误)
1 1
1.0 1.0
1 1.0
1.0 1

解析:三元操作符类型的转换规则:
1.若两个操作数不可转换,则不做转换,返回值为Object类型
2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换,int类型转换为long类型,long类型转换为float类型等。
3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型标示为T,那么,若数字S在T的范围内,则转换为T类型;若S超出了T类型的范围,则T转换为S类型。
4.若两个操作数都是直接量数字,则返回值类型为范围较大者

29.以下各类中哪几个是线程安全的?( )
正确答案: B C D 你的答案: A B C D (错误)
ArrayList
Vector
Hashtable
Stack

解析:线程同步:VSHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)

30.关于下面一段代码,以下说法正确的是: ()

public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}

正确答案: A C 你的答案: A D (错误)
同一个对象,分别调用方法a和b,锁住的是同一个对象
同一个对象,分别调用方法a和c,锁住的是同一个对象
同一个对象,分别调用方法b和c,锁住的不是同一个对象
同一个对象,分别调用方法a、b、c,锁住的不是同一个对象

解析:
修饰非静态方法 锁的是this 对象

修饰静态方法 锁的是class对象

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java选择题题库是一种包含了一系列针对Java编程语言的选择题的资源库。这些选择题具有不同的难度级别和不同的主题,旨在帮助学习者更好地理解和掌握Java语言的各个方面。 Java选择题题库的使用对于学习者来说具有很大的好处。首先,通过解答选择题,学习者可以检验自己对Java语言的知识掌握程度。这可以帮助他们发现自己的不足之处,并将精力放在需要加强的知识点上。此外,通过解答选择题,学习者还可以加深对Java语言相关概念和知识的理解和记忆。 Java选择题题库可以涵盖Java语言的各个方面,比如基本语法、数据类型、控制流、面向对象编程、异常处理、多线程编程、输入输出、集合框架等等。这样的题库可以帮助学习者全面而系统地学习Java语言,并在各个方面都有所提高。 除了作为学习工具外,Java选择题题库还可以用于考试或评估学习者的水平。教育机构或培训机构可以使用这样的题库来组织考试,评估学生对Java语言的掌握情况。这样的题库可以提供一种客观的评估方式,帮助教育机构或培训机构更好地了解学生的学习状况,进行科学的教学安排。 总之,Java选择题题库是一种有益的学习资源,可以帮助学习者巩固和提高对Java语言的理解和应用能力。无论是个人学习还是教育考试,Java选择题题库都是一个有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值