日常Java练习题(每天进步一点点系列)

提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴,我还会把所有答案放到文章最下面,希望给每天进步一点点的小伙伴更好的体验。
日常Java练习题(每天进步一点点系列)_第1张图片

1、abstract和final可以同时作为一个类的修饰符。( )
正确答案: B 你的答案: B (正确)
正确
错误

题解:
abstract修饰一个类,这个类肯定可以被继承,但是final类是不能继承的,所以有矛盾,肯定不能同时用

2、下列描述中,错误的是
正确答案: C 你的答案: C (正确)
SQL语言又称为结构化查询语言
java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
java是强类型语言,javascript是弱类型语言
面向对象的三大特性包括:封装,继承,多态

题解:
值传递,传递的是原来值的副本。
引用传递,除了一些特殊的(String,包装类属于不可变类),一般的引用类型在进行传递的时候,一开始形参和实参都是指向同一个地址的,这个时候形参对对象的改变会影响到所引用的对象上。

3、关于protected 修饰的成员变量,以下说法正确的是
正确答案: A 你的答案: A (正确)
可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
只能被该类本身和该类的所有的子类访问
只能被该类自身所访问
只能被同一个包中的类访问

题解:
日常Java练习题(每天进步一点点系列)_第2张图片

4、以下哪个类包含方法flush()?()
正确答案: B 你的答案: B (正确)
InputStream
OutputStream
A 和B 选项都包含
A 和B 选项都不包含

题解:
flush()函数强制将缓冲区中的字符流、字节流等输出,目的是如果输出流输出到缓冲区完成后,缓冲区并没有填满,那么缓冲区将会一直等待被填满。所以在关闭输出流之前要调用flush()。

5、设m和都是int类型,那么以下for循环语句的执行情况是( )
for (m = 0, n = -1; n = 0; m++, n++)
n++;
正确答案: D 你的答案: D (正确)
循环体一次也不执行 循环体执行一次 是无限循环 有限次循环 循环结束判断条件不合法 运行出错
循环体执行一次 是无限循环
有限次循环
循环结束判断条件不合法

题解:
判断条件写的是:n = 0,错误,判断条件应该返回Boolean值,应该写:n == 0.

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

题解:
被final修饰后的变量不可变
被final修饰后的方法不可被重写
被final修饰后的类不可被继承

7、Java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法是Collection接口所定义的( )
正确答案: A B D 你的答案: A B D (正确)
int size()
boolean containsAll(Collection c)
compareTo(Object obj)
boolean remove(Object obj)

题解:
compareTo是接口Comparable中的方法

8、关于ThreadLocal类 以下说法正确的是
正确答案: D E 你的答案: D E (正确)
ThreadLocal继承自Thread
ThreadLocal实现了Runnable接口
ThreadLocal重要作用在于多线程间的数据共享
ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏

题解:
ThreadLocal继承Object,相当于没继承任何特殊的。
ThreadLocal没有实现任何接口。
ThreadLocal并不是一个Thread,而是Thread的局部变量。

9、以下程序执行后,错误的结果是()
public class Test {
private String name = “abc”;
public static void main(String[] args) {
Test test = new Test();
Test testB = new Test();
String result = test.equals(testB) + “,”;
result += test.name.equals(testB.name) + “,”;
result += test.name == testB.name;
System.out.println(result);
}
}
正确答案: A B C 你的答案: A B C (正确)
true,true,true
true,false,false
false,true,false
false,true,true

题解:
注意是选错误的,所以选三个,D是正确的

日常Java练习题(每天进步一点点系列)_第3张图片

10、下面的Java赋值语句哪些是有错误的 ()
正确答案: B F 你的答案: B F (正确)
int i =1000;
float f = 45.0;
char s = ‘\u0639’;
Object o = ‘f’;
String s = “hello,world\0”;
Double d = 100;

题解:
B:小数如果不加 f 后缀,默认是double类型。double转成float向下转换,意味着精度丢失,所以要进行强制类型转换。
C:是使用unicode表示的字符。
D:‘f’ 字符会自动装箱成包装类,就可以向上转型成Object了。
F:整数默认是int类型,int类型不能转型为Double,最多通过自动装箱变为Integer但是Integer与Double没有继承关系,也没法进行转型

答案汇总:
1、正确答案: B
2、正确答案: C
3、正确答案: A
4、正确答案: B
5、正确答案: D
6、正确答案: A B D
7、正确答案: A B D
8、正确答案: D E
9、正确答案: A B C
10、正确答案: B F

以上部分题解来自牛客评论区,感谢评论区大佬的解释。

每天进步一点点!
不进则退!

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述
加油!

共同努力!

Keafmd

你可能感兴趣的:(NowCoder,java)