面试题(六)

48、设计模式

49、继承是否会破坏封装?

继承在面向对象编程中是一个重要的概念,但它确实可能对封装产生影响,具体情况取决于如何使用继承。以下是对这个问题的分析:

封装的定义

封装是面向对象编程中的一个基本原则,旨在将对象的状态(属性)和行为(方法)隐藏起来,仅通过公开的接口与外部进行交互。这有助于保护对象的内部状态,减少系统复杂性,提高代码的可维护性。

继承对封装的影响

  1. 访问修饰符

    • 继承允许子类访问父类的公共(public)和保护(protected)成员。虽然这种机制支持代码重用,但也可能导致子类直接访问和修改父类的内部状态,从而破坏封装。
    • 示例:如果父类有一个受保护的属性,子类可以直接访问和修改该属性,可能导致不一致的状态。
  2. 实现细节暴露

    • 当子类继承父类时,父类的实现细节(如数据结构和算法)可能被暴露。子类依赖这些实现细节时,会使得父类的修改影响到子类,导致封装的边界模糊。
    • 示例:如果父类的某个方法的实现发生变化,所有依赖于该方法的子类都可能需要修改,从而破坏了封装。
  3. 接口的扩展

    • 继承可以导致子类添加新的方法或覆盖父类的方法。这虽然是多态的特性,但如果不谨慎,可能会引入新的依赖关系,从而影响封装性。
    • 示例:子类重写了父类的方法,可能在实现时引入对父类状态的直接依赖,增加了维护的复杂性。

封装的保护措施

  1. 使用私有成员

    • 在父类中使用私有(private)成员来保护内部状态,避免子类直接访问。子类只能通过公共或保护的方法与父类交互。
  2. 提供适当的接口

    • 设计良好的接口(方法)来管理状态变化,确保子类无法直接操作父类的内部状态,从而保护封装。
  3. 组合优于继承

    • 在某些情况下,使用组合(composition)而不是继承可以更好地保护封装。通过将功能组合在一起,可以更好地控制对象的行为和状态。

总结

继承可能会破坏封装,特别是当子类直接访问父类的受保护成员或依赖于父类的实现细节时。然而,通过使用适当的访问修饰符、设计良好的接口和考虑组合的使用,可以在一定程度上减少这种影响,从而保持良好的封装性。

50、写道算法题LRU

51、服务端和客户端之间如何通信

socket套接字

52、有哪些服务是由服务端提供的

bind,listen、accept,close

53、你项目中客户端和服务端都使用到了数据库,分别有什么作用

54、客户端整体的设计模式

55、了解过MVC吗?

是的,MVC(Model-View-Controller)是一种常见的软件架构模式,广泛应用于构建用户界面和应用程序的开发。它将应用程序分为三个主要组件:模型、视图和控制器。以下是对每个组件的详细介绍:

1. 模型(Model)

  • 职责:表示应用程序的核心数据和业务逻辑。模型负责处理数据的存取、验证和处理,以及通知视图层数据的变化。
  • 特点
    • 独立于视图和控制器,可以独立进行测试。
    • 通常与数据库交互,以获取和存储数据。

2. 视图(View)

  • 职责:负责呈现模型的数据,通常是用户界面部分。视图将用户的输入(如点击和输入)展示给用户,并将其格式化为用户可读的形式。
  • 特点
    • 只关注数据的展示,不处理数据的逻辑。
    • 可以有多个视图同时展示同一模型的数据。

3. 控制器(Controller)

  • 职责:充当模型和视图之间的中介。控制器接收用户的输入,处理请求,并更新模型或选择适当的视图进行展示。
  • 特点
    • 处理用户的输入和交互,将用户的请求转换为模型的操作。
    • 通常负责更新视图以反映模型的状态变化。

工作流程

  1. 用户输入:用户在视图上执行操作(例如点击按钮或输入数据)。
  2. 控制器处理:控制器接收用户输入并对其进行处理,通常更新模型的状态。
  3. 模型更新:模型在处理完成后通知视图更新所需的数据显示。
  4. 视图渲染:视图根据最新的模型数据进行更新,重新呈现给用户。

