学的到东西的事情是锻炼,学不到的是磨练。
查看以前的所有练习题目以及答案:https://mp.weixin.qq.com/mp/homepage?__biz=MzA5MTMyNTI0Nw==&hid=13&sn=78e12cc1bdd8b15eef316f849a8b55b4#wechat_redirect
本期题目:
(单选题)1、对于以下代码段,4个输出语句中输出true的个数是( )。
class A{}
class B extends A{}
class C extends A{}
class D extends B{}
A obj = new D();
System.out.println(obj instanceof B);
System.out.println(obj instanceof C);
System.out.println(obj instanceof D);
System.out.println(obj instanceof A);
A 1
B 2
C 3
D 4
(单选题)2、 代码System. out. println(10 % 3 * 2);将打印出?
A 1
B 2
C 4
D 6
(不定项选择题) 3、对于构造方法,下列叙述正确的是( )。
A 构造方法的优先级一般比代码块低。
B 构造方法的返回类型只能是void型。
C 构造方法的主要作用是完成对类的对象的初始化工作。
D 一般在创建新对象时,系统会自动调用构造方法。
(单选题)4、 java中用()字指明继承关系.用()关键字指明对接口的实现。
A implementsextends
B extendsimplements
C extend implement
D implement extend
(单选题)5、如果希望某个变量只可以被类本身访问和调用,则应该使用下列哪一种访问控制修饰?
A public
B private
C private protected
D protected
上期答案:
(单选题) 1、Java中只有整型才能使用的运算符为?
A *
B /
C %
D +
正确答案是:C
解析:ABD选项的操作符都可用于int 但是结果不一定是int
所以只有%取余操作,只适用于整型
(不定项选择题)2、Consider the following code:
Integer s=newInteger(9);
Integer t=newInteger(9);
Long u=newLong(9);
Which testwould return true?
A (s==u)
B (s==t)
C (s.equals(t))
D (s.equals(9))
E (s.equals(newInteger(9))
正确答案是:CDE
解析:
(s==u) ,因为, s 是 Integer 类型, u 是 Long 类型,两个不同类型的引用不能进行 == 比较。 (s==t) , s 是指向一个 9 的引用,而 t 也是一个指向 9 的引用,虽然都是指向 9 ,但却是指向不同的 9 ,即是两个不同的引用。因此 == 比较返回的是假。 (s.equals(t)) , Integer 的 equals 方法如下: public boolean equals(Object obj) { if (obj instanceof Integer) { return value ==((Integer)obj).intValue(); } return false ; } 是 Integer 的实例且 value 值也相等的情况下返回真,其他返回假。在这里, s 和 t 都是 Integer 类型且值都为 9 ,因此结果为真。 (s.equals(9)) , 在进行 equals 比较之前,会对 9 调用 Integer.valueOf方法,进行自动装箱 , 由于 IntegerCache 中已经存在 9 ,所以,直接返回其引用,引用相同, equals 就自然相同了。所以结果为真。 (s.equals( new Integer(9)) ,直接创建了一个新的 Integer 实例,但且值也为 9 ,所以,满足条件,返回真。
(单选题)3、下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。
Filef = new File( 填代码处);
file =new FileReader(f);
in=new BufferedReader(file);
A "./1.txt"
B "../my/1.txt"
C "c:\\my\\1.txt"
D "c:\ my\1.txt"
正确答案是:C
解析:"c:\\my\\1.txt" "c:/my/1.txt" 都是正确的答案
(单选题) 4、已知表达式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
解析:
1.数组的下标是从0 开始的,所以数组的下标最大为5。
2.m.length的值为6。
所以,答案为:5=m.length()-1
(单选题)5、下面的代码运行的结果是:
class B extends Object
{
static
{
System.out.println("Load B");
}
public B()
{
System.out.println("Create B");
}
}
class A extends B
{
static
{
System.out.println("Load A");
}
public A()
{
System.out.println("Create A");
}
}
public class Testclass
{
public static void main(String[] args)
{
new A();
}
}
A Load B ->Create B->Load A -> Create A
B Load B -> Load A ->Create B ->Create A
C Load B -> Create B-> Create A -> Load A
D Create B ->Create A ->Load B ->Load A
正确答案是:B
解析:初始化块在构造器执行之前执行,类初始化阶段先执行最顶层父类的静态初始化块,依次向下执行,最后执行当前类的静态初始化块;创建对象时,先调用顶层父类的构造方法,依次向下执行,最后调用本类的构造方法。