Java每日练习——1
题目一:关于String、StringBuffer、StringBuilder以下说法错误的是
A:StringBuilder运行速度最快
B:StringBuffer是线程安全的
C:String的值是可变的
D:StringBuffer运行速度比String快
题目二:ArrayList和LinkList的描述,下面说法错误的是?
A:LinkedeList和ArrayList都实现了List接口
B:ArrayList是可改变大小的数组,而LinkedList是双向链接串列
C:LinkedList不支持高效的随机元素访问
D:在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的
题目三:Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).
A:11 ,-11
B:11 ,-12
C:12 ,-11
D:12 ,-12
题目四:在类Tester中定义方法如下,
public double max(int x, int y) { // 省略 }
则在该类中定义如下哪个方法头是对上述方法的重载(Overload)?
A:public int max(int a, int b) {}
B:public int max(double a, double b) {}
C:public double max(int x, int y) {}
D:private double max(int a, int b) {}
---答案区---
题目一:正确答案 C
解析:
String是final修饰的,不可变
在运行速度上StringBuffer因为兼顾了线程安全,效率不及StringBuilder
StringBuffer是线程安全的
String为什么不可变:
https://mp.weixin.qq.com/s/MwaZqbXw9W0S30mXljQhuA
题目二:正确答案 D
解析:
这个说法说反了 Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,
把原数组中元素拷贝过去。其本质是顺序存储的线性表,
插入和删除操作会引发后续元素移动,效率低,
但是随机访问效率高 LinkedList的内存结构是用双向链表存储的,
链式存储结构插入和删除效率高,不需要移动。但是随机访问效率低,
需要从头开始向后依次访问
题目三:正确答案 C
解析:
floor : 意为地板,指向下取整,返回不大于它的最大整数
ceil : 意为天花板,指向上取整,返回不小于它的最小整数
round : 意为大约,表示“四舍五入”,而四舍五入是往大数方向入。
Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。
题目四:正确答案 B
解析:
重载的要求是:
方法名称必须相同
参数列表必须不同(个数不同、或类型不同、参数类型排列顺序不同等)
对返回值没有要求
本题中
A、C、D选项参数列表并没有变化,并不是重载方法。
B选项正确。