编程与应用开发
文章平均质量分 84
编程与应用开发
夏天又到了
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
搭建Spring Boot开发环境
本节将介绍在Windows平台搭建Spring Boot开发环境的步骤,包括安装配置JDK、安装配置Maven以及集成开发工具IDEA的使用方法。原创 2026-04-09 09:35:41 · 997 阅读 · 0 评论 -
《HarmonyOS NEXT应用开发实践:视频教学版》配套资源与目录信息
HarmonyOS NEXT应用开发实践:视频教学版》配套资源包括源码、PPT课件、教学视频,对想学HarmonyOS手机应用开发的朋友有点参考价值,有需要的可用WX扫一下样章中前言给出的二维码下载。链接: https://pan.baidu.com/s/1tI-86rQivNilYXW0X4RX6Q?6.5.3 使用TextInput组件实现账号和密码的输入 195。4.2.4 Foreground和Background状态 41。7.2.2 不依赖UI组件的全局自定义弹出框(推荐) 208。原创 2025-11-18 09:36:24 · 853 阅读 · 0 评论 -
ArkUI组件布局设计要素
组件按照布局的要求依次排列,构成应用的页面。在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选择合适的布局进行页面开发。布局是指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。原创 2025-10-31 09:07:01 · 1149 阅读 · 0 评论 -
ArkUI布局系统概述
概 述ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。ArkUI框架示意如图5-1所示。图5-1 ArkUI框架1. ArkUI的基本概念2. 两种开发范式针对不同的应用场景及技术背景,方舟UI框架提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JavaScript的类Web开发范式(简称“类Web开发范式”)。原创 2025-10-31 09:00:33 · 994 阅读 · 0 评论 -
UIAbility组件启动模式
UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。原创 2025-10-30 10:32:05 · 999 阅读 · 0 评论 -
UIAbility组件的用法与数据传递
UIAbility组件的基本用法包括指定UIAbility的启动页面以及获取UIAbility的上下文UIAbilityContext。UIAbility组件与UI之间的数据同步则包括EventHub、AppStorage/LocalStorage。原创 2025-10-30 10:28:16 · 866 阅读 · 0 评论 -
UIAbility组件生命周期
摘要:本文详细介绍了HarmonyOS NEXT应用开发中UIAbility的生命周期管理机制。UIAbility生命周期包含Create、Foreground、Background、Destroy四个主要状态,并通过onCreate()、onWindowStageCreate()、onForeground()、onBackground()、onDestroy()等回调方法实现状态转换处理。文章还阐述了WindowStage的创建销毁过程,以及自定义组件的五种生命周期状态(aboutToAppear、onP原创 2025-10-29 16:23:15 · 903 阅读 · 0 评论 -
ArkTS语言、基本组成与数据类型
目前流行的编程语言TypeScript是在JavaScript(JS)基础上通过添加类型定义扩展而来的,而ArkTS则是TypeScript(TS)的进一步扩展。TypeScript之所以深受开发者的喜爱,是因为它提供了一种更结构化的JavaScript编码方法。ArkTS旨在保持TypeScript的大部分语法,为现有的TypeScript开发者实现无缝过渡,让移动开发者快速上手ArkTS。ArkTS、TypeScript和JavaScript三者之间的关系如图3-1所示。原创 2025-10-28 10:07:59 · 934 阅读 · 0 评论 -
HarmonyOS应用工程结构介绍
本节以2.4节的Hello World工程为例,介绍应用工程结构。2.5.1。原创 2025-10-27 09:45:30 · 997 阅读 · 0 评论 -
HarmonyOS应用开发环境搭建
进入DevEco Studio(IDE)后,我们首先了解一下它的基础界面。整个界面大致上可以分为4个部分,分别是工程目录区、代码编辑区、预览区以及通知栏,如图2-12所示。1. 工程目录区界面左侧为工程目录区,后续章节将会详细介绍。2. 代码编辑区界面中间的是代码编辑区,可以在这里修改代码以及切换显示的文件。通过按住Ctrl键并滚动鼠标滚轮,可以实现界面的放大与缩小。图2-12 DevEco Studio界面介绍图2-13 竖屏预览3. 预览区。原创 2025-10-24 09:58:01 · 1056 阅读 · 0 评论 -
【新书推荐】《HarmonyOS NEXT应用开发实践(视频教学版)》
HarmonyOS是一款面向未来、面向全场景的分布式操作系统,借助HarmonyOS全场景分布式系统和设备生态,定义全新的硬件、交互和服务体验。本书基于华为的HarmonyOS Next版本,详细介绍HarmonyOS 应用开发方法,配套示例代码、PPT课件、教学大纲、教学视频与读者微信群等技术交流服务。原创 2025-10-14 19:06:29 · 786 阅读 · 0 评论 -
JMeter的取样器
在JMeter中,取样器通常用来模拟并发用户发出实际请求的操作,向待性能压测的对象发送请求以及接收相应的响应数据。取样器是JMeter性能压测的核心组件,如图3-18所示。通常情况下,如果需要完成一个性能测试场景,那么肯定是离不开取样器的。图3-18 如何添加取样器从图3-18中可以看到取样器主要包括以下类型。原创 2025-09-24 14:36:32 · 973 阅读 · 0 评论 -
JMeter的定时器
安装一下JMeter,对照起来看。在JMeter中,定时器类似于LoadRunner中的思考时间(think time),用来设置线程的延迟和同步时间,如图3-16所示。定时器通常是在每个取样器发出请求之前执行。定时器主要是有时为了让一个线程(并发用户)的操作更加符合真实的人工使用场景,比如,用户在点击某个系统某个界面上的按钮或者打开某个页面时,都会存在思考时间或者操作的延迟时间。图3-16 如何添加定时器从图3-16中可以看到,定时器主要包括以下内容。原创 2025-09-23 10:45:37 · 901 阅读 · 0 评论 -
《JMeter核心技术、性能测试与性能分析》目录
前一个请求返回的结果作为后一个请求的入参。电商网站的秒杀系统性能测试与性能分析案例。开始一个性能测试脚本的编写案例。性能测试时,通常需要做哪些监控。确定要编写脚本的关键业务场景。大模型辅助性能测试脚本的编写。大模型辅助性能测试数据的构造。大模型辅助性能瓶颈问题的分析。商品查询性能测试脚本的编写。订单提交性能测试脚本的编写。编写性能测试脚本的注意事项。中如何编写自定义的取样器。执行性能测试时的注意事项。性能测试脚本的编写案例。数据库查询进行性能测试。自定义取样器的编写案例。授权管理器配置项详情。原创 2025-09-22 09:02:27 · 1053 阅读 · 0 评论 -
JMeter前置处理器
比如,使用取样器发出请求之前,需要先查询数据库来获取请求的参数,或者是取样器发出请求之前,需要先向数据库中构造一些初始数据或者删除一些已经存在的数据等,如图3-13所示。(6)正则表达式用户参数:指的是使用正则表达式的方式,从上一个HTTP取样器请求的响应结果中提取HTTP参数指定的动态值,以便于下一个HTTP取样器作为请求参数使用。当取样器超时此时长时,会中断取样器的执行。如图3-15所示,展示的是一个从上一个HTTP取样器请求的响应结果中,提取数据来作为下一个HTTP取样器请求的参数的过程。原创 2025-09-22 08:56:09 · 914 阅读 · 0 评论 -
JMeter的配置元件
在JMeter测试计划中可以同时创建多个JDBC Connection Configuration,在每个JDBC Connection Configuration中设置一个不同的变量名称,然后每个JDBC取样器可以绑定对应的不同的连接池变量,因为在一个JMeter测试计划中,可以创建多个JDBC取样器。通常用于生成一个唯一的数字或者Id,比如,当向数据库中插入数据时,需要保证数据的唯一性,就可以用计数器来构造唯一不重复的数据。每一个HTTP 请求都有请求头信息,而且通常会有默认的请求头信息。原创 2025-09-19 13:52:40 · 1223 阅读 · 0 评论 -
JMeter线程组
当参数化数据中的用户多于线程组的线程数时,会导致超出线程数的剩余用户永远不会被用到。由于一个线程组中通常会包含多个线程,此处的停止线程仅仅是停止当前取样器报错所在的线程,并不是停止所有的线程,如图3-6所示。尤其是当一个测试计划中包含多个线程组时,通常建议填写线程组的名称和注释,方便区分不同线程组的作用,并在将来对历史脚本进行追溯时,能知道当初创建线程组的明确含义。(3)循环次数:表示循环进行性能压测的次数,当勾选“永远”选项时,表示性能压测一直运行,直到手工停止。设置时长时的单位为秒。原创 2025-09-17 12:01:44 · 335 阅读 · 0 评论 -
JMeter元件简介与JMeter测试计划
JMeter元件是使用JMeter来完成性能测试的基础,是整个JMeter的核心。JMeter是由很多个不同种类的元件来共同组成的,每个元件具有不同的功能,编写JMeter的性能测试脚本就是将多个功能不同的元件串联起来完成一个性能测试场景的过程。如图3-1所示,图中展示的就是JMeter中常用到一些元件的种类。每个不同种类的元件可以在性能测试中起到不同的作用,通常需要不同的元件来共同协作,才能完成一个性能测试场景。图3-1 JMeter元件使用。原创 2025-09-16 10:07:45 · 827 阅读 · 0 评论 -
JMeter的元件
通常情况下,每个性能测试场景都需要先在JMeter界面上创建一个线程组,然后才能运行后续的性能测试脚本,这是因为性能压测通常需要模拟大量的用户来进行并发操作,因此需要通过线程组使用多个线程的方式来模拟产生大量的用户。监听器通常是用于对性能测试的结果做统计分析,以快速地发现性能压测中可能存在的性能问题。通常用来控制采样器的执行顺序,同时也可以对JMeter中组件件的执行逻辑进行控制,因为在做性能测试时,经常会遇到一些比较复杂的业务场景,那么就可以使用逻辑控制器来完成一些特定的、比较复杂的业务逻辑处理。原创 2025-09-15 12:50:48 · 829 阅读 · 0 评论 -
JMeter基本介绍
JMeter是Apache基金会提供的一个开源的、由纯Java语言编写的性能测试工具,最初仅被设计用于Web应用测试,后来随着性能测试等其他测试类型的出现,才被逐步扩展到了其他测试领域中。我们可以通过访问网址进入JMeter官方网站了解其技术信息,如图1-1所示。JMeter的主要特点如下:(1)完全开放源代码,并且所有的功能都是免费的,用户也可以免费使用和修改源代码以满足特定的性能测试需求。原创 2025-09-11 15:00:14 · 808 阅读 · 0 评论 -
JMeter的安装部署
在操作系统中配置环境变量,如图1-6所示,新建一个JAVA_HOME的变量,填入JDK安装或者解压后的文件夹路径,然后编辑Path 变量,在其值后输入%JAVA_HOME%\bin。安装JMeter对JDK要求是不能低于JDK 8这个版本,通常建议使用JDK 11版本,如图1-4所示,读者可以根据自己的操作系统类型选择对应的版本进行下载。双击图1-8所示文件夹中的jmeter.bat文件,即可启动JMeter并进入到JMeter的图形运行界面,如图1-9所示。图1-8 解压后的JMeter目录。原创 2025-09-11 14:56:21 · 548 阅读 · 0 评论 -
【新书推荐】《JMeter核心技术、性能测试与性能分析》
JMeter是一款基于Java的压力测试工具,可用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。本书详解JMeter性能测试和性能分析的方法,结合具体测试案例和最佳实践,帮助读者快速掌握JMeter性能测试与性能分析的技能。本书配套示例源码、PPT课件、教学大纲、教案与作者微信群答疑服务。原创 2025-08-27 09:26:35 · 1143 阅读 · 0 评论 -
MongoDB Compass可视化工具
MongoDB Compass是一种可视化工具,用于管理和查询MongoDB数据库。它提供了一个直观的图形用户界面,使用户能够轻松地创建、修改和查询MongoDB集合中的文档。Compass还可以帮助用户理解数据模式、性能分析以及创建索引等。通过Compass,用户可以简化数据处理流程、剖析性能问题、优化查询等。原创 2025-04-24 13:49:02 · 1375 阅读 · 0 评论 -
Windows下安装MongoDB
要查看MongoDB服务的状态,可以打开系统服务界面,按 Ctrl + Shfit + Esc,打开任务管理器,切换到服务选项卡,或者直接通过Windows系统的搜索找到服务界面,在服务界面中找到MongoDB服务,查看服务是否正在运行。在Windows平台下,MongoDB提供两种安装形式,直接运行MSI安装包和msiexec.exe命令行工具,默认的是直接安装MSI安装包的形式,msiexec.exe命令行形式更倾向于使用自动化无人值守形式部署的系统管理员。这里为可选项,即可安装可不安装。原创 2025-04-14 09:14:28 · 707 阅读 · 0 评论 -
【图书推荐】《MongoDB基础、运维与性能优化》
MongoDB数据库与传统的关系型数据库不同,是一种面向文档的、介于非关系型和关系型之间的数据库。本书帮助读者掌握MongoDB 8数据库及其相关技术栈的开发知识,全书内容详实、重点突出、通俗易懂,涵盖MongoDB 8数据库应用开发的要点。本书配套PPT课件。本书共分15章,内容包括MongoDB数据库基础知识、系统安装与环境搭建、可视化工具使用、Shell工具使用、基础操作、聚合、数据模型、时间序列、事务、索引、副本集、分片、存储、安全以及性能优化。原创 2025-04-11 15:37:45 · 1151 阅读 · 0 评论 -
Windows下安装MongoDB 8
要查看MongoDB服务的状态,可以打开系统服务界面,按 Ctrl + Shfit + Esc,打开任务管理器,切换到服务选项卡,或者直接通过Windows系统的搜索找到服务界面,在服务界面中找到MongoDB服务,查看服务是否正在运行。在Windows平台下,MongoDB提供两种安装形式,直接运行MSI安装包和msiexec.exe命令行工具,默认的是直接安装MSI安装包的形式,msiexec.exe命令行形式更倾向于使用自动化无人值守形式部署的系统管理员。这里为可选项,即可安装可不安装。原创 2025-03-15 18:44:17 · 2485 阅读 · 0 评论 -
UML顺序图的建模方法及应用示例
在图书管理系统中,图书管理员处理还书时,首先是借阅者向图书管理员发出还书请求,图书管理员将读者的信息和所要归还的图书信息发送到数据库,由系统检查用户的合法性,当借阅者的信息和图书的信息都得到确认后,图书管理员修改图书信息和借阅者信息,将结果显示处理,完成还书操作。图书管理员收到借阅者的借书申请时,首先验明借阅者的身份,如果没有问题,则查找借阅书目,如果借阅者没有超出最大借阅数量,则开始借阅并更新图书列表信息,借阅成功。在图书管理系统中,如果有新的借阅者,则由系统管理员登录后台页面,添加借阅者信息。原创 2025-02-18 19:34:47 · 1009 阅读 · 0 评论 -
UML类图分析实例
下面以学生管理系统为例,从用例图的角度来进行系统类图的建模。通过从用例中识别类,得到的学生成绩管理系统的用例图如图5.23所示。图5.23 学生成绩管理系统的用例图根据用例图进行类图的建模主要是确定系统需要的类以及类之间的关联和主要类的属性的描述。原创 2025-02-17 17:36:33 · 1832 阅读 · 0 评论 -
ThinkPHP8视图赋值与渲染
上面配置文件中,注意“'view_suffix' => 'php',”,表示视图文件后缀名为“.php”,我们可以把这个后缀名改为“.html”,表示视图文件的后缀名为“.html”,具体格式读者可自行研究。为了统一和方便掌握,本书的视图文件后缀名统一配置成“php”进行讲解。需要注意的是,默认情况下生成的应用会采用Think模板驱动,ThinkPHP 8并不内置该驱动类,因此建议使用PHP语法进行模板渲染,而不是私有的ThinkPHP语法。原创 2025-02-12 17:33:41 · 1065 阅读 · 0 评论 -
PHP的JIT编译器
PHP是一种广泛使用的脚本语言,被用于构建各种规模的Web应用程序。然而,由于其解释执行的本质,PHP在处理大量计算密集型任务时可能会遇到性能瓶颈。为了解决这个问题,PHP 8引入了一个令人激动的新特性—JIT(即时编译)编译器。JIT(Just-In-Time)编译器是一种在运行时将解释的代码转换为机器码的技术。这种转换可以显著提高代码的执行速度,使得PHP在处理复杂算法和大数据集时表现更出色。本节将深入探索PHP 8的JIT编译器,了解其工作原理、优势和使用技巧。原创 2025-02-11 11:05:21 · 752 阅读 · 0 评论 -
ThinkPHP 8 操作JSON数据
上例中,$jsonAssoc属性是用来控制JSON字段的返回类型,其默认值为false,返回对象形式,我们可以将$jsonAssoc属性设置为true,使其通过数组方式操作JSON字段。$jsonType字段和$type字段类似,用来指定JSON子字段的数据类型,在不指定的情况下,默认都视为STRING。在示例中,$user->address['code']中的“->”是访问模型的address属性,['code']是使用数组形式访问address这个JSON属性的code字段。原创 2025-01-24 13:20:53 · 1055 阅读 · 0 评论 -
ThinkPHP 8模型与数据的插入、更新、删除
模型的数据字段和对应数据表的字段是对应的,默认会自动获取(包括字段类型),但自动获取会导致增加一次查询(可以开启字段缓存功能),因此需要在模型中明确定义字段信息以避免多一次查询的开销。模型字段用来指定模型属性的数据类型,推荐每个模型类都进行定义,ThinkPHP 8默认会自动获取数据表的字段类型(需要查询一次数据库)。使用模型插入数据和查询构造器插入数据,最大的不同是模型会执行修改器、自动完成等逻辑,而数据库操作只是单纯的数据插入。默认情况下,模型类名是去除表前缀的数据表名称,采用大驼峰命名法。原创 2025-01-23 17:01:58 · 1788 阅读 · 0 评论 -
ThinkPHP 8请求处理-获取请求对象与请求上下文
ThinkPHP 8提供了Request对象用于封装HTTP请求。下面我们一起来学习如何在ThinkPHP 8中进行请求处理,比如获取请求参数、校验请求参数等。原创 2025-01-22 17:05:13 · 1386 阅读 · 0 评论 -
Linux C\C++编程-文件位置指针与读写文件数据块
先复习一下C语言中的文件指针定位函数fseek(),其声明如下:;其中,fp是文件指针;offset是相对于origin规定的偏移位置量;当offset是向文件末尾方向偏移的时候,无论偏移量是否超出文件末尾,fseek都返回0,当偏移量没有超出文件末尾的时候,文件指针指向正常的偏移地址;当偏移量超出文件末尾的时候,文件指针指向文件末尾,并不会返回表示偏移出错的-1值。当offset向文件头方向偏移的时候,如果偏移量没有超出文件头,就是正常偏移,文件指针指向正确的偏移地址,fseek返回值为0;原创 2025-01-21 14:02:48 · 1425 阅读 · 0 评论 -
Linux C\C++方式下的文件I/O编程
在旧头文件里的fstream.h,如果使用ifstreamfile的默认参数声明一个输入文件流,当这个要读的file文件不存在时,会自动创建一个空文件,从而给判断文件是否存在造成了很多麻烦。因为C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是很显然,直接把C的那套输入输出搬到C++中肯定无法满足C++的需求,更重要的一点是,C中的输入输出有类型要求,只支持基本类型,因此C++设计了易于使用的并且多种输入输出流接口统一的I/O类库,并且支持多种格式化操作,还可以自定义格式化操作。原创 2025-01-20 13:23:42 · 3165 阅读 · 0 评论 -
ThinkPHP 8的多对多关联
多对多关联属于比较复杂的关联,需要借助一个中间表实现,在模型中使用belongsToMany定义。在介绍ThinkPHP8的多对多语法之间,我们先来看一个例子,以加深对多对多关联的理解。比如我们开发一个博客系统,每篇文章可以关联多个标签,每个标签可以关联多篇文章,涉及的数据表如表8-1~表8-3所示。如果我们需要查询ThinkPHP教程这篇文章关联了哪些标签,可以用文章ID从文章标签关联表获得标签ID列表[1,2],再从标签表查询[1,2]的标签得到PHP和ThinkPHP。原创 2025-01-20 13:15:43 · 954 阅读 · 0 评论 -
ThinkPHP 8的一对多关联
每个主模型都有多个关联模型,一般在关联模型添加一个外键实现,在模型中使用hasMany定义。上面2个模型1个控制器完成后,运行服务器,在浏览器中访问http://localthost:8000/user/one2many,可以关联查询出id为1的用户所有游玩过的省份。由于只有同一个数据库的数据表可以与表相连,因此在分库分表的场景下,笔者建议使用with查询两次的方法。和一对一关联相同,一对多关联也使用together方法删除关联数据。使用关联模型的saveAll方法保存关联数据。原创 2025-01-17 16:55:25 · 799 阅读 · 0 评论 -
Spring MVC拦截器完成用户登录权限验证的示例
从图14.5所示的流程图可以看出,只有登录后的用户才能访问管理主页,如果没有登录而直接访问页面,拦截器就会将请求拦截,并转发到登录页面,同时在登录页面中给出提示信息。当已登录的用户在管理主页中单击“退出”链接时,同样会回到登录页面。从图14.6所示的结果可以看出,当用户未登录而直接访问主页面时,访问请求会被登录拦截器拦截,从而跳转到登录页面,并提示用户未登录信息。如果在“登录名”输入框中输入“zhangsan”,“密码”输入框中输入“123456”,当单击“登录”按钮后,浏览器的显示结果如图14.7所示。原创 2025-01-16 10:09:40 · 1284 阅读 · 0 评论 -
Spring MVC复杂数据绑定-绑定集合
将图12.10所示页面中的用户名zhangsan改为tom,lisi改为rose,并勾选两项数据前面的复选框,然后单击“修改”按钮后,浏览器会跳转到success.jsp页面中。此时控制台的打印信息如图12.11所示。针对这种情况,可以使用集合数据绑定,即在包装类中定义一个包含对象类的集合,然后在接收方法中将参数类型定义为该包装类的集合。注意:在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定,所以需要使用包装POJO作为参数,然后在包装POJO中包装一个集合属性。原创 2025-01-15 11:00:54 · 1057 阅读 · 0 评论 -
ThinkPHP 8的一对一关联
每个主模型有一个关联模型,可以选择在主模型添加外键或者在关联模型添加外键,在模型中使用hasOne方法定义。比如下面的示例中,如果有10个$users,将产生11条查询(1条查询主模型列表,10条查询用户资料),这就是著名的数据库N+1问题。上面2个模型1个控制器完成后,运行服务器,在浏览器中访问http://localthost:8000/user/one2one,可以查询出id为1的用户的电子邮箱。上面的示例中,我们是基于主模型进行查询的,那么也可以根据关联模型进行查询。4. 根据关联数据查询。原创 2025-01-14 16:25:09 · 988 阅读 · 0 评论
分享