下列有关抽象类与接口的叙述中正确的是哪一个____C____。 A抽象类中必须有抽象方法,接口中也必须有抽象方法 B抽象类中可以有非抽象方法,接口中也可以有非抽象方法 C含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法 D抽象类中的变量定义时必须初始化,而接口中不是解析:A:都不是必须要有,可以不写;
B:抽象类中可以有非抽象方法,接口中不可以有非抽象方法
D:抽象类中的变量定义时可以不初始化,而接口中必须初始化
以下关于线程互斥和同步的叙述中,正确的是(C)
A多线程互斥使用各自资源的程序段,在操作系统中称为临界段
B临界段的作用是使某线程能够使用其它线程的资源
C可以使用notify()方法通知等待线程结束等待
D线程的互斥和同步可以很好地解决死锁问题解析:A:多线程互斥使用共享资源的程序段,在操作系统中称为临界段
B:临界段是一种加锁的机制,与多线程共享资源有关。临界段的作用是在任何时刻一个共享资源只能供-一个线程使用.
D:这个说法是不完全正确的。虽然线程的互斥和同步可以帮助避免死锁问题,但它们本身并不能完全解决死锁问题。
死锁是指两个或多个进程/线程被无限期地阻塞,等待彼此持有的资源。当存在多个进程/线程竞争有限的资源时,如果它们在持有一部分资源的同时还尝试获取其他资源,并且这些资源已经被其他进程/线程持有了,就可能导致死锁问题。
虽然使用互斥锁和同步机制可以确保在任何时刻只有一个进程/线程能够访问某个共享资源,但这并不能保证不会发生死锁。例如,在一个复杂的系统中,可能有多个线程需要获得不同的锁来完成各自的任务。如果一个线程持有了一个锁,然后尝试获取另一个锁,而另一个线程已经持有了这个锁,那么就可能导致死锁问题。
因此,虽然互斥和同步机制是避免死锁问题的重要手段之一,但仅仅依靠它们是不足以完全解决死锁问题的。为了有效地避免死锁,还需要更加复杂的算法和技术。
以下关于接口的叙述中,正确的是( D )
A.所有的接口都是公共接口,可被所有的类和接口使用
B.一个类通过使用关键字interface声明自己使用一个或多个接口
C.接口中所有的变量都默认为public abstract属性
D.接口体中不提供方法的实现
解析:A:用public修饰的接口是公共接口,可以被所有的类和接口使用,而没有public修饰符的接口则只能被同一个包中的其他类和接口利用。
B:一个类通过使用关键字implements声明自己使用一个或多个接口。若使用多个接口,接口名之间用逗号隔开。格式如下:
class ClassName implements Interface1, Interface2
C.接口中所有的变量都默认为public static final属性,而方法才是public abstract;