2019年12月16日 java1

考点1 case穿透

给定代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println("value="+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}

第三行将输出什么?

  • A value=6
  • B value=8
  • C value=3
  • D value=5
  • E value=4

解析

显示答案/隐藏答案正确答案: B

考点2 servlet内置对象

从以下哪一个选项中可以获得Servlet的初始化参数?

  • A Servlet
  • B ServletContext
  • C ServletConfig
  • D GenericServlet

解析

显示答案/隐藏答案正确答案: C

通过ServletConfig接口的getInitParameter(java.lang.String name)方法

考点3 运算符优先级

下面的程序将来打印什么?()
public class TestIncr {
public static void main(String args[]) {
int i = 0;
i = i++ + i;
System.out.println(“I =” +i);
}
}

  • A I = 1
  • B I = 2
  • C I = 3
  • D 编译出错

解析

显示答案/隐藏答案正确答案: A

考点4 持久区jvm堆内存溢出

下面哪种情况会导致持久区jvm堆内存溢出?

  • A 循环上万次的字符串处理
  • B 在一段代码内申请上百M甚至上G的内存
  • C 使用CGLib技术直接操作字节码运行,生成大量的动态类
  • D 不断创建对象

解析

显示答案/隐藏答案正确答案: C

http://blog.csdn.net/sivyer123/article/details/17139443

考点5 CMS垃圾回收器

CMS垃圾回收器在那些阶段是没用用户线程参与的

  • A 初始标记
  • B 并发标记
  • C 重新标记
  • D 并发清理

解析

显示答案/隐藏答案正确答案: AC

考点6 序列化

transient 变量和下面哪一项有关?

  • A Cloneable
  • B Serializable
  • C Runnable
  • D Comparable

解析

显示答案/隐藏答案正确答案: B

考点7 网络编程

关于 Socket 通信编程,以下描述错误的是:( )

  • A 服务器端通过new ServerSocket()创建TCP连接对象
  • B 服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
  • C 客户端通过new Socket()方法创建通信的Socket对象
  • D 客户端通过new ServerSocket()创建TCP连接对象

解析

显示答案/隐藏答案正确答案: D

考点8 HashMap

下面有关java hashmap的说法错误的是?

  • A HashMap 的实例有两个参数影响其性能:”初始容量” 和 “加载因子”。
  • B HashMap 的实现不是同步的,意味着它不是线程安全的
  • C HashMap通过开放地址法解决哈希冲突
  • D HashMap中的key-value都是存储在Entry数组中的

解析

显示答案/隐藏答案正确答案: C

解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的。 注:
链表法是将相同hash值的对象组成一个链表放在hash值对应的槽位;
用开放定址法解决冲突的做法是:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。
沿此序列逐个单元地查找,直到找到给定
的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。
拉链法解决冲突的做法是: 将所有关键字为同义词的结点链接在同一个单链表中
。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数
组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。在拉链法中,装填因子α可以大于1,但一般均取α≤1。拉链法适合未规定元素的大小。

考点9 补码运算

变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()

  • A 1
  • B -(2^62+2^61+2^60+1)
  • C 2^62+2^61+2^60+1
  • D 2^59+(2^55+2^54+…+2^2+2^1+2^0)

解析

显示答案/隐藏答案正确答案: C

考点10 反射机制

Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )

  • A Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下
  • B 通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
  • C 通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
  • D Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
  • E Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
  • F Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率

解析

显示答案/隐藏答案正确答案: ADF
  • A选项错误,类Class在java.lang包下,类Method、Filed在java.lang.reflet包下。
  • D选项错误,反射的本质就是从字节码中查找,动态获取类的整容结构,包括属性,构造器,动态调用对象的方法,而不是修剪类
  • F选项错误,使用了反射的效率都会降低,就算加了缓存