HarmonyOS-面试资料

1. HarmonyOS-面试资料

1.1. HarmonyOS 优点、特点

1.1.1. 优点

  (1)在国家方面,是国产的系统,受国家支持不会有限制的情况。
  (2)设备互连1+8+N(1:手机 8:平板、PC、vr设备、可穿戴设备、智慧屏、耳机、AI音箱、车机 N:可延伸的设备和服务)
  (3)数据共享,万物互联。
  (4)未来的发展的前景。

1.1.2. 特点

  跨平台能力,基于微内核设计,提供分布式能力,强调安全性,以及面向未来全场景的无缝体验。

1.2. 鸿蒙系统的权限有哪些

1.2.1. 按权限等级划分

	normal(普通应用权限):可以访问相机、wifi信息等,权限较为基础,对用户隐私和系统安全的影响较小。
	system_basic(特殊应用权限):能够访问用户身份认证等资源,此类权限的风险程度相对较高,需要更严格的管理和控制。
	system_core(系统应用权限):可访问所有系统资源,但通常只有系统核心组件和经过严格严格审核的关键应用才会被授予该等级的权限。

1.2.2. 按授权方式划分

	system_grant(系统授权):只需要在配置文件中进行相应配置,系统默认授权,不需要用户手动干预。如:网络授权。
	user_grant(用户授权):应用需要在配置文件中进行配置,并且要在对应的功能调用前是否授权。如相机权限

1.2.3. 常见的权限

	设备权限:相机权限、麦克风权限、通讯录权限、位置权限、存储权限。
	网络权限:wifi权限、移动网络权限。
	传感器权限:加速度传感器权限、陀螺仪传感器权限、光线传感器权限
	其他权限:振动权限、通知权限、悬浮窗权限

1.3. 说一说鸿蒙系统的安全机制

1.3.1. 系统架构安全

  (1)微内核架构:鸿蒙采用微内核架构,内核仅保留最基础的系统服务,如多线程的调度、多线程通信等,其他系统服务在用户态实现。
这种架构减少了内核的代码量,降低了内核被攻击的风险,同时也便于对系统服务进行独立的管理和更新,提高了系统的稳定性和安全性。
  (2)分布式架构:鸿蒙的分布式架构支持设备之间的安全通讯和协同工作。在设备互联时,通过加密和认证等技术,确保数据在传输过程中的安全性和完整性,防止数据被窃取和篡改。
  如:手机和智能家电进行交互时,数据传输会经过加密处理,保障用户的隐私和设备的安全。

1.3.2. 权限管理安全

  (1)细粒度权限控制:鸿蒙系统提供完善的应用权限管理功能,能够对应用的权限进行细粒度的控制。用户可以根据应用的实际需求,灵活的授予或者拒绝应用的各种权限,如:相机权限、麦克风权限、位置权限等,从而有效防止应用过度获取用户数据,保护用户的隐私安全。
  (2)权限动态管理:权限的授予并非一成不变,鸿蒙系统支持权限的动态管理。
  例如:当应用在后台运行时,系统可以自动限制其部分权限的使用,当应用重新回到前台并需要相应权限时,再动态授权其权限,确保应用在不同的运行状态下都能以最小化的权限获取所需资源,进一步降低安全风险。

1.3.3. 权限管理安全数据加密安全

  (1)用户数据加密:鸿蒙系统对用户的重要数据进行加密存储。无论是本地存储的数据还是设备间的传输数据,都采用加密算法进行加密处理。即使数据被非法获取,攻击者也无法直接读取其中的内容,从而保障了用户数据的保密性和安全性。
  (2)文件加密:系统支持对文件进行加密,用户可以选择对敏感文件进行加密存储,只有在通过身份验证后才能解密和访问这些文件,为用户的个人文件和隐私信息提供了更高级别的保护。

1.3.3. 安全启动与认证

  (1)安全启动:在设备启动过程中,鸿蒙系统会进行安全启动校验,确保系统的完整性和合法性。只有经过数字签名认证的系统镜像和内核才能被正常启动,防止设备被植入恶意软件或非法篡改系统,从源头保障系统的安全运行。
  (2)身份认证:对于对设备互联和用户登录等场景,鸿蒙系统支持多种身份认证方式,如密码认证、指纹认证、面部识别等。通过这些强身份机制,确保只有合法的用户或设备能够访问相应的资源和服务,增强了系统的安全性和可靠性。