优点

  • 分离关注点:将数据、界面和控制逻辑分开,提高了代码的可维护性和可重用性。
  • 提高灵活性:可以在不影响模型的情况下更改视图,反之亦然。
  • 便于测试:各个组件可以独立测试,提高了测试效率。

常见应用

MVC 模式被广泛应用于Web开发框架,如 Ruby on Rails、ASP.NET MVC、Django、AngularJS 等。

总结

MVC 是一种有效的架构模式,通过分离模型、视图和控制器的关注点,促进了代码的组织和维护。它能够提高应用程序的灵活性和可扩展性,使开发和测试变得更加高效。

56、你这个项目花了多长时间

57、你是如何做的数据加密

数据加密是保护敏感信息的一种有效手段,通常涉及以下几个步骤和方法:

  1. 选择加密算法
    对称加密:使用相同的密钥进行加密和解密,速度快但密钥管理较为复杂。常见算法包括 AES(高级加密标准)、DES(数据加密标准)等。
    非对称加密:使用一对密钥(公钥和私钥)进行加密和解密,安全性高但速度较慢。常见算法包括 RSA、ECC(椭圆曲线密码学)等。
    哈希函数:用于数据完整性校验,生成固定长度的哈希值,不可逆。常见算法包括 SHA-256、MD5 等。
  2. 密钥管理
    生成密钥:使用安全的随机数生成器生成加密密钥。
    存储密钥:确保密钥安全存储,避免硬编码在代码中。可以使用专用的密钥管理系统(KMS)或安全硬件模块(HSM)。
    密钥轮换:定期更换密钥以增强安全性,并确保旧密钥的安全销毁。
  3. 数据加密过程
    数据准备:确保需要加密的数据是完整和有效的。
    加密执行:使用选定的加密算法和密钥对数据进行加密,生成密文。
    存储密文:将密文安全存储,通常是在数据库或文件系统中。
  4. 数据解密
    密钥获取:根据需要获取相应的解密密钥。
    解密执行:使用密钥和加密算法将密文解密为原始数据。
  5. 安全实践
    传输安全:在数据传输过程中使用 SSL/TLS 协议加密数据。
    访问控制:限制对加密和解密操作的访问权限,确保只有授权用户可以访问敏感数据。
    审计与监控:记录加密操作的日志,定期审计密钥和访问控制策略。

58、TCP的重传机制是怎样的

TCP(传输控制协议)的重传机制是确保数据可靠传输的重要组成部分。其主要目标是在数据丢失或损坏时,能够自动检测并重新发送丢失的数据段。以下是 TCP 重传机制的工作原理:

1. 确认(ACK)机制

  • 每当发送方发送一个数据段时,它会等待接收方的确认(ACK)消息,以证明数据段已成功接收。
  • 如果发送方在超时时间内未收到确认,则会认为该数据段丢失,并进行重传。

2. 超时重传

  • TCP 使用一个称为重传定时器的机制,来监控发送的数据段。
  • 每个数据段发送后,TCP 会设置一个超时时间(RTO,Retransmission Timeout)。如果在此时间内没有收到对应的 ACK,发送方会重新发送该数据段。
  • RTO 会根据网络延迟和往返时间(RTT,Round Trip Time)动态调整,以提高效率。

3. 快速重传

  • 当接收方收到一个数据段,但发现后续的数据段丢失时,它会立即发送重复的 ACK(即 ACK 编号与上一个 ACK 相同)给发送方。
  • 如果发送方在接收到三个重复的 ACK 后,仍未收到对应的数据段,它会立即重传该丢失的数据段,而不需要等待超时。

4. 拥塞控制与重传

  • TCP 的拥塞控制算法(如慢开始、拥塞避免、快恢复等)会影响重传策略。
  • 当网络出现拥塞时,TCP 会降低发送速率,并根据 ACK 和重传情况动态调整窗口大小。

5. 选择性确认(SACK)

  • 在一些情况下,接收方可能会收到乱序的数据段,并且有多个数据段丢失。选择性确认(SACK)扩展允许接收方向发送方报告所有成功接收的数据段,以便发送方只重传丢失的数据段。
  • SACK 可以显著减少不必要的重传,提高网络利用率。

