1. 请描述一下Java中接口和抽象类的区别,以及各自的使用场景接口和抽象类都是Java中实现抽象的方式。接口使用interface关键字定义,所有方法默认是public abstract的(Java 8后可以有默认方法),只能包含常量。一个类可以实现多个接口,这弥补了Java单继承的限制。抽象类使用abstract关键字修饰,可以包含抽象方法和具体方法,可以有成员变量,可以有构造方法。一个类只能继承一个抽象类。使用场景上,当多个类有共同行为但实现方式不同时用接口;当多个类有共同的属性和部分共同实现时用抽象类。比如动物类适合用抽象类,而飞行能力适合用接口。2. HashMap的底层实现原理是什...