java笔试练习题笔记(2)

如果Child extends Parent,那么正确的有()?
A.如果Child是class,且只有一个有参数的构造函数,那么必然会调用Parent中相同参数的构造函数
B.如果Child是interface,那么Parent必然是interface
C.如果Child是interface,那么Child可以同时extends Parent1,Parent2等多个interface
D.如果Child是class,并且没有显示声明任何构造函数,那么此时仍然会调用Parent的构造函数

答案解析:

A. 如果Child是一个类,并且只有一个有参数的构造函数,那么Child的构造函数会通过super关键字调用Parent中相同参数的构造函数,除非Child显式地通过this关键字调用了另一个构造函数。如果Child没有显式调用父类的构造函数,Java编译器会尝试调用父类中参数匹配的构造函数。

B. 如果Child是一个接口,那么Parent也必须是一个接口。在Java中,接口不能继承类,只能继承其他接口。

C. 如果Child是一个接口,那么Child确实可以同时继承(使用extends关键字)多个其他接口(Parent1,Parent2等)。这是Java接口的一个特性,允许多继承。

D. 如果Child是一个类,并且没有显式声明任何构造函数,那么Java编译器会自动提供一个无参数的构造函数,这个构造函数会隐式地调用父类(Parent)的无参数构造函数。


已知String a="a",String b="b",String c=a+b,String d=new String("ab") 以下操作结果为true的是
A.(a+b).equals(c)
B.a+b==c
C.c==d
D.c.equals(d)

答案解析:

A. (a+b).equals(c) 这个表达式是正确的。a+b会生成一个新的字符串对象,而c也是一个字符串对象,它们的内容都是"ab",所以使用equals方法比较时,结果为true

B. a+b==c 这个表达式是错误的。a+b会创建一个新的字符串对象,而c是之前通过a+b创建的一个字符串对象的引用,即使它们的内容相同,但它们是不同的对象实例,所以使用==比较引用时,结果为false

C. c==d 这个表达式是错误的。c是通过a+b创建的字符串对象,而d是通过new String("ab")创建的一个新的字符串对象,即使它们的内容相同,但它们是不同的对象实例,所以使用==比较引用时,结果为false

D. c.equals(d) 这个表达式是正确的。cd都是字符串对象,它们的内容都是"ab",所以使用equals方法比较时,结果为true


有关线程的叙述正确的是()
A.可以获得对任何对象的互斥锁定。
B.通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。
C.线程通过使用synchronized关键字可获得对象的互斥锁定。
D.线程的创建只能通过继承Thread类来实现。

A. 可以获得对任何对象的互斥锁定。这个说法是正确的。在Java中,任何对象都可以作为锁(lock),通过在对象上调用synchronized方法或代码块可以获得对该对象的互斥锁定。

B. 通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。这个说法是不准确的。继承Thread类或实现Runnable接口是为了创建线程,而不是直接获得对类中方法的互斥锁定。互斥锁定是通过synchronized关键字来实现的。

C. 线程通过使用synchronized关键字可获得对象的互斥锁定。这个说法是正确的。在Java中,可以通过在方法或代码块前加上synchronized关键字来获得对象的互斥锁定。

D. 线程的创建只能通过继承Thread类来实现。这个说法是错误的。在Java中,创建线程有两种方式:一种是继承Thread类并重写其run方法;另一种是实现Runnable接口并实现其run方法,然后将Runnable实例传递给Thread对象。


选项中哪一行代码可以添加 到题目中而不产生编译错误?
public abstract class MyClass {
     public int constInt = 5;
     //add code here
     public void method() {
     }
}
A.public abstract void method(int a);
B.constInt = constInt + 5;
C.public int method();
D.public abstract void anotherMethod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值