1.3.5. 应用安全管理

  (1)应用审核上架:鸿蒙应用商店对上架的应用进行严格的审核,确保应用的合法性和安全性。审核过程中会检查应用是否存在恶意代码、是否符合安全规范等,只有通过审核的应用才能在应用商店中上架供用户下载和使用,有效防止恶意应用进入用户的设备。
  (2)应用运行时监控:系统在应用运行时会对其进行监控,实时监测应用的行为是否异常。一旦发现应用存在异常行为,如私自获取用户数据、篡改系统设置等,系统会及时发出警告并采取相应的措施,如限制应用的权限或者直接终止应用的运行,保障用户设备的安全。

1.3.6. 隐私保护增强

  (1)隐私权限管理:鸿蒙系统重新定义并取消了通话记录、短信、电话、读取已安装应用列表等9类不合理的权限,降低了用户的隐私管理成本,从根源减少了隐私泄露的风险,把隐私控制权真正还给用户。
  (2)安全访问机制:例如在需要扫码的应用中,用户在扫码拍照的操作中,应用智能获得本次的扫码结果,无需将使用相机拍照的权限交给该应用,进一步细化和增强了对用户隐私数据的保护。

1.4. 说一说鸿蒙系统的微内核与安卓的内核区别

  鸿蒙系统使用的微内核架构,内核仅保留必要的基础系统服务(如:任务管理、内存分配)
  安卓系统采用的是Linux内核,其内核包含了操作系统绝大多数的功能和模块,且这些功能和模块都具有最高权限。优点是系统开发难度低,但一个模块出错,整个系统就可能崩溃,稳定性相对较弱。

1.5. 鸿蒙操作系统的微内核架构有哪些优势

  微内核架构优势包括:
  更高的安全性:因为服务之间的隔离性更强
  更好的可扩展性:因为可以按需添加或者删除服务
  更易于维护和更新

1.6. 分布式能力在鸿蒙系统中如何实现

  鸿蒙操作系统通过分布式软总线,分布式数据管理、分布式任务调度等技术实现跨设备的无缝协作和数据共享。

1.7. 请解释一下鸿蒙系统中的分布式软总线技术

  分布式软总线是一种通信机制,允许不同设备之间进行低延迟、高效率的数据传输和通信,实现折本间的协同工作。

1.8. 如何在鸿蒙操作系统中进行多设备协同开发?

  开发者可以使用华为提供的开发工具和sdk,如:DevEco Studio,进行多设备协同开发,实现一次开发,多端部署的目标。

1.9. 鸿蒙操作系统如何保障系统的安全性?

  鸿蒙操作系统采用的是,微内核设计,实现了操作系统的服务隔离,减少了单点故障的风险。
  同时,还引入了安全启动、数据加密等多重安全机制。

1.10. 请描述一下鸿蒙操作系统的用户界面开发框架

  鸿蒙操作系统的用户界面开发框架是基于Java的ArkUI框架,它提供了一套丰富的UI组件和布局方式,支持开发者快速构建美观、流畅的用户界面。

1.11. 鸿蒙操作系统支持哪些编程语言

  鸿蒙操作系统主要支持Java、c/c++以及javaScript等编程语言进行应用开发。

1.12. 请解释一下鸿蒙操作系统的IDE–DevEco Studio

  是华为为鸿蒙操作系统量身打造的集成开发环境,提供了代码编辑、调试、性能监控、应用分析等一系列开发工具、帮助开发者提高开发效率。

1.13. 请简述鸿蒙操作系统的任务调度机制

  鸿蒙操作系统的任务调度机制是基于微内核,它可以根据任务的优先级和资源需求,智能地在不同设备间调度任务,实现资源的最优分配。

1.14. 鸿蒙操作系统如何处理多任务并发

  鸿蒙操作系统通过微内核架构和先进的调度算法,实现了高效的多任务并发处理,保证了系统的流畅性和响应速度。

1.15. 请描述一下鸿蒙操作系统的文件系统

  鸿蒙操作系统的文件系统是面向分布式场景设计的,支持多设备间的文件共享和同步,提供了高效、可靠的数据存储能力。

