Java选择题

1.java 中哪个关键字可以对对象加互斥锁?

正确答案: B 你的答案: B (正确)
transient
synchronized
serialize
static
解析:synchronized 关键字 : 用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。

2.在 java 中 , 一个类()

正确答案: B 你的答案: B (正确)
可以继承多个类
可以实现多个接口
在一个程序中只能有一个子类
只能实现一个接口

解析:Java单继承,多实现:一个类可以同时实现多个接口,但是只能继承自一个类,但它可以被多个类继承,也就是说一个类只有一个直接父类,但是可以有多个子类

3.HashSet子类依靠()方法区分重复元素。
正确答案: C 你的答案: B (错误)
toString(),equals()
clone(),equals()
hashCode(),equals()
getClass(),clone()

解析:HashSet的底层还是用HashMap来实现的。将Entry<K,V>的V都变成了同一个Object对象,public static final PRESENT = new Object()。
而HashMap的数据结构是数组+链表+红黑树。
调用K的hashCode方法,然后高低16位进行&运算。得到的hash值,与数组tab[](桶)的长度-1进行&运算,确定插入对象在哪一个桶上。然后调用对象的equals方法,形成链表。当链表长度大于8时,链表转红黑树。

4.以下哪项陈述是正确的?
正确答案: E 你的答案: C (错误)
垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收
垃圾收集允许程序开发者明确指定释放 哪一个对象
垃圾回收机制保证了JAVA程序不会出现 内存溢出
进入”Dead”状态的线程将被垃圾回收器回收
以上都不对
解析:Java的垃圾回收机制可以有效的防止内存溢出问题,但是它并不能完全保证不会出现内存溢出。例如当程序出现严重的问题时,也可能出现内存溢出问题。

5.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {
public static void hello() {
System.out.println(“hello”);
}
}
public class MyApplication {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=null;
test.hello();
}
}

正确答案: A 你的答案: D (错误)
能编译通过,并正确运行
因为使用了未初始化的变量,所以不能编译通过
以错误的方式访问了静态方法
能编译通过,但因变量为null,不能正常运行

解析:静态方法属于静态绑定,编译器根据引用类型所属的静态类型为它绑定其对应的方法。此语句会翻译成invokestatic,该指令的调用中不会涉及this,所以不会依赖对象! 还有引用类型=null,其实就是指该引用在堆中没有对应的对象,但是编译的时候还是能根据声明找到其所属的静态类型。

6.java中提供了哪两种用于多态的机制
正确答案: A B 你的答案: A C (错误)
通过子类对父类方法的覆盖实现多态
利用重载来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
利用覆盖来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
通过子类对父类方法的重载实现多态

解析:重载不能实现多态

7.Hashtable 和 HashMap 的区别是:
正确答案: B C D E 你的答案: B C D (错误)
Hashtable 是一个哈希表,该类继承了 AbstractMap,实现了 Map 接口
HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口
Hashtable 线程安全的,而 HashMap 是线程不安全的
Properties 类 继承了 Hashtable 类,而 Hashtable 类则继承Dictionary 类
HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。

解析:1、继承的父类不同
2、线程安全性不同

8.JavaWEB中有一个类,当会话种邦定了属性或者删除了属性时,他会得到通知,这个类是:( )
正确答案: A 你的答案: C E (错误)
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionObjectListener
HttpSessionListener;
HttpSession
HttpSessionActivationListener

9.关于java中的数组,下面的一些描述,哪些描述是准确的:()
正确答案: A C F 你的答案: C D E (错误)
数组是一个对象,不同类型的数组具有不同的类
数组长度是可以动态调整的
数组是一个连续的存储结构
一个固定长度的数组可类似这样定义:int array[100]
两个数组用Object 里equals方法比较时,会逐个遍历其中的元素,对每个元素进行比较
java中不存在 int *a这样的东西做数组的形参

解析:数组a.equals(数组b),和Arrays.equals(数组a,数组b)是不同的

10.以下说法错误的是()
正确答案: B C D 你的答案: B D (错误)
其他选项均不正确
java线程类优先级相同
Thread和Runnable接口没有区别
如果一个类继承了某个类,只能使用Runnable实现线程

解析:B选项,在java中线程是有分优先等级的所以优先级不能相同,错误
C选项,Thread实现了Runnable接口是一个类不是接口,错误
D选项,实现多线程的三种方式,一种是继承Thread类使用此方式就不能继承其他的类了。还有两种是实现Runnable接口或者实现Callable接口
,所以D错误。

11.当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?()
正确答案: D 你的答案: D (正确)
KeyEvent
AxtionEvent
ItemEvent
MouseEvent

12.下列选项中属于面向对象设计方法主要特征的是( )。
正确答案: A 你的答案: A (正确)
继承
自顶向下
模块化
逐步求精

13.//中可以嵌套//注释,也能嵌套//注释。
正确答案: B 你的答案: B (正确)
正确
错误

14.以下代码段执行后的输出结果为

public class Test {
public static void main(String args[]) {
int x = -5;
int y = -12;
System.out.println(y % x);
}
}
正确答案: D 你的答案: B (错误)
-1
2
1
-2

解析:取模运算,结果的符号和被除数符号一致,切记切记

15.以下程序段的输出结果为:

public class EqualsMethod
{
public static void main(String[] args)
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1 == n2);
System.out.print(",");
System.out.println(n1 != n2);
}
}

正确答案: B 你的答案: C (错误)
false,false
false,true
true,false
true,true

解析:第一个是引用数据类型所以是false

16.在 main() 方法中给出的字节数组,如果将其显示到控制台上,需要( )。

