- 博客(39)
- 收藏
- 关注
原创 Linux 下 Java 部署环境搭建与项目部署详细步骤
本文详细介绍了在Linux系统上部署Java Web项目的完整流程。首先,进行软件环境准备,包括更新软件包库、安装OpenJDK和MySQL数据库,并进行必要的安全设置。接着,通过Maven打包项目,并将生成的Jar包上传至云服务器。在服务器上,使用nohup命令后台启动应用程序,并配置防火墙以开放必要的端口。最后,通过浏览器访问项目进行功能验证,并介绍了进程管理和常见问题排查的方法。本文为开发者提供了一个从环境搭建到项目上线的详细指南,有助于顺利完成Java Web项目的部署工作。
2025-05-10 10:25:02
1652
原创 Linux 基础使用详细步骤
本文介绍了Linux的背景、发行版概述以及环境搭建和连接服务器的基本操作。Linux是一个开源的类Unix操作系统内核,由Linus Torvalds在1991年开发,因其自由、稳定和社区活跃而广受欢迎。常见的Linux发行版包括Ubuntu、CentOS和RedHat等。文章详细讲解了如何选择部署平台(如物理机、虚拟机、WSL和云服务器),并以腾讯云为例,演示了如何注册、购买和配置云服务器。此外,文章还介绍了如何使用XShell等终端软件连接Linux服务器,并列举了一些常用的Linux命令。
2025-05-10 10:19:53
880
原创 MongoDB副本集搭建与核心机制
oplog存储时长 = (oplog大小) / (每小时数据增量 × 24)Oplog生成器:记录操作日志到local.oplog.rs集合。唯一写入口:处理所有写操作(插入/更新/删除)同步中枢:向所有从节点推送oplog变更。读扩展:支持配置读偏好策略分散读压力。选举裁判:不存储数据,仅参与投票。Oplog追赶(catchup)故障转移候选者:参与主节点选举。数据冗余:实时复制主节点数据。集群优化:奇数节点配置防脑裂。:双数据节点+1仲裁节点架构。:内容管理系统的读副本集群。:电商订单系统的主数据库。
2025-04-24 23:42:45
1142
原创 Node.js 开发用户登录功能(使用mysql实现)
通过以上步骤,我们成功地基于 Node.js 开发了一个简单的用户登录功能。在开发过程中,我们使用了 Express 框架搭建 Web 应用,使用 EJS 模板引擎生成动态 HTML 页面,使用 MySQL 数据库存储用户信息,并使用 Mocha 进行单元测试。这个项目可以作为一个基础的示例,帮助你进一步扩展和完善用户登录功能。
2025-04-23 22:49:00
2216
原创 MongoDB索引
合理使用索引可使MongoDB查询性能提升10-100倍,但需要持续监控和优化。建议:使用分析索引使用情况定期执行explain()分析慢查询explain()分析慢查询结合Compass可视化工具进行索引管理通过深入理解索引机制,结合业务场景设计最优索引策略,可充分发挥MongoDB的高性能优势,构建高效稳定的数据库系统。
2025-04-22 15:53:38
851
原创 Express框架使用
Express凭借其简洁的路由系统、灵活的中间件机制和丰富的生态系统,成为Node.js领域最流行的Web框架之一。无论是构建API还是传统Web应用,Express都能通过模块化设计提升开发效率。未来,随着中间件生态的持续丰富和性能优化,Express将继续在Node.js开发中占据重要地位。
2025-04-21 11:04:33
873
原创 使用 Vue 开发登录页面的完整指南
使用 Vue CLI 或 Vite 创建项目,推荐组合:Vue3 + Element Plus + Vue Router。使用@vitejs/plugin-legacy处理ES6+语法。添加autoprefixer自动补全CSS前缀。密码加密传输(使用crypto-js)记住密码功能(加密存储)异步验证手机号是否注册。请求限流与防重放攻击。自动填充最近登录账号。
2025-04-18 22:07:06
1321
原创 Node.js 操作 MySQL 数据库
确保 JS 中的数据类型与 MySQL 字段匹配(如日期格式为。参数数组顺序需与 SQL 中的占位符严格匹配。
2025-04-15 22:10:52
903
原创 Node.js 模块包的管理和使用是
允许升级 MINOR 和 PATCH 版本(兼容新功能,不破坏 API)。:Facebook 推出,速度快,支持工作区(workspaces)。:Yarn 工具的锁定文件,与 npm 不兼容。:开发者自己编写的模块文件,通过相对路径引入。:定义可执行文件,常用于 CLI 工具(如。:安装最新版本(慎用,可能引入不兼容更新)。:宿主环境需提供的依赖(常见于插件开发,如。:通过 npm 安装的模块,通常存储在。:记录精确依赖树,确保团队环境版本一致。:包的关键词,方便在 npm 上搜索。
2025-04-14 21:56:57
1015
原创 JavaScript 基础特性
相比Object,支持对象/Symbol作为键、维护插入顺序、专用迭代方法。声明的变量会提升至作用域顶部,但赋值不提升。在循环中泄露变量到外部作用域。
2025-04-13 21:28:53
406
原创 Node.js介绍
Express、Koa(Web 服务),Socket.IO(实时通信),NestJS(企业级框架)。:在同等硬件条件下,Node.js 的 QPS(每秒查询率)通常高于 PHP、Ruby 等传统语言。:相比 PHP/JSP 直接渲染 HTML,需配合前端框架(React/Vue)实现 SSR。:前端(浏览器 JS)与后端(Node.js)共用 JavaScript,降低学习成本。:全球最大开源库仓库(超过 200 万个包),涵盖 Web 框架、数据库驱动、工具链等。
2025-04-13 21:12:30
672
原创 Node.js 开发的简单 Web 服务器代码
使用 Node.js 开发的简单 Web 服务器代码,满足在 8090 端口显示 "欢迎学习nodejs课程" 的需求。同时包含 WebStorm 操作指南
2025-04-11 20:56:31
608
原创 MySQL事务
数据行的删除标记(DB_ROLL_PTR)未生效或对当前事务不可见。数据行的事务ID(DB_TRX_ID)小于当前事务ID且已提交。记录数据修改前的状态,事务失败时回滚至原始状态。记录修改后的数据,事务提交时先写日志再写数据页。根据业务压力调整隔离级别,平衡一致性与性能。:如批量数据处理时部分失败,无需全量回滚。:避免长时间持有锁,提升系统吞吐量。:事务启动时生成,决定数据可见性。:减少全表扫描引发的锁升级。:大事务拆分为小批次操作。:通过快照读减少锁依赖。:存储数据历史版本链。(慎用,性能影响大)。
2025-04-10 19:49:26
810
原创 MySQL索引
通过DB_TRX_ID(事务ID)和DB_ROLL_PTR(回滚指针)遍历旧版本。:当插入数据导致页空间不足时,分裂为两个页并调整B+树结构,可能影响插入性能。:单个节点可存储更多键值,树高更低(3-4层即可支撑千万级数据)。:真实数据仅存于叶子节点,非叶子节点作为索引目录。:需满足复合索引最左前缀,且条件为范围查询后的列。:槽(Slot)数组,加速记录定位(二分查找)。:将高频访问的列单独建索引,或使用覆盖索引。:页号、前后页指针(形成双向链表)。:实际存储的行记录(按主键排序)。
2025-04-10 19:41:52
560
原创 MySQL视图
基于一个或多个基表(或视图)创建,提供数据展示的定制化逻辑层。包含基表所有非空且无默认值的列(若插入数据)。使用物化视图(MySQL需通过中间表模拟)。),每次访问视图时动态执行查询并返回结果。:视图不存储数据,本质是保存的查询语句(:修改基表结构可能导致视图失效。未使用子查询或某些联合查询(如。通过存储过程封装更新逻辑。:每次查询视图需重新执行。:动态限制数据范围。对基表添加合适索引。
2025-04-08 22:05:23
783
原创 MySQL联合查询
组合测试数据、生成所有可能性(如颜色与尺寸组合)。:生成笛卡尔积(行数=左表行数×右表行数)。:关联主表与详情表(如订单与商品)。:明确指定所需列,减少数据传输量。:多表存在相同列名时需指定表别名。:对应列的数据类型需隐式兼容(如。中,将小表放在前面以利用索引。:交叉连接误写为隐式内连接。语句必须返回相同数量的列。:最终结果集列名以第一个。(不推荐,易遗漏条件)。),否则需显式转换。
2025-04-08 21:57:23
782
原创 C语言内存函数和数据在内存的存储
掌握补码与字节序机制,避免跨平台数据传输错误。:始终确保操作的内存区域在合法范围内。(GCC/Clang):编译时加入。(网络传输、Java虚拟机)处理不确定内存关系的场景。:检测内存泄漏、越界访问。:数据高位字节存于低地址。:数据低位字节存于低地址。与循环初始化的适用场景。(x86/ARM架构)
2025-04-07 21:46:58
453
原创 C语言递归
每次递归调用都会在内存栈中创建一个新的函数栈帧,保存当前状态(参数、局部变量、返回地址),直到终止条件触发后逐层回溯。:将问题分解为与原问题结构相同但规模更小的子问题(如树的遍历、分治算法)。:部分编译器(如GCC -O2)可将其优化为循环,避免栈溢出。:通过工具(如Valgrind)检测栈使用情况。:性能敏感、递归深度不可控(如处理用户输入)。:树/图操作、分治策略、数学定义清晰的问题。:如斐波那契数列的重复计算。:用栈数据结构保存递归状态。:适用于尾递归或简单递归。:如八皇后问题、迷宫求解。
2025-04-07 21:38:32
632
原创 C语言指针
内存操作:通过地址直接读写内存。类型匹配:指针类型决定解引用和运算行为。安全性:避免野指针和内存泄漏。灵活应用:结合数组、字符串、多级指针实现复杂数据结构。
2025-04-04 08:40:10
1059
原创 C语言操作符
对有符号数右移时,高位补符号位(算术右移);无符号数补0(逻辑右移)。通过系统化掌握这些操作符的特性,能够编写更高效、安全的C语言代码。:从左到右依次执行,整个表达式的值为最后一个表达式(:避免在同一个表达式中对同一变量多次修改(如。完全不同,前者是位运算,后者是逻辑判断。会跳过不必要的计算,可用于条件保护(如。
2025-04-04 08:05:19
897
原创 C语言函数
形参作为独立内存空间,接收实参值的拷贝。函数内对形参的修改不会影响实参。传递数组首地址或指针时,形参通过地址直接操作原始数据。不可返回局部变量的地址(函数结束内存释放)原因:未实现声明过的函数/链接时缺少目标文件。场景:递归深度过大或局部数组尺寸超标。优点:代码简洁,适合树形结构问题。缺点:栈空间消耗大,时间复杂度高。:返回值存储于临时寄存器或栈空间。解决方案:改用动态内存或迭代算法。合理选择值传递/地址传递策略。构建可维护的模块化代码结构。:回调函数、策略模式。
2025-04-02 22:36:39
480
原创 C语言数组知识点
通过掌握数组的内存布局、指针关系及动态管理,可高效处理批量数据,同时避免常见陷阱。:C语言不检查数组边界,越界访问可能导致程序崩溃或数据污染。静态数组(编译时确定大小) vs 动态数组(运行时分配):二维数组本质是一维数组的嵌套,内存按行连续分配。:数组长度在运行时确定(部分编译器可能不支持)。一维数组(线性访问) vs 多维数组(嵌套结构)的集合,通过连续内存存储,支持高效访问。:数组名退化为指针,需额外传递长度信息。:返回指向整个数组的指针(类型为。:返回整个数组的字节大小(如。
2025-04-02 22:28:50
491
原创 MySQL联合查询
用于横向扩展数据,通过关联条件整合多表信息,核心掌握内连接与外连接的区别。:以左表为主,返回左表所有记录及右表的匹配记录(无匹配则右表字段为。:以右表为主,返回右表所有记录及左表的匹配记录(无匹配则左表字段为。通过明确需求、优化查询条件和合理使用索引,可显著提升联合查询效率。使用表别名提高可读性(如。通过关联条件横向合并多表数据,扩展查询结果的列信息。纵向合并多个查询结果,要求列数和数据类型一致。条件,否则会返回两表所有行的组合(如。结果集中不包含任一表的未匹配记录。:返回左右表所有记录,无匹配时填充。
2025-04-01 20:47:21
701
原创 计算机基础知识
理解进制转换、编码规则及系统组成是掌握计算机基础的关键,未来技术(量子计算、生物计算)将推动计算能力跨越式发展。(1946年):第一台通用电子计算机,使用电子管,无存储程序功能。:办公软件(Office)、浏览器(Chrome)、游戏(原神)。(程序与数据)组成的系统,能够自动执行指令、处理数据并输出结果。:提出图灵机模型(计算理论基石)、图灵测试(AI理论先驱)。:操作系统(Windows/Linux)、编译器、驱动程序。:算盘→计算尺→巴贝奇差分机(机械计算)。:图形界面(GUI)、语音/手势交互。
2025-04-01 20:13:18
877
原创 MySQL聚合函数与分组查询
1 | NULL | 7 -- 部门小计。2 | NULL | 3 -- 部门小计。统计报表:如部门业绩、用户订单总数。:大数据量分组时可能变慢,需考虑分库分表或预聚合。数据清洗:按规则分组后去重或汇总。:按指定列的值分组,对每组数据进行聚合计算。:对一组数据进行统计计算,返回单个汇总值。实现数据分组统计,需与聚合函数配合使用。:对分组列建立索引可提升性能(如。:对分组后的结果进行筛选(类似。
2025-03-31 21:54:36
690
原创 MySQL表设计
主键索引、唯一索引、普通索引、联合索引(最左匹配原则)。:消除部分依赖(复合主键时,非主键字段依赖全部主键)。(默认):支持事务、行锁、外键,适用高并发写入。:频繁更新字段、低区分度字段(如性别)避免索引。:仅适合读多写少场景(如日志表),不支持事务。:需中间表(如学生表与课程表通过选课表关联)。:通过唯一外键关联(如用户表与用户详情表)。:拆分大字段(如商品详情与基础信息分离)。合理设计表关系(一对一、一对多、多对多)。:外键在“多”侧表(如部门表与员工表)。:雪花算法(时间戳+机器ID+序列号)。
2025-03-31 21:42:58
836
原创 MySQL 约束知识点
防止无效或不符合业务规则的数据被插入或修改。通过约束,可以定义数据的有效性规则,保障数据的准确性和可靠性。:主键、外键、唯一、非空、默认值和检查约束共同保障数据正确性。:由多列组成的主键(如订单详情表的订单ID + 商品ID)。:频繁的外键检查可能降低写入性能,建议在应用层处理逻辑。:根据业务需求选择约束,平衡数据一致性与性能。动态管理约束,结合事务和索引优化数据库性能。:多列组合唯一(如用户名 + 手机号唯一)。:插入失败或事务回滚时,自增值不会回退。常用于自增主键(仅限整数类型)。
2025-03-30 23:21:40
585
原创 数据库的创建(以 MySQL 为例)
DBMS(数据库管理系统):如MySQL、Oracle、PostgreSQL,提供数据操作接口。utf8mb4:支持 Emoji 及多语言字符(MySQL 8.0 默认字符集)。数据模型:关系型(表结构)、非关系型(NoSQL,如文档、键值对)。:红色标识的库为 MySQL 内部使用,存储权限、性能等核心数据。utf8mb4_unicode_ci:通用排序规则,不区分大小写。数据库(Database):结构化数据集合,用于高效管理数据。:为电商系统创建数据库,要求支持多语言、避免重复创建。
2025-03-27 21:21:06
556
原创 java 数组
掌握数组的核心原理(内存模型、操作性能)和常见面试题(扩容、深拷贝、双指针算法),结合代码实践与底层理解,可轻松应对90%的面试考察。:1. 性能敏感场景(高频访问);连续内存块,直接存储元素(基本类型)或对象引用(引用类型)。外层数组:3个引用(32位JVM占12B,64位占24B)。外层数组存储内层数组的引用(地址),内层数组独立分配内存。:复制引用,共享元素(修改副本影响原数组)。内层数组:3个一维数组,每个占。基本类型数组元素有默认值(如。开始,内存连续,访问高效(:什么场景下优先用数组?
2025-03-26 22:34:56
881
原创 Java 方法
掌握方法的定义、重载与递归,以及数组的初始化与操作,是 Java 编程的基础。结合异常处理与调试技巧,可编写健壮且高效的代码,同时轻松应对面试中的相关问题。
2025-03-25 19:52:28
925
原创 Java 数据类型
◦ 频繁自动装箱可能产生额外对象,影响性能(如循环中大量使用 Integer)。能,Java 使用 Unicode 编码(如 char c = '中';◦ boolean 不能与 int 互换(不同于 C 语言)。内存分配在堆(Heap),栈(Stack)存储引用。基本类型值在栈中,引用类型地址在栈,对象在堆。3. 基本类型与引用类型的存储区别?变量存储对象的内存地址,默认值为。1. String 是基本类型吗?否,属于引用类型,存储在堆中。)、接口、数组、枚举等。(与 C 语言不同)。
2025-03-25 00:01:40
650
原创 小型局域网的构建(Trunk接口项目)
利用模拟器模拟网络系网络场景。整个网络系是一个大的局域网环境,整个网络系分为不同的部门和机房,交换机SW1放在三楼A301,交换机SW2放在四楼A404。三楼有教师办公室和机房,四楼有教务办公室和机房。要求教务办公室和教师办公室可以互通,机房与机房之间可以互通,但是办公室不能和机房互通。利用Trunk接口实现VLAN间路由。
2025-03-21 18:54:47
161
原创 小型局域网的构建( Access接口项目)
整个网络系是一个大的局域网环境,整个网络系分为不同的部门和机房,交换机SW放置在均能与两层相连的弱电竖井里。三楼有教师办公室和机房,四楼有教务办公室和机房。要求教务办公室和教师办公室可以互通,机房与机房之间可以互通,但是办公室不能和机房互通。,测试结果应显示能够 ping 通,说明办公室之间可以互通。2. 配置接口类型为 Access 并划分 VLAN。配置连接三楼教师办公室 PC 的接口(Gi0/0/1)在 三楼教师办公室的命令提示符下输入ping。设 三楼教师办公室 的 IP 地址为。
2025-03-17 21:49:23
373
原创 c语言分支循环
循环语句用于重复执行代码块,直到满足特定的终止条件。// 如果 expression 不等于任何 case 常量,执行这里的代码。// 如果 expression 等于 constant1,执行这里的代码。// 如果 expression 等于 constant2,执行这里的代码。// 循环体,只要 condition 为真,就重复执行这里的代码。// 如果 condition 为真,执行这里的代码。// 如果 condition 为假,执行这里的代码。// 循环体,重复执行这里的代码。
2024-03-23 17:24:35
185
1
原创 对于编程的感受
我最想进入的一家IT公司是谷歌。我认为谷歌是一家充满创新和技术驱动的公司,我希望能够在那里接触到最前沿的技术和最优秀的工程师团队,实现我的技术职业目标。我打算通过参加在线课程、阅读相关书籍、观看教学视频以及参与编程社区的讨论来学习编程。我也计划找到编程导师或加入技术团队,以便获得指导和实际项目经验。我的编程目标包括学习掌握多种编程语言,开发自己的应用程序和网站,参与开源项目,以及不断提升自己的技术能力和解决问题能力。我愿意为了我的技术梦想投入更多时间和精力。我是一名对编程和技术充满热情的人。
2023-11-20 16:54:11
59
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人