1.16. 鸿蒙操作系统如何支持开发者进行应用调试

  鸿蒙操作系统提供了一系列的测试工具和服务,如模拟器、性能分析工具等,帮助开发者进行全面的应用测试和优化。

1.17. 请解释一下鸿蒙系统的能效管理机制

  鸿蒙操作系统通过智能调度、资源管理机制,优化了系统的能效表现,延长了设备的使用时间。

1.18. 鸿蒙操作系统如何处理权限管理?

  鸿蒙操作系统采用了严格的权限管理策略,确保应用只能访问授权的数据和服务,保护用户的隐私和数据安全。

1.19. 请描述一下鸿蒙操作系统的更新机制

  鸿蒙操作系统支持无缝更新,可以在不影响用户使用的情况下,自动下载并安装系统更新,确保系统的安全性和最新性。

1.20. 鸿蒙操作系统如何支持国际化和本地化

  鸿蒙操作系统提供了强大的国际化和本地化支持,允许开发者轻松地为不同地区和语言的用户提供定制化的服务和体验。

1.21. 请解释一下鸿蒙操作系统的开发者社区和支持资源

  华为为鸿蒙操作系统建立了一个活跃的开发者社区,提供了丰富的文档、教程、论坛等资源,帮助开发者解决问题和提升技能。

1.22. 鸿蒙操作系统如何促进开发者生态建设?

  华为通过提供开发工具、技术支持、开发者大会、合作伙伴计划等多种方式,鼓励和支持开发者参与鸿蒙操作系统的生态建设,共同推动产业发展。

1.23. 鸿蒙系统各设备之间如何通讯的

1.23.1. 简答:

  开发者可以使用鸿蒙操作系统提供的分布式能力API,如:分布式软总线API,实现设备间的通信和数据传输。

1.23.2. 复杂:

  一、基于分布式软总线通讯
(1)发现连接:分布式软总线提供了基于多种通讯方式如:wifi、蓝牙等设备发现连接能力。
(2)设备组网:它还具备统一的设备组网和拓扑管理能力,能为数据传输提供已组网设备的相关信息,确定设备之间的连接关系和数据传输路径,从而实现多设备的协同组网。
(3)数据传输:在建立连接和组网后,分布式软总线提供了数据传输通道,支持消息、字节、流、文件等多种数据类型的传输,满足不同设备间的不同业务场景的数据交互需求,业务方只需要使用其提供的API就能实现设备间的高速通信,无需关心具体的通信细节。

  二、通过网络协议通讯
(1)基于Socket的TCP/IP通信:Socket是一种提供网络通信能力的编程接口,鸿蒙系统中的设备可以利用ohos.net.Socket类来建立两个设备之间的网络连接,并在连接上进行数据的读写操作,实现设备间的可靠数据传输。
(2)基于HTTP协议的RESTFUL接口调用:设备间可以通过发送HTTP请求和接收HTTP响应来进行通讯。
  三、借助云端服务器通讯
(1)即时通讯应用:在一些即时通讯场景中,多台终端设备通过安装相应的应用,并向云端服务器申请账号。用户编辑信息后,通过网络将消息发送至云端服务器,服务器在根据接收放的状态决定是立即推送消息还是暂时缓存。
(2)数据同步与共享:设备可以将数据上传至云端服务器进行存储和管理,其他设备在需要时从云端获取数据,从而实现数据在不同设备间的同步和共享,保证各设备上的数据一致性和最新性。

1.24. 服务与卡片

1.24.1. 元服务卡片和ArkTS卡片有什么相同点与不同点,各自的适用场景是怎么样的。

元服务卡片(Meta Service Card)和ArkTS卡片都是使用ArkTS语言开发的,它们在功能和用途上有一些相似之处,也存在一些不同。

1.24.1.1. 相同点:

  开发语言:两者都是使用ArkTS语言进行开发,提供了声明式的UI构建方式和组件化开发体验。
  界面设计:它们都支持使用华为的ACE (Ability Cross-platform Environment) 设计语言,实现一致的用户界面风格。
  跨设备使用:无论是元服务卡片还是ArkTS卡片,都可以在多种鸿蒙设备上运行,提供无缝跨设备体验。
  动态更新:两种卡片都支持动态更新,能够在不更新整个应用的情况下,更新卡片内容。