6. 总结

TCP 的重传机制结合了确认机制、超时重传、快速重传和选择性确认,确保了数据的可靠传输。通过这些机制,TCP 能够在不稳定的网络环境中有效管理数据丢失和重传,从而保证数据完整性和顺序。

59、一个基于https协议的账号登录页面点击登录后发生了什么?

在一个基于 HTTPS 协议的账号登录页面,用户点击“登录”后,通常会经历以下几个步骤:

1. 表单提交

  • 用户输入用户名和密码,并点击“登录”按钮。
  • 浏览器将收集到的表单数据(如用户名和密码)打包成 HTTP 请求。

2. 建立 HTTPS 连接

  • SSL/TLS 握手:在提交请求之前,浏览器与服务器之间会建立一个安全的 HTTPS 连接。这个过程包括:
    • 客户端发送“客户端 hello”消息,包含支持的 SSL/TLS 版本、加密套件、随机数等。
    • 服务器响应“服务器 hello”消息,选择 SSL/TLS 版本和加密套件,并发送其数字证书(包含公钥)。
    • 客户端验证证书(确保其是可信的),生成一个会话密钥并用服务器的公钥加密后发送给服务器。
    • 服务器使用私钥解密该会话密钥,双方现在可以使用对称加密进行通信。

3. 发送登录请求

  • 浏览器使用 HTTPS 发送包含用户凭证(用户名和密码)的 POST 请求到服务器。
  • 请求的内容是加密的,确保在传输过程中数据的保密性。

4. 服务器处理请求

  • 解密请求:服务器接收到请求后,使用会话密钥解密内容。
  • 验证凭证
    • 服务器从数据库中查找与提供的用户名相匹配的记录。
    • 比较存储的密码(通常是哈希值)与用户提供的密码的哈希值。
  • 生成响应:如果验证成功,服务器会生成一个会话 token(如 JWT),以标识用户的登录状态,并将其发送回客户端。

5. 返回响应

  • 服务器将登录结果(成功或失败)通过 HTTPS 返回给客户端。成功时,可能还包括会话 token 或相关的用户信息。

6. 客户端处理响应

  • 浏览器接收到响应后:
    • 如果登录成功,可能会将会话 token 存储在 Cookies 或 Local Storage 中,以维持登录状态。
    • 页面可能会重定向到用户的主页或其他受保护的资源。
    • 如果登录失败,浏览器会显示相应的错误消息。

7. 后续请求

  • 之后的每个请求都会携带存储的会话 token,服务器通过验证该 token 来确认用户身份,从而允许访问受保护的资源。

总结

在 HTTPS 协议下,用户点击登录后,涉及建立安全连接、发送加密请求、服务器验证用户凭证、返回结果和维护会话等多个步骤。这些步骤确保了用户数据的安全性和隐私性。

60、DNS协议

DNS(域名系统)是一种用于将域名转换为IP地址的协议,确保用户可以通过易记的域名访问互联网资源,而不是使用数字形式的IP地址。以下是 DNS 协议的主要概念和工作原理:

1. 基本概念

  • 域名:如 www.example.com,是人类可读的地址。
  • IP 地址:如 192.0.2.1,是计算机可识别的地址。
  • DNS 记录:存储在 DNS 服务器中的信息,包括不同类型的记录(如 A、AAAA、CNAME、MX 等)。

2. DNS 记录类型

  • A 记录:将域名映射到 IPv4 地址。
  • AAAA 记录:将域名映射到 IPv6 地址。
  • CNAME 记录:将一个域名别名指向另一个域名。
  • MX 记录:指定处理邮件的邮件交换服务器。
  • NS 记录:指定域名的权威 DNS 服务器。
  • TXT 记录:用于存储文本信息,如 SPF 记录和验证信息。

