面试题:03(完成)

1.1 面向对象的特征?

  1. 面向对象的特征包含: **封装“ “继承“ “抽象“ “多态**四种;
  • 封装

    把对象的属性和数据封装成一个独立的整体,单独保存在某个类中,并尽可能隐藏代码的执行过程,优点是增加代码的安全性和独立性;

  • **_继承

    子类继承父类所有可继承的属性和方法,并重写该方法的过程叫继承,继承的优点是增加代码的扩展性;

  • 抽象

    在父类或者接口中定义抽象方法,规定继承该或实现该父类的子类对象一定要重写父类或者接口中的方法,也可以认为抽象类就是为了继承而存在的;

  • 多态

    多态的执行规律是编译看父类,执行看子类,父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性,但是调用子类的特有方法需要向下转型;

1.9 什么是单例模式?有几种?

  1. 某个类的实例被调用时,对象只会创建一次的行为称为单例模式;
  2. 单例模式包含: **饿汉式“ “懒汉式“ “双检锁**三种;
  • 饿汉式

    一开始就初始化,线程安全;

  • 懒汉式

    延迟初始化,非线程安全,可能由于特殊情况会再次创建对象;

  • 双检锁

    延迟初始化,线程安全;

⭐一般使用场景

  1. 资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置;
  2. 控制资源的情况下,方便资源之间的互相通信。如线程池等;

6.9 重载和重写的区别?

①. 发生在同一个类中,方法名必须相同,参数类型不同.个数不同.顺序不同,方法返回值和访问修饰符可 以不同,发生在编译时;
②.发生在父子类继承过程中,方法名.参数列表必须相同,子类返回值范围小于等于父类,抛出的异常范 围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重 写该方法;