1.24.1.2. 不同点:

  定义与范畴:
  (1)元服务卡片:是鸿蒙操作系统中的一种服务形式,它可以在不打开应用的情况下,向用户提供关键信息和快速操作。元服务卡片通常与系统的服务能力紧密结合,如通知、搜索等。
  (2)ArkTS卡片:更倾向于指的是使用ArkTS语言开发的卡片式UI组件,它可以是应用内的一部分,也可以作为独立的小程序存在。
  功能与交互:
  (1)元服务卡片:通常提供的是简短的信息展示和快速操作入口,例如显示天气信息、控制音乐播放等。   (2)ArkTS卡片:则可以承载更复杂的功能和交互,例如可以是一个完整的列表、表单或游戏界面。
  (3)适用场景:

  元服务卡片:适用于快速、便捷的信息展示和交互,特别适合于需要频繁更新内容的服务,例如新闻、天气、日程提醒等。
  ArkTS卡片:适用于需要复杂交互和功能的应用场景,如购物、阅读、游戏等,它们可以提供更为丰富的用户体验。

1.24.2. router机制、call机制与message机制有什么不同?

  这三个机制都可以用来刷新桌面卡片的,三种机制的数据都以JSON的格式进行配置,并使用formBindingData.createFormBindingData()函数构建数据对象。
  主要区别在于:
  router机制会直接打开应用界面,效果有点像点击桌面图标。也可以带参数打开应用,直接进入应用内部的某个特定位置,或者触发某项功能。
  使用场景:用于在卡片上点击按钮后跳转到应用中的指定UIAbility页面,实现一键直达功能。
  最佳实践:适用于UIAbility页面较多的应用,如音乐、视频、相册等,通过卡片提供不同的跳转按钮,方便用户快速进入所需页面。
  call机制是不打开应用界面,仅在后台拉起应用主体的UIAbility,来执行UIAbility内部的相关代码。call机制不受5秒时长的限制,可以先实现复杂且费时的数据加载,再提供给桌面卡片进行刷新。
  使用场景:用于在卡片上点击按钮后,不打开应用界面,只在后台调用应用的指定方法,执行特定操作。
  最佳实践:适用于需要后台处理操作的场景,如音乐播放控制、天气数据刷新等,可以在后台完成数据加载和处理,然后更新卡片内容。
  message机制则不涉及到应用的UIAbility,只是拉起桌面卡片自己的FormAbility,也可以刷新卡片,但仍然受5秒时长的限制,更适合轻量化的的实现卡片内容的刷新。
  使用场景:用于在卡片上点击按钮后,拉起卡片自身的FormAbility,进行轻量级的卡片内容刷新。
  最佳实践:适用于简单的卡片内容刷新,不需要后台复杂操作的场景,如展示简单文字内容、图片等,可以通过message事件快速刷新。

1.25. ForEach与LazyForEach的区别

  LazyForEach 是一种懒加载循环结构,它会在需要时才加载并迭代列表中的元素。这对于大型数据集或需要按需加载数据的应用程序非常有用,因为它可以减少内存使用并提高应用程序的性能。
  ForEach 是一种常规的循环结构,它会迭代列表中的每个元素,并在循环中执行指定的操作。与LazyForEach不同,ForEach 会立即加载并迭代整个列表,因此不适合处理大型数据集或需要按需加载数据的应用程序,
  总的来说,选择使用 LazyForEach 还是 ForEach 取决于您的应用程序的需求和性能要求。如果您需要处理大型数据集或需要按需加载数据,那么 LazyForEach 可能是更好的选择。如果您只需要迭代小型数据集或不需要按需加载数据,那么 ForEach 可能就足够了。

1.26. 什么是HAP

  是应用安装和运行的基本单元。
  HAP包是有代码、资源、第三方库、配置文件打包生成的模块包
  分为2种类型:entry和feature
  entry:应用的主模块。
  feature:动态特征模块。
  应用程序包只能有一个entry包和多个的feature。

1.27. HAR与HSP的区别

  HAR:静态共享包
  HSP:动态共享包

1.27.1. 区别:

  相同点:
  1.模块间的资源共享
  2.不支持在设备上单独安装、运行
  3.不支持再配置文件中声明UIAbility组件
  4.不支持循环依赖,也不支持依赖传递

