1.抽象类与接口的异同 ①抽象类可以有构造方法,接口不能 ②抽象类中可以有普通成员变量,接口中不能 ③抽象类中可以包含非抽象方法,接口只有抽象方法 ④抽象类中的抽象方法的访问类型可以是public,protected和默认类型,接口只有public默认 ⑤抽象类可以包含静态方法,接口不能 ⑥抽象类和接口都可以包含静态成员变量,但访问类型不同 ⑦类可以实现多个接口,但只能继承一个抽象类 ⑧接口主要定义模块之间的通信,抽象类用于代码的重用 2. Java虚拟机的运行时数据区和线程私有共享区域的划分 ①程序计数器:线程私有,记录当前线程执行的字节码行号指示器 ②虚拟机栈:线程私有,存放基本数据类型、对象引用和返回地址 ③本地方法栈:线程私有,支持本地方法的调用 ④堆:线程共用,存放对象实例和数组 ⑤方法区:线程共用,存放虚拟机加载的类信息、常量、静态变量等 3. Java面试必知:抽象类与接口的联系 ①抽象类和接口都是抽象化的概念 ②两者都不能被实例化 ③都可以被其他类继承或实现 ④都可以定义方法而不实现 ⑤都可以实现多态和继承 ⑥都可以用于设计框架和接口。