1.Java中的继承是单继承还是多继承?
java中类支持单继承多实现, (接口可以继承多个接口)
2.Static关键字有什么作用?
Static表示静态的,可以修饰内部类、方法、变量、代码块
Static修饰的方法是静态方法,表示该方法属于当前类的,而不属于某个对象的,静态方法也不能被重写,可以直接使用类名来调用。在static方法中不能使用this或者super关键字。
Static修饰变量是静态变量或者叫类变量,静态变量被所有实例所共享,不会依赖于对象。静态变量在内存中只有一份拷贝,在JVM加载类的时候,只为静态分配一次内存。
3.final在java中的作用,有哪些用法? final表示唯一的,不可变的.
final修饰的类不能被继承,
final修饰的方法不能被重写,
final修饰的变量只能被赋值一次。
final修饰的实例变量不会被赋默认值,必须手动赋值。
(可以在变量后面直接赋值,也可以在构造方法中赋值)
final修饰的实例变量一般和static联合使用(常量)。
final修饰的引用一旦指向某个对象,将不能再指向其他对象,
但所指向对象的内部数据是可以更改的。
4.面向对象的特征(了解)
面向对象的特征:封装、继承、多态、抽象。
封装:就是对外提供功能和方法,别人只能使用,但不知道是如何实现的,增加安全性.
继承:子类继承父类的数据属性和行为,提高了代码的复用性。
多态:多种形态,多种状态,编译和运行有两个不同的状态。编译期叫做静态绑定。
运行期叫做动态绑定。封装和继承几乎都是为多态而准备的。
抽象 表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。在Java中抽象用 abstract 关键字来修饰,用 abstract 修饰类时,此类就不能被实例化,从这里可以看出,抽象类(接口)就是为了继承而存在的。
5.instanceof关键字的作用
双目运算符,用来测试左边的对象是否为右边类的实例
6.什么是单例模式?有几种?
单例模式:某个类的实例在 多线程环境下只会被创建一次出来。
单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。
饿汉式:线程安全,一开始就初始化。
懒汉式:非线程安全,延迟初始化。
双检锁:线程安全,延迟初始化。