1.27.2. 不同点:

  1.HAR: 可以发布到第三方库 HSP不可以
  2.HAR:不支持再配置文件中声明配置页面 HSP可以
  3.HSP: 多模块依赖只打包一份 HAR: 每个依赖都会加载份
  4.性能上: HAR > HSP 若考虑占用空间上HSP 占用少
  5.HSP:支持按需加载

1.28. Stage模型与FA模型的区别

1.28.1. Stage模型(华为推荐模型):

  组件分类:包括UIAbility和ExtensionAbility。
  UIability主要用于用户交互。
  ExtensionAbility:用于提供特定场景下的扩展能力。
  开发方式:
  采用面向对象的方式,应用组件以类接口的形式开放,支持派生,有利于扩展。
  进程和线程模型:
  多个应用组件共享同一个ArkTS引擎实例,减少了内存占用,并允许组件之间方便共享对象和状态。

1.28.2. FA模型:

  组件分类:包含PageAbility,ServiceABility和DataAbility。
  1.PageAbility用于展示UI
  2.ServiceAbility提供后台服务
  3.DataAbility用于数据分享。
  发开方式:
  通过导出匿名对象和固定入口文件的方式来指定应用组件,这种方式虽然对WEB开发者友好,但不支持派生,扩展能力有限。
  进程和线程模型:
  每个应用组件实例运行在独立的ArkTS引擎实例中。每个实例在自己的线程上创建,导致组件之间无法共享状态,并且会增加内存开销。

1.29. 说一下MVVM模式

  主要分为3个组成部分:
  1.Model(模型):负责存储和管理应用的数据以及业务逻辑。model从后端接口获取数据,是应用程序的数据基础,确保数据的一致性和完善性。
  2.View(视图):负责用户界面的展示并于用户交互。View不包含任何业务逻辑,它通过绑定ViewModel层提供的数据来动态更新UI
  3.ViewModel(视图模型):作为连接Model和View的桥梁,ViewModel负责管理UI状态和交互逻辑。它监控Model数据的变化,通过View更新UI,同时处理用户交互事件并转为数据操作。
MVVM模式:不仅提高了开发效率和应用性能,还使得应用更加模块化,便于管理和维护。

1.30. UIAbility的生命周期

onCreate():页面初始化 ---拉起窗口回调:onWindowStageCreate()
onForeground():进入前台调用
onBackground():进入后台调用
onDestroy():销毁 --在销毁之前调用销毁窗口回调:onWindowStageDestroy()

1.31. 组件的生命周期

// 页面生命周期(entry)
onPageShow(){}:每次进入前台前调用. 在vue中其实就是钩子函数 等于create,在这叫生命周期
onPageHide(){}: 页面从前台转为后台时调用
onBackPress(){}: 当页面点击退出/返回时调用
// 组件生命周期(Component)
当单击页面的是由优先加载组件,因为页面就是组件渲染出来的。
aboutToAppear(){}: 组件开始加载时调用,在执行build() 函数之前执行
aboutToDisappear(){}: 关闭组件时调用

页面和组件生命周期顺序
1.aboutToAppear()-->组件声明周期
2.build()
3.onPageShow() -->进入页面页面调用的生命周期,开启页面展示/渲染
4.方式一: 当页面置于后台,调用onPageHide() -->开启页面隐藏 
  方式二: 当页面退出时执行onPagePress()-->开启页面退出 后执行 	onPageHide()-->开启页面隐藏
5.aboutToDisappear() -->关闭组件

在这里插入图片描述

1.33. 请解释 ArkTS 语言中的属性装饰器(@Prop、@State 等)的作用和使用场景。

  常见装饰器:@prop 、@Like、@Provide 和 Consume、@ObjectLink 和 @ Observed 、@watch
  在ArkTS语言中,属性装饰器(@prop,@state等)是构建响应式、可复用和易于维护的组件的重要工具,他们根据不同的需求在组件之间或组件内部有效地管理和传递数据,实现了高效的UI开发和数据处理逻辑。在实际项目中,根据具体的业务场景选择和使用这些属性装饰器,能够提高代码质量和开发效率,为用户提供良好的交互体验。

1.33. ArkTS 与传统 JavaScript 在语法和编程模式上有哪些主要区别?

ArkTS的底层是: javaScript