3. 工作流程

  1. 用户请求:用户在浏览器中输入域名并发送请求。
  2. DNS 解析
    • 本地 DNS 缓存:浏览器或操作系统首先检查本地 DNS 缓存。如果找到对应的 IP 地址,直接使用。
    • 递归 DNS 服务器:如果本地没有缓存,查询会被发送到递归 DNS 服务器(通常由 ISP 提供),该服务器负责查找域名的 IP 地址。
  3. 递归解析过程
    • 根 DNS 服务器:递归 DNS 服务器首先查询根 DNS 服务器,根服务器返回对应顶级域(如 .com)的权威 DNS 服务器地址。
    • 顶级域 DNS 服务器:递归服务器向顶级域 DNS 服务器发送查询,获取到具体域名的权威 DNS 服务器地址。
    • 权威 DNS 服务器:最后,递归服务器向权威 DNS 服务器发送查询,获取域名的 A 记录(或其他相关记录)。
  4. 返回结果:递归 DNS 服务器将获取到的 IP 地址返回给客户端,客户端随后可以使用该 IP 地址与目标服务器建立连接。
  5. 缓存结果:为了提高效率,返回的 IP 地址会被缓存一段时间,以便下次请求时可以直接使用。

4. DNS 安全

  • DNSSEC:DNS 安全扩展,提供数据完整性和身份验证,防止 DNS 欺骗攻击。
  • DoH(DNS over HTTPS)DoT(DNS over TLS):通过加密的连接保护 DNS 查询,防止监听和篡改。

5. 总结

DNS 协议是互联网的重要组成部分,负责将人类可读的域名转换为计算机可识别的 IP 地址。它通过递归解析和多层 DNS 服务器的协作,确保用户能够快速可靠地访问网络资源。随着网络安全的需求增加,DNS 安全措施也在不断发展。

61、你这个项目上线了吗?

62、后续项目上线到云服务器上可能需要解决什么问题?

将项目上线到云服务器上,通常需要解决以下几个关键问题:

1. 基础设施准备

  • 选择云服务提供商:根据项目需求选择适合的云服务商(如 AWS、Azure、Google Cloud 等)。
  • 资源配置:确定所需的计算、存储和网络资源,包括实例类型、存储类型和负载均衡设置。

2. 网络配置

  • 安全组和防火墙:配置安全组、网络 ACL 和防火墙规则,确保只有必要的流量可以访问服务器。
  • 域名解析:设置 DNS 记录,将域名指向云服务器的 IP 地址。

3. 环境配置

  • 操作系统和软件环境:选择合适的操作系统,并安装所需的软件和依赖(如 Web 服务器、数据库等)。
  • 环境变量和配置文件:根据生产环境的需求配置环境变量和应用程序的配置文件。

4. 数据迁移

  • 数据备份:确保现有数据的备份,以防数据丢失。
  • 数据导入:将现有数据迁移到云服务器上的数据库或存储系统。

5. 监控与日志

  • 监控工具:配置监控工具(如 CloudWatch、Prometheus 等)来监控应用性能、资源使用情况和健康状态。
  • 日志管理:设置日志收集和分析工具,记录应用和服务器的运行日志,以便进行故障排除和性能分析。

6. 安全性

  • 身份与访问管理:设置用户权限和角色,确保只有授权人员可以访问和管理云资源。
  • 数据加密:确保敏感数据在传输和存储过程中使用加密。

7. 弹性和可扩展性

  • 负载均衡:使用负载均衡器分配流量,确保应用的高可用性和性能。
  • 自动扩展:根据流量和负载设置自动扩展策略,确保在高峰时段能自动增加实例。

8. 备份与恢复

  • 定期备份:设置定期备份策略,确保数据和应用可以快速恢复。
  • 灾难恢复计划:制定灾难恢复计划,确保在故障发生时能够迅速恢复服务。

9. 性能优化

  • CDN 配置:使用内容分发网络(CDN)加速静态内容的交付。
  • 缓存策略:配置缓存策略以提高应用性能,减少数据库查询压力。

10. 测试与上线

  • 测试环境:在正式上线之前,设置测试环境进行完整的功能和性能测试。
  • 灰度发布:考虑使用灰度发布或蓝绿部署等策略,逐步推出新版本,降低上线风险。

总结

将项目上线到云服务器上涉及多个方面的配置和管理,包括基础设施准备、网络安全、数据迁移、监控与日志、弹性与可扩展性等。确保这些问题得到妥善解决,可以提高项目的稳定性和安全性。