正确答案: A 你的答案: C (错误)
标准输出流System.out.println()。
建立字节输出流。
建立字节输入流。
标准输入流System.in.read()。

解析:out是java.lang.System类中的一个字段,out是“标准“”输出流,public static final PrintStream out

17.int i, sum=0;
for(i=0;i<10;++i,sum+=i); i 的最终结果是?
正确答案: A 你的答案: A (正确)
10
9
11
以上答案都不正确

18.表达式(short)10/10.2*2运算后结果是什么类型?
正确答案: C 你的答案: C (正确)
short
int
double
float

19.关于抽象类与接口,下列说法正确的有?

正确答案: A C 你的答案: B C (错误)
优先选用接口,尽量少用抽象类
抽象类可以被声明使用,接口不可以被声明使用
抽象类和接口都不能被实例化。
以上说法都不对

20.以下哪些jvm的垃圾回收方式采用的是复制算法回收
正确答案: A D 你的答案: C E (错误)
新生代串行收集器
老年代串行收集器
并行收集器
新生代并行回收收集器
老年代并行回收收集器
cms收集器

21.下列哪个类的声明是正确的?

正确答案: D 你的答案: D (正确)
abstract final class HI{}
abstract private move(){}
protected private number;
public abstract class Car{}

解析:抽象方法不能有方法体也就是说不能有花括号,但是抽象类可以有花括号

22.下列对接口的说法,正确的是( )

正确答案: B 你的答案: B (正确)
接口与抽象类是相同的概念
若要实现一个接口为普通类则必须实现接口的所有抽象方法
接口之间不能有继承关系
一个类只能实现一个接口

解析:A 接口与抽象类是不同的概念。抽象类是用于捕捉子类的通用特性,接口是抽象方法的集合;
B 实现接口必须实现接口的所有方法;
C 接口可以继承一个或多个接口,抽象类只能继承一个类或者实现多个接口;
D 一个类只能继承一个类,但是可以实现多个接口。

23.执行如下代码后输出结果为( )

public class Test {
public static void main(String[] args) {
System.out.println("return value of getValue(): " + getValue());
}
public static int getValue() {
int i = 1;
try {
i = 4;
} finally{
i++;
return i;
}
}
}
正确答案: C 你的答案: A (错误)
return value of getValue(): 1
return value of getValue(): 4
return value of getValue(): 5
其他几项都不对

解析:没有异常处理i直接等于4 然后i++就等于5

24.关于以下程序代码的说明正确的

class HasStatic{
private static int x = 100;
public static void main(String args[ ]){
HasStatic hs1 = new HasStatic();
hs1.x++;
HasStatic hs2 = new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x–;
System.out.println( “x=” +x);
}
}

正确答案: D 你的答案: D (正确)
5行不能通过编译,因为引用了私有静态变量
10行不能通过编译,因为x是私有静态变量
程序通过编译,输出结果为:x=103
程序通过编译,输出结果为:x=102

  1. class Line {
  2. public class Point { public int x,y;}
  3. public Point getPoint() { return new Point(); }
  4. }
  5. class Triangle {
  6. public Triangle() {
  7. // insert code here
  8. }
  9. }
    在第16行插入哪段代码可以获得一个Point对象的坐标?( )
    正确答案: D 你的答案: C (错误)
    Point p = Line.getPoint();
    Line.Point p = Line.getPoint();
    Point p = (new Line()).getPoint();
    Line.Point p = (new Line()).getPoint();

解析:访问内部类的方法时,先要创建对象在调用内部类的方法

26.java运行时内存分为“线程共享”和“线程私有”两部分,以下哪些属于“线程共享”部分
正确答案: B D 你的答案: B C D (错误)
程序计算器
方法区
java虚拟机栈
java堆

解析:私有:java虚拟机栈,程序计数器,本地方法栈 共享:java堆,方法区

27.局部内部类可以用哪些修饰符修饰?
正确答案: C D 你的答案: A B (错误)
public
private
abstract
final

解析:局部内部类是放在代码块或方法中的,不能有访问控制修饰符,且不能用static修饰

28.有关finally语句块说法正确的是( )
正确答案: A B C 你的答案: A B D (错误)
不管catch是否捕获异常,finally语句块都是要被执行的
在try语句块或catch语句块中执行到System.exit(0)直接退出程序
finally块中的return语句会覆盖try块中的return返回
finally 语句块在 catch语句块中的return语句之前执行

解析:如果try语句里有return,那么代码的行为如下:
1.如果有返回值,就把返回值保存到局部变量中
2.执行jsr指令跳到finally语句里执行
3.执行完finally语句后,返回之前保存在局部变量表里的值
如果try,finally语句里均有return,忽略try的return,而使用finally的return.

29.关于身份证号,以下正确的正则表达式为( )
正确答案: A C 你的答案: B C (错误)
isIDCard=/1\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}KaTeX parse error: Undefined control sequence: \d at position 20: …sIDCard=/^[1-9]\̲d̲{7}((9\d)|(1[0-…/;
isIDCard=/2\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}KaTeX parse error: Undefined control sequence: \d at position 20: …sIDCard=/^[1-9]\̲d̲{5}[1-9]\d{3}((…/;

30.有关线程的叙述正确的是()
正确答案: C D 你的答案: C D (正确)
可以获得对任何对象的互斥锁定
通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
线程通过使用synchronized关键字可获得对象的互斥锁定
线程调度算法是平台独立的

解析:A,“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象吗?
B,前半句话讲的是创建线程的方式,后半句讲的是锁定,驴头不对马嘴。
C,正确。
D,线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平***立的原因。
以上,选CD


  1. 1-9 ↩︎

  2. 1-9 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值