1.系统类型: 
ArkTS:强类型特性语言,开发中需要显式声明变量、函数参数和返回值。
javaScript:弱类型语言,变量的类型在运行时根据赋值确定,开发者无需显式声明类型。
2.声明式UI语法(ArkUI框架相关)
ArkTS:结合ArkUI框架,采用声明式UI语法来构建用户界面。开发者通过描述UI组件的结构和属性来创建界面。这种方式使得UI代码更直观、简洁、易于理解和维护,同时与数据绑定和状态管理紧密结合,当数据或状态变化时,UI能自动更新。
javaScript: 在构建UI时,有一定的声明式编程思想,但语法相对复杂且多样,需要手动管理DOM更新,与数据的关联和更新机制比如ArkTs简介高效。
3.装饰器语法
ArkTS:广泛使用装饰器来实现特定的功能。
javaScript:本身并不支持装饰器语法(ES6及之前版本),虽然可以通过Babel等工具进行转译来使用装饰器,但相对来说不是标准、广泛应用的语法特征,并且在使用和理解上需要额外的学习成本和配置。

1.34. 什么是组件化开发?在鸿蒙应用中,如何实现组件的复用和独立维护?

  定义:
  组件化开发是一种将软件分解为独立、可复用的组件的开发模式。
  每个组件封装了特定的功能和数据,具有明确的接口,能够独立开发、测试、部署和维护。这种开发模式提高了软件的可扩展性、可维护性和复用性,便于团队协作开发,降低了系统的复杂性。

1.35. 鸿蒙中的状态管理有哪些

LocalStorage: 页面级UI状态管理
AppStorage: 应用全局的UI状态存储
PersistenStorage:持久化存储UI状态

1.36. 鸿蒙中的持久化有哪些

RelationalStore: 关系型数据库RDB
PersistenStorage:持久化存储UI状态
云数据库:AGC中的
sqlList

1.37. 分层架构设计和模块化设计的区别

  (1)分层架构设计:
  将应用分为公共能力层,基础特征层、定制层,可以降低层间的依赖性,从而提升代码的可维护性。
  分层架构设计进一步明确每层的职责和层间的交互机制,使框架清晰明确。
  (2)模块化设计:
  将应用分解为多个功能模块,其中每个模块负责执行特定的功能。
  通过模块化设计提高了代码的可理解性和可复用性,使应用的扩展和维护变得更为简便,同时降低了系统各部分之间的耦合度。

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

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

相关文章