63、从一个局域网访问另外一个局域网这个过程要经历哪些步骤

从一个局域网(LAN)访问另一个局域网的过程涉及多个步骤,包括网络设备的配置和数据包的转发。以下是这一过程的主要步骤:

1. 确认目标地址

  • 用户在本地计算机上输入目标局域网中的设备地址(IP 地址或主机名)。

2. DNS 查询(如果使用主机名)

  • 如果用户使用主机名,计算机会首先查询 DNS(域名系统)以获取目标设备的 IP 地址。
  • DNS 查询可能需要经过本地 DNS 服务器和外部 DNS 服务器。

3. 本地网络路由

  • 计算机通过本地路由器(或网关)发送数据包。路由器会检查目标 IP 地址,判断数据包是否在本地网络内。
  • 如果目标 IP 地址不在本地局域网中,路由器会将数据包转发到上级网络或广域网(WAN)。

4. 路由器转发

  • 本地路由器将数据包转发到互联网服务提供商(ISP)或上游路由器。
  • 数据包经过多个中间路由器,在路由表的指导下选择最佳路径。

5. 穿越网络

  • 数据包通过互联网或其他广域网设施,经过多个中间节点(路由器)进行转发,直到到达目标局域网的边缘路由器。

6. 目标局域网的路由器处理

  • 当数据包到达目标局域网的路由器时,路由器会根据目标 IP 地址将其转发到相应的本地设备。
  • 目标路由器检查目标 IP 是否在其管理的局域网范围内。

7. 目标设备接收

  • 数据包最终到达目标设备,设备根据数据包中的信息(如 TCP/UDP 端口)处理请求,并准备返回响应。

8. 返回响应

  • 目标设备生成响应数据包,并将其发送回源局域网。
  • 返回的数据包将沿着相反的路径经过目标局域网的路由器、ISP 和源局域网的路由器,最终到达源计算机。

9. 防火墙与安全策略

  • 在这个过程中,任何局域网或路由器上的防火墙和安全策略都可能会影响数据包的转发。
  • 需要确保适当的端口和协议在防火墙上开放,以便允许通信。

总结

从一个局域网访问另一个局域网涉及 DNS 查询、本地路由器转发、经过互联网的多级路由、目标局域网的路由器处理和最终设备的响应等多个步骤。整个过程依赖于路由、交换和网络安全机制,确保数据能够正确而安全地传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/882163.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VisualStudio的“应用代码更改“按钮功能

无意发现这个按钮,因为开发这么多年也没专门尝试这个按钮,于是好奇它的功能。 光标放在按钮上面提示了“应用代码更改”,于是猜想应该是在调试不断开的情况下支持热应用更改。 经过验证,功能确实如同猜想的一样,具体验…

【Elasticsearch系列廿一】ES7 SQL 新特性

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于c++实现的简易shell

代码逻辑 核心思想 解析命令行,拆解命令及其选项创建子进程,在子进程中执行命令如果是前台执行命令,则父进程就阻塞等待子进程中命令执行结束后回收子进程的资源如果是后台执行命令,则父进程不进行阻塞等待,可继续向下…

【ArcGIS微课1000例】0123:数据库中要素类批量转为shapefile

除了ArcGIS之外的其他GIS平台,想要打开ArcGIS数据库,可能无法直接打开,为了便于使用shp,建议直接将数据库中要素类批量转为shapefile。 文章目录 一、连接至数据库二、要素批量转shp一、连接至数据库 打开ArcMap,或者打开ArcCatalog,找到数据库连接,如下图: 数据库为个…

Laravel邮件发送:从配置到发邮件的指南!

Laravel邮件发送功能如何实现?怎么使用Laravel发信? Laravel作为一款流行的PHP框架,提供了强大且易用的邮件发送功能。AokSend将详细介绍如何从配置到实际发送邮件的全过程,帮助你快速掌握Laravel邮件发送的技巧。 Laravel邮件发…

数据中台!企业的必备还是可有可无?(附数据中台构建完整脑图)

