正确的main入口写法是
public static void main(String[ ] args)
但是题目这样写,虽然错了,但是编译无错误。
选错误的!!!
笞案解析:
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控。状态依然保特,到时后会自动恢复。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
选错误的!!!
抽象类(关键字:abstract)
在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
一个方法,要么给它方法体,要么把它定义为抽象类。
抽象类不能直接访问,要通过子类来访问。
抽象类的特点
1.抽象类和抽象方法必须使用abstract关键字修饰。
public abstrcat class 类名{ }
public abstrcat void eat();
2.抽象类中不一定有抽象方法,但有抽象方法的一定是抽象类。
3.抽象类不能实例化
抽象类参照多态的方式,通过子类对象实例化,这叫抽象类多态。
4.抽象类的子类
要么重写抽象类中的所有抽象方法。
要么是抽象类
通俗理解:我给定了个规定,要学什么你必须学,但我没说怎么学。
抽象类的成员特点
成员变量:可以是变量,也可以是常量
构造方法:有构造方法但不能被实例化;
作用:用于子类访问父类数据的初始化。
成员方法:可以有抽象方法:限定子类必须完成某些动作
可以有非抽象方法:提高代码的复用性
接口
(接口用关键字interface修饰,类实现接口用implements表示)
接口就是一种公共的规范标准,只要符合规范标志,大家都可以通用。Java中的接口更多体现在对行为的抽象。
接口的特点
1.接口用关键字interface修饰
public interface 接口名{ }
2.类实现接口用implements表示
public class 类名 implements 接口名{ }
3.接口不能实例化
接口参照多态的方式;通过实现类对象实例化,这叫接口多态。
tip:多态的形式:具体类多态,抽象类多态,接口多态
多态的前提:有继承关系;有方法重写;有父(类/接口)引用指向(子/实现)
类对象。
4.接口的实现类
要么重写接口中的所有抽象方法,要么是抽象类。
成员特点
成员变量:只能是常量(默认修饰符 public static final)
构造方法:接口没有构造方法,因为接口只要是对行为进行抽象的,是没有具体存
在。一个类如果没有其父类,默认继承自Object类。
成员方法:只能是抽象类。
类和接口的关系
类和类的关系:继承关系,只能单继承,但是可以多层继承。
类和接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时
实现多个接口。
接口和接口的关系:继承关系,可以单继承,也可以多继承(用逗号隔开)。
抽象类和接口的区别
成员区别:
抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法。
接口:常量,抽象方法。
设计理念区别
抽象类:对类抽象,包括属性,行为
接口:对行为抽象,主要是行为。
答案解析:sleep:导致此线程暂停执行指定时间
stop:这个方法将终止所有未结束的方法,包括run方法。
synchronized(:对象锁
yield:当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。
wait:当前正在被服务的线程需要睡一会,醒来后继续被服务
在类方法中,可直接调用本类中的类方法,但是不能直接调用本类中的实例方法。
B:确实是放在队列的前面。