Java经典知识点&面试题整理04

1.请谈谈Java中设计模式的分类,并简要概述其中工厂模式与抽象工厂模式的区别。

总体来说设计模式分为三大类:

①创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式;

②结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式;

③行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

两种模式区别如下:

工厂模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使其创建过程延迟到子类进行;

抽象工厂模式是为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

通俗的可以理解为:工厂模式针对的是一个产品等级结构,抽象工厂模式针对的是面向多个产品等级结构的。它们的详细区别可以参照博客链接https://www.cnblogs.com/study-makes-me-happy/p/7839052.html其中的第18题,解析的比较清楚。

其他模式参考链接https://www.cnblogs.com/shan1393/p/9144491.htmlhttps://www.cnblogs.com/Leo_wl/p/6067267.html#_label0的说明,这里不作过多的解释。

2.请说说什么是重载,以及什么是重写?并比较两者之间的区别。

重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。其特征有:

(1):方法名必须相同;

(2):方法的参数列表一定不一样;

(3):访问修饰符和返回值类型可以相同也可以不同。

重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但是具体的实现不同。其特征有:

(1):方法名和返回值类型必须相同;

(2):参数列表必须相同;

(3):访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected;

(4):子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法;

(5):构造方法不能被重写。

具体区别可参考链接https://blog.csdn.net/qq_42014192/article/details/89707483

3.JDK和JRE有什么区别?

JDK:Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和运行环境;

JRE:Java Runtime Environment的简称,Java运行环境,为Java运行提供了所需的环境;

JDK包含了JRE,简单来说就是:运行Java程序时,只需安装JRE;编写Java程序时,需要安装JDK

4.抽象类必须要有抽象方法吗?

不一定,抽象类不一定非要有抽象方法;但包含一个抽象方法的一定是抽象类

例如定义如下一个抽象类,代码如下:

abstract class Cat {
    public static void sayHi() {
    System. out. println("hi~");
    }
}

以上代码表明,抽象类没有抽象方法也能够运行。

5.ArrayList和Vector的区别是什么?

线程安全:Vector使用了synchronized来实现线程同步,是线程安全的;而ArrayList是线程不安全的;

扩容:ArrayList和Vector都会根据实际需要动态的调整容量,Vector每次扩容增加一倍,ArrayList只会增加50%。

好了,本期博客就到这里了,我们下期再见!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值