《2023年java面试题.pdf》由会员分享,可在线阅读,更多相关《2023年java面试题.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年 java面试题1、Java设计模式的类别有哪些?基于问题分析,可以将设计模式分为以下几类:创造模式工厂方法/模板模式抽象工厂模式建造者模式原型模式单列模式结构模式适配器模式桥模式筛选模式合成模式装饰者模式正面模式蝇量级模式代理模式行为模式解释模式模板方法/模式责任链模式命令模式迭代器模式策略模式访客模式J2EE模式MVC模式数据访问对象模式前控制器模式拦截过滤器模式转移对象模式2、Java设计模式的优点是什么?Java设计模式的优点是:设计模式可在多个项目中重用。设计模式提供了一个有助于定义系统架构的解决方案。设计模式捕捉软件工程经验。设计模式为应用程序的设计提供了透明度。由于它们
2、建立在专业软件开发人员的知识和经验之上,因此它们得到了证明和充分证明。3、四人组(GOF)都有谁?1994 年,四位作者 Erich Gamma、Ralph Johnson,Richard Hei 和 JohnVlissides 出版了一本名为 Design Patterns Elements of Reusable Object-OrientedSoftware的书。本书介绍了软件开发中的设计模式的概念。这四位作者被称为四人组G0Fo4、创建型模式是什么?创建型设计模式与创建对象的方式有关。在类的实例化时做出决定时使用创建设计模式。EmpRecord el=new EmpRecord();由
3、于new关键字用于在Java中创建对象,因此,这里我们使用new关键字创建实例。在某些情况下,必须根据程序的性质改变对象的性质。在这种情况下,应该使用创建设计模式来提供更通用和灵活的方法。5、抽象工厂模式是什么?抽象工厂模式定义了一个抽象类或接口,用于创建相关对象的系列,但没有指定它们的具体子类。这意味着抽象工厂允许一个类返回一个类工厂。这就是为什么抽象工厂模式比工厂模式高一级。抽象工厂模式围绕创建其他类的超类工作。抽象工厂模式属于创建模式,模式提供了创建对象的最佳方法之一。在抽象工厂模式中,接口负责创建相关对象的工厂,无需明确标识它们的类。每个生成的工厂都可以根据工厂模式给出对象。6、Jav
4、a中的结构模式是什么?结构模式用于提供有关类组合和对象结构的解决方案和有效标准。它们依赖于继承和接口的概念来允许多个对象或类一起工作并形成一个单一的工作整体。结构设计模式负责如何组合类和对象以形成更大的结构。7、Java中的单例模式是什么?Java中的单例模式是一种允许应用程序中的单个实例的模式。单例模式的一个很好的例子是javaJang.Runtime。单例模式状态定义了一个只有一个实例的类,并提供了一个全局访问点。换句话说,类的职责是只创建一个实例,而所有其他类都可以使用一 Vs对象。8、创建单例模式有多少种方法?有两种创建单例模式的方法:早期实例化-它负责在加载时创建实例。惰性实例化-它
5、负责在需要时创建实例。9、适配器模式是什么?适配器模式根据需求将一个类的接口转换为另一个接口。换句话说,它可以在使用具有不同接口的类服务时,根据需要转换接口。它也被称为包装器。10、适配器模式的用途有哪些?它用于以下情况:当对象需要使用具有不兼容接口的现有类时。如果想创建一个可重用的类,它与没有兼容接口的类协作。11、描述设计模式的策略是什么?在描述设计模式时需要注意以下几点:模式名称和分类。问题和解决方案。后 果:还应解决变化和依赖于语言的替代方案。用 途:确定实际系统中的用途及其效率。12、Java中的装饰器模式是什么?装饰器模式是流行的Java设计模式之一。它很常见,因为它在java.i
6、o(包)中的大量使用。装饰器模式使用组合代替继承来在运行时扩展对象的功能。BufferedReader和 BufferedWriter是 Java中装饰器模式的优秀示例。13、Java中策略模式和状态设计模式有什么区别?这个问题是一个常见的Java设计模式面试问题,因为策略和状态模式具有相同的结构。两种模式的UML类图看起来完全相同,但它们的意图不同。状态设计模式用于管理和定义对象的状态,而策略模式用于描述一组可互换的算法。14、Java中复合设计模式的优点是什么?复合设计模式允许客户对可能或可能不代表对象层次结构的对象进行集体操作。复合设计模式的优点如下:它描述了包含原始和复杂对象的类层次结
7、构。它使添加新类型的组件变得容易。它通过可管理的类或接口来促进结构的灵活性。15、复合模式的用途有哪些?复合模式用于以下情况:当想要表示对象的部分或全部层次结构时。如果需要动态地将职责添加到单个对象而不影响其他对象。16、JDK库中使用了哪些设计模式?JDK库中使用的一些设计模式如下。Wrapper类使用装饰器模式。Calendar类(运行时)使用单例模式。Wrapper类使用像Integer.valueOf这样的工厂模式。事件处理框架使用像swing、awt这样的观察者模式。17、Java中 Builder设计模式的优点是什么?构建器设计模式的优点如下:它有助于明确区分对象的构造和表示。它提
8、供了对施工过程的改进控制.构造函数参数减少了,并在高度可读的方法调用中提供。在设计模式中,对象总是以完整的状态被实例化。在 Builder设计模式中,Immutable对象可以在对象构建过程中快速构建。18、能用Java写线程安全的单例吗?有很多方法可以在Java中编写线程安全的单例:可以通过使用双重检查锁定编写单例来编写线程安全的单例。通过使用在类加载期间初始化的静态Singleton实例。通过使用Java枚举来创建线程安全的单例,这是最直接的方法。19、是否可以创建单例对象的克隆?是的,可以创建单例对象的克隆。20、代理模式是什么?它有什么作用?术语Proxy代表一个对象代表另一个对象。代
9、理模式为其他目的提供替代或占位符来控制对其的访问。根据四人帮的说法,代理模式”提供对访问原始对象的控制。可以执行许多安全操作,例如隐藏原始对象的信息、按需加载等。它也被称为占位符或代理。21、Java中的代理模式有哪些?在很多情况下,代理模式是非常有用的。下面来看看Java中一些不同的代理。保护代理它根据某些条件控制对真实主题的访问。虚拟代理虚拟代理用于实例化昂贵的对象。代理在实现中管理真实主体的生命周期。它决定实例创建的需要以及何时重用它。虚拟代理优化性能。缓存代理缓存代理用于缓存对真实主题的昂贵调用。代理可以使用许多缓存策略。其中一些是通读、通写、缓存和基于时间的。缓存代理用于提高性能。远
10、程代理远程代理用于分布式对象通信。远程代理通过调用本地对象方法在远程对象上执行。智能代理智能代理用于22、责任链模式是什么?在责任链模式中,Sender向对象链发送请求,链中的任何对象都可以处理该请求。责任链模式避免将请求的发送者耦合到其接收者。例 如,ATM服务在货币交易中使用责任链设计模式。此 外,我们可以解释,通常每个接收器都包含另一个接收器的引用。如果一个对象无法处理请求,那么它会将相同的请求发送给下一个接收者,依此类推。23、责任链模式有什么优点?应该什么时候使用?责任链模式有以下优点:它使耦合最小化。它在将职责分配给对象时提供了灵活性。它允许一组类作为一个类。一个类中产生的事件可以
11、在组合的帮助下发送到其他处理程序类。责任链模式的使用它用于以下情况:当多个对象准备好处理一个请求并且处理程序未知时。如果必须动态指定可以处理请求的集合或一组对象。24、桥接模式与适配器模式有何不同?适配器模式的动机是使一个或多个类的接口看起来相似。Bridge模式旨在将类的接口与其实现隔离,因此我们可以在不更改客户端代码的情况下更改或替换实现。25、依赖注入和服务定位器模式有什么区别?服务定位器用于创建类依赖项。无论是否使用服务定位器,该类仍然负责创建其依赖项。服务定位器也用于隐藏依赖关系。当对象从定位器获取连接时,不能通过查看对象来判断它是否与数据库连接。使用依赖注入,包含其依赖的类既不知道
12、也不关心它们来自哪里。一个显着的区别是依赖注入更容易进行单元测试,因为可以传入它的依赖对象的模拟实现。可以结合这两个对象并应用服务定位器。26、MVC模式是什么?MVC模式是J2EE设计模式类别中最常用的模式之一。它与模型-视图-控制器的概念非常相似。缩写MVC取自Model-view-controller概念。模型是对象,用作将在应用程序中使用的所有对象的蓝图。视图包含位于模型中的数据和信息的表示方面。控制器控制模型和视图,因为它们充当两个对象之间的连接。控制器在View和Model之间扮演接口的角色,并且拦截所有传入的请求。27、拦截过滤器设计模式是什么?它有什么好处?拦截过滤器设计模式用
13、于在请求处理之前和之后拦截和操纵请求和响应。过滤器执行请求的身份验证/授权/记录或跟踪,然后将请求转发给相应的处理程序。让我们看一下拦截设计模式的一些基本实体。过滤它在请求处理程序执行请求之前或之后执行某个任务。过滤链它包含多个过滤器,并有助于在目标上按定义的顺序执行它们。目标目标对象是请求处理程序过滤器管理器它管理过滤器和过滤器链。客户客户端对象是向目标对象发送请求的对象。拦截过滤器设计模式的好处过滤器模式通过松散耦合的处理程序提供中央控制。它扩展28、数据访问对象(DAO)模式是什么?数据访问对象模式用于将低级数据访问API或操作与高级业务服务隔离开来。以下是DAO模式中的组件。数据访问对象接口 DAO接口描述了对模型对象执行的标准操作。数据访问对象具体类这个类实现了一个DAO接口。此类负责从数据源获取数据,该数据源可以是Xml/数据库或彳石可其他存储机制。模型对象或值对象这个对象是一个普通的旧java对象,包含get/set方法来存储使用DAO类检索到的数据。
限制150内