2019年11月15日 java2
考点1
已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?
- A
m. length()
- B
m. length-1
- C
m. length()+1
- D
m. length+1
解析
显示答案/隐藏答案
正确答案: B获取长度的方式 | 数据类型 |
---|---|
length 属性 |
数组 |
length() |
String` |
size() |
集合 |
考点2
与未加访问控制符的缺省情况相比,public和protected修饰符扩大了属性和方法的被访问范围,private修饰符则缩小了这种范围。
- A 正确
- B 错误
解析
显示答案/隐藏答案
正确答案: A考点3
区分类中重载方法的依据是( )。
- A 不同的形参名称
- B 不同的返回值类型
- C 不同的形参列表
- D 不同的访问权限
解析
显示答案/隐藏答案
正确答案: C考点4
字符界面下接受用户从键盘输入,需要import的包是:( )
- A
java.lang
包 - B
java.awt
包 - C
java.io
包 - D
java.applet
包
解析
显示答案/隐藏答案
正确答案: C考点5
下面哪个Set类是排序的?
- A
LinkedHashSet
- B
TreeSet
- C
HashSet
- D
AbstractSet
解析
显示答案/隐藏答案
正确答案: B- TreeSet排序,
- LinkedHashSet有序。
考点6
下列关于Java并发的说法中正确的是()
- A
CopyOnWriteArrayList
适用于写多读少的并发场景 - B
ReadWriteLock
适用于读多写少的并发场景 - C
ConcurrentHashMap
的写操作不需要加锁,读操作需要加锁 - D 只要在定义
int
类型的成员变量i的时候加上volatile
关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
解析
显示答案/隐藏答案
正确答案: BA,CopyOnWriteArrayList适用于写少读多的并发场景
B,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,
读与读之间可以并发执行。在读多写少的情况下可以提高效率
C,ConcurrentHashMap是同步的HashMap,读写都加锁
D,volatile只保证多线程操作的可见性,不保证原子性
有空了解一下
CopyOnWrite指的是修改容器之前,先将原来的容器拷贝一份副本,在副本中进行修改,修改之后使用原来的容器指向修改好的容器,这样保证了两个容器可以同时读,用于读多于写的场景
volatile变量自身具有以下特性:1。可见性2.原子性:对任意单个volatile变量的读写具有原子性,但类似i++这种复合操作或者多个volatile操作不具有原子性
考点7
由3 个”1”和 5 个”0”组成的 8 位二进制补码,能表示的最小整数()
- A -126
- B -125
- C -32
- D -3
解析
显示答案/隐藏答案
正确答案: B一个1作为符号位,表示负数,剩下两个1,最大值是3,-(128-3)=-125
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;
考点8
下列Java代码中的变量a、b、c分别在内存的____存储区存放。
1 | class A { |
- A 堆区、堆区、堆区
- B 堆区、栈区、堆区
- C 堆区、栈区、栈区
- D 堆区、堆区、栈区
- E 静态区、栈区、堆区
- F 静态区、栈区、栈区
解析
显示答案/隐藏答案
正确答案: C- a是类中的成员变量,存放在堆区
- b、c都是方法中的局部变量,存放在栈区
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
考点9
Consider the following code:
Integer s=new Integer(9);
Integer t=new Integer(9);
Long u=new Long(9);
Which test would return true?
- A
(s==u)
- B
(s==t)
- C
(s.equals(t))
- D
(s.equals(9))
- E
(s.equals(new Integer(9))
解析
显示答案/隐藏答案
正确答案: CDEB关于s==t,添加一点说明:
当Integer的值在-128~127之间时,使用拆箱方式创建Integer对象:
1 | //自动拆箱 |
得到的对象使用==会得到true。
而使用new Integer()方式创建的对象,使用==会得到false。
当Integer的值不在这个范围内时,无论以何种方式创建两个Integer对象,使用==都会是false。
考点10
判断一块内存空间是否符合垃圾收集器收集的标准有哪些?
- A 给对象赋予了空值
null
,以下再没有调用过 - B 对象重新分配了内存空间
- C 给对象赋予了空值
null
- D 给对象赋予了新值
解析
显示答案/隐藏答案
正确答案: ABD在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋值为null,以下没有调用过。
2.给对象赋了新的值,重新分配了内存空间。
一块内存空间符合了垃圾收集器的收集标准,并不意味着这块内存空间就一定会被垃圾收集器收集。