关于物联网的基础知识(一)

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(一&a…

基于Thinkphp6+uniapp的陪玩陪聊软件开发方案分析

使用uni-app框架进行前端开发。uni-app是一个使用Vue.js开发所有前端应用的框架,支持一次编写,多端发布,包括APP、小程序、H5等。 使用Thinkphp6框架进行后端开发。Thinkphp6是一个轻量级、高性能、面向对象的PHP开发框架,具有易…

springcloud 介绍

Spring Cloud是一个基于Spring Boot的微服务架构解决方案集合,它提供了一套完整的工具集,用于快速构建分布式系统。在Spring Cloud的架构中,服务被拆分为一系列小型、自治的微服务,每个服务运行在其独立的进程中,并通过…

jenkins入门6 --拉取代码

Jenkins代码拉取 需要的插件,缺少的安装下 新建一个item,选择freestyle project 源码管理配置如下:需要添加git库地址,和登录git的用户密码 配置好后执行编译,成功后拉取的代码在工作空间里

idea全局替换显示不全(ctrl+shift+R)

修改一下idea的配置就行 idea的默认显示条数为100,可以修改成10000

Ubuntu 下测试 NVME SSD 的读写速度

在 Ubuntu 系统下,测试 NVME SSD 的读写速度,有好多种方法,常用的有如下几种: 1. Gnome-disks Gnome-disks(也称为“Disks”)是 GNOME 桌面环境中的磁盘管理工具,有图形界面,是测试…

AI投资分析:用于股票评级的大型语言模型(LLMs)

“AI in Investment Analysis: LLMs for Equity Stock Ratings” 论文地址:https://arxiv.org/pdf/2411.00856 摘要 投资分析作为金融服务领域的重要组成部分,LLMs(大型语言模型)为股票评级带来了改进的潜力。传统的股票评级方式…

基于CLIP和DINOv2实现图像相似性方面的比较

概述 在人工智能领域,CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解,而DINOv2为自监督学习带来了新的方法。 在本文中,我们将踏上一段旅程,揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型…

【学习笔记】数据结构(十)

内部排序 文章目录 内部排序10.1 概述10.2 插入排序10.2.1 直接插入排序10.2.2 其他插入排序10.2.2.1 折半插入排序(Binary Insertion Sort)10.2.2.2 2-路插入排序(Two-Way Insertion Sort)10.2.2.3 表插入排序(Table Insertion Sort&#xf…

Unity学习笔记(七)使用状态机重构角色攻击

前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 攻击状态重构 首先我们重构攻击状态的动画 之前的动画,我们是使用状态(isAttacking)攻击次数(comboCounter)完成动画的过渡,这样虽然能完成功能,但是如…

Ubuntu20.04中安装ns-3.36及遇到的问题

一、安装虚拟机:VMware 17.5 参考教程:VMware17Pro虚拟机安装教程(超详细)-CSDN博客 博主:七维大脑 遇到的问题: Q1:安装ubuntu系统时,页面看不到”继续“选项,无法进行下一步 A&#xff…

iOS 逆向学习 - iOS Architecture Cocoa Touch Layer

iOS 逆向学习 - iOS Architecture Cocoa Touch Layer 一、Cocoa Touch Layer 简介二、Cocoa Touch Layer 的核心功能1. UIKit2. Event Handling(事件处理)3. Multitasking(多任务处理)4. Push Notifications(推送通知&…

人大金仓实现主键自增.

使用数据库中自带的参数类型 serial 类型(相当于创建一个INT列), 或者bigserial(相当于创建一个BIGINT列. 示例sql: CREATE TABLE ord(id SERIAL,ord_no INT NOT NULL,ord_name VARCHAR(32),CONSTRAINT "ord_PKEY" PRIMARY KEY ("id"));插入时指定自增值…

React Router 向路由组件传state参数浏览器回退历史页面显示效果问题

昨天在看尚硅谷张天禹老师讲的 React教程p90,老师讲到 React路由的 replace模式和push模式,老师的演示效果与自己本地操作不太一样。 老师的效果:点击查看消息1,消息2,消息3 再点回退,可以依次查看到 消息…

selenium无法定位元素的几种解决方案

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: d…

SSM-Spring-IOC/DI注解开发

目录 IOC/DI注解开发 1 注解开发定义bean 2 纯注解开发模式 步骤 Bean的作用范围 Bean生命周期 3 注解开发依赖注入 Autowired 注解实现按照名称注入 简单数据类型注入 注解读取properties配置文件 4 IOC/DI 注解开发管理第三方bean 4.1 步骤(以管理第三…

深入探讨 Android 中的 AlarmManager:定时任务调度及优化实践

引言 在 Android 开发中,AlarmManager 是一个非常重要的系统服务,用于设置定时任务或者周期性任务。无论是设置一个闹钟,还是定时进行数据同步,AlarmManager 都是不可或缺的工具之一。然而,随着 Android 系统的不断演…

接口开发完后,个人对于接下来接口优化的一些思考

优化点 入参的合法性和长度范围&#xff0c;必填项的检查验证 因为没有入参&#xff0c;所以不需要考虑。 批量思想解决N1问题 // 假设要查询100个订单及其对应的用户信息 List<Order> orders orderMapper.selectList(new QueryWrapper<>().last("limit …

Redis内存碎片

什么是内存碎片? 你可以将内存碎片简单地理解为那些不可用的空闲内存。 举个例子&#xff1a;操作系统为你分配了 32 字节的连续内存空间&#xff0c;而你存储数据实际只需要使用 24 字节内存空间&#xff0c;那这多余出来的 8 字节内存空间如果后续没办法再被分配存储其他数…

小程序租赁系统开发的优势与应用前景分析

内容概要 小程序租赁系统是一种新兴的数字化解决方案&#xff0c;旨在为用户提供更加便捷与高效的租赁服务。它通常包括一系列功能&#xff0c;如在线浏览、即时预定、支付功能以及用户反馈机制。这些系统在使用上极为友好&#xff0c;让用户能够轻松选择所需的商品或服务&…