数据中台!企业的必备还是可有可无?(附数据中台构建完整脑图) 前言数据中台 前言 在这个数据爆炸的时代,数据已经成为了企业最宝贵的资产之一。然而,如何有效地管理和利用这些数据,却是许多企业…

Linux驱动开发 ——架构体系

只读存储器(ROM) 1.作用 这是一种非易失性存储器,用于永久存储数据和程序。与随机存取存储器(RAM)不同,ROM中的数据在断电后不会丢失,通常用于存储固件和系统启动程序。它的内容在制造时或通过…

Blender软件三大渲染器Eevee、Cycles、Workbench对比解析

Blender 是一款强大的开源3D制作平台,提供了从建模、雕刻、动画到渲染、后期制作的一整套工具,广泛应用于电影、游戏、建筑、艺术等领域。 渲染101云渲染云渲6666 相比于其他平台,如 Autodesk Maya、3ds Max 或 Cinema 4D,Blende…

Error when custom data is added to Azure OpenAI Service Deployment

题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…

药用植物的空间多组学:从生物合成途径到工业应用-文献精读51

Spatial multi-omics in medicinal plants: from biosynthesis pathways to industrial applications 药用植物的空间多组学:从生物合成途径到工业应用 摘要 随着分子测序和成像技术的快速发展,药用植物的多组学研究进入了单细胞时代。我们讨论了空间多…

振弦式渗压计常见故障有哪些?怎么解决?

振弦式渗压计是一种用于测量结构物或土体内部渗透水压力的仪器,广泛应用于土木工程、水利工程及环境监测领域。在使用过程中,可能会遇到一些常见的故障,以下是一些故障及其解决方法: 1. 读数不稳定: - 确保渗压计安装在…

React18入门教程

React介绍 React由Meta公司开发,是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式 不错的性能 相较于其它前端框架的优势 丰富的生态 跨平台支持 React的市场情况 全球最流行,大厂必备 开发环境…

2024年数学建模比赛题目及解题代码

目录 一、引言 1. 1竞赛背景介绍 1.1.1数学建模竞赛概述 1.1.2生产过程决策问题在竞赛中的重要性 1.2 解题前准备 1.2.2 工具与资源准备 1.2.3 心态调整与策略规划 二、问题理解与分析 三、模型构建与求解 3.1 模型选择与设计 3.1.1 根据问题特性选择合适的数学模型类…

线程池的执行流程和配置参数总结

一、线程池的执行流程总结 提交线程任务;如果线程池中存在空闲线程,则分配一个空闲线程给任务,执行线程任务;线程池中不存在空闲线程,则线程池会判断当前线程数是否超过核心线程数(corePoolSize&#xff09…

【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集

主要内容如下: 1、Visdrone2019数据集介绍 2、下载、制作YOLO格式训练集 3、模型训练及预测 4、Onnxruntime推理 运行环境:Python3.8(要求>3.8),torch1.12.0cu113(要求>1.8)&#xff0c…

[Python]一、Python基础编程(2)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. 文件操作 把⼀些内容 ( 数据 )存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 。 1.1 文件的基本操作 1. 打开文件 2. 读写操作 3. 关闭…

【Go】Go语言切片(Slice)深度剖析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

[PICO VR]Unity如何往PICO VR眼镜里写持久化数据txt/json文本

前言 最近在用PICO VR做用户实验,需要将用户实验的数据记录到PICO头盔的存储空间里,记录一下整个过程 流程 1.开启写入权限 首先开启写入权限:Unity->Edit->Player->安卓小机器人->Other Settings->Configuration->Wri…

Spring的任务调度

Spring的任务调度 1.概述 Spring框架为任务调度提供了专门的解决方案。在Spring框架的org.springframework.scheduling包中,通过对JDK 的ScheduledExecutorService接口的实例进行封装,对外提供了一些注解和接口,为开发者处理定时任务提供了…

力扣面试150 添加与搜索单词 - 数据结构设计 字典树

Problem: 211. 添加与搜索单词 - 数据结构设计 👩‍🏫 参考题解 public class WordDictionary {// 定义一个内部类 Node,用于表示 Trie(前缀树)中的每个节点class Node{// 每个节点有一个大小为 26 的数组&#xff0c…