- 博客(71)
- 资源 (18)
- 收藏
- 关注
原创 数据结构-图-BFS与DFS
该代码实现了一个图的邻接矩阵表示及遍历算法。主要包含以下功能:1) 定义了Graph结构体存储顶点信息和邻接矩阵,Queue结构体实现循环队列;2) 提供了图的初始化(initGraph)和创建(createGraph)函数;3) 实现了图的深度优先搜索(DFS)和广度优先搜索(BFS)遍历算法,其中BFS使用队列辅助实现;4) 在测试用例(test_graph2)中创建了一个5顶点图并演示了两种遍历方式。代码展示了图的两种基本遍历方法,DFS采用递归实现,BFS借助队列进行层次遍历。
2025-06-10 21:10:59
93
原创 C++--综合应用-演讲比赛项目
该代码实现了一个演讲比赛模拟系统,主要功能包括初始化学生数组、随机分组、比赛胜负判定、胜场统计及晋级选手筛选。比赛分为两轮:第一轮为分组淘汰赛,每组6人,两两PK,每组前三名晋级;第二轮为决赛,晋级选手再次PK,最终决出前三名。代码通过随机数模拟演讲结果,使用multiset进行胜场排序,并输出每轮比赛结果及晋级选手信息。系统支持多轮比赛,用户可通过输入控制比赛流程,最终显示比赛前三名及其胜场数。
2025-05-20 00:01:43
491
原创 C++容器综合使用-员工分组统计案例
本文介绍了如何使用C++中的multimap和set结构来管理公司员工与部门的分配。首先,定义了员工和部门的结构体,并实现了部门和员工的比较器。通过rand()函数随机分配10名员工到策划、美术、研发三个部门,并随机生成工资。使用multimap保存部门与员工的映射关系,并通过set存储每个部门的员工信息。最后,统计并输出每个部门的员工数量及其详细信息。代码展示了如何高效地组织和查询员工与部门的关系,适用于类似的管理系统开发。
2025-05-19 17:12:31
123
原创 C++编程起步项目
本文介绍了一个基于C++的员工信息管理系统的设计与实现。系统通过类继承和多态机制,定义了Employee基类及其子类PuTong、JingLi和LaoBan,分别代表普通员工、经理和老板,每个类都有特定的职责描述。系统功能包括添加、删除、修改、查找、排序和显示员工信息,并通过文件存储和读取数据。此外,系统还支持多态测试,通过Worker类及其子类Worker1和Worker2展示不同岗位的职责。系统通过菜单驱动用户操作,提供了友好的交互界面。下一步计划引入C++标准库以优化代码结构和功能。
2025-05-18 17:29:28
394
原创 数据结构-非线性结构-二叉树
*** 术语* 根节点(root node):位于二叉树顶层的节点,没有父节点。* 叶节点(leaf node):没有子节点的节点,其两个指针均指向 None。* 边(edge):连接两个节点的线段,即节点引用(指针)。* 节点所在的层(level):从顶至底递增,根节点所在层为 1。* 节点的度(degree):节点的子节点的数量。在二叉树中,度的取值范围是 0、1、2。* 二叉树的高度(height):从根节点到最远叶节点所经过的边的数量。
2025-05-08 20:02:15
672
原创 数据结构-线性结构(链表、栈、队列)实现
适用于需要后进先出的场景,如函数调用栈、表达式求值等。适用于需要先进先出的场景,如任务调度、消息队列等。适用于频繁插入和删除元素的场景,如链表实现的动态内存管理。一种以数组形式实现的线性结构,具有随机访问的特点。元素在内存中是连续存储的,支持快速的元素访问,但插入和删除操作需要移动多个元素。
2025-05-02 13:53:20
1252
原创 springboot启动流程
自定义配置文件(@PropertySource标记如manager-config-dev.yml)中的会解析成bean。->(所有单例bean都初始化完成以后)SmartInitializingSingleton。2、BeanFactoryPostProcessor 可修改bean定义。->ApplicationRunner(容器启动后)在application.yml中配置的解析成变量。3、BeanPostProcessor 可修改bean实例。4、bean生命周期。springboot流程。
2025-04-24 11:49:55
397
原创 用Java NIO模拟HTTPS
R1:随机数1 R2:随机数2 R3:随机数3 publicKey:公钥 privateKey:私钥。服务端 server hello + R2 + publicKey(验证证书,证书包含公钥)客户端 R3 + R1 + R2 -> 生成会话密钥。服务端 R3 + R1 + R2 -> 生成会话密钥。客户端与服务端使用相同的对称密钥算法生成会话密钥。客户端 client hello + R1。正式通信 对称密钥(会话密钥)加密数据。客户端 R3 publicKey加密。服务端 privateKey解密。
2025-04-12 23:29:23
347
原创 用Java写一个MVCC例子
4:如果被访问数据的DB_TRX_ID在readview的min_trx_id和max_trx_id之间,说明当前事务在访问其他事务修改过的记录,版本不可见,3:如果被访问数据的DB_TRX_ID大于readview的max_trx_id,说明当前事务在访问将来要执行的事务修改过的记录,版本不可见。2:如果被访问数据的DB_TRX_ID小于readview的min_trx_id,说明当前事务在访问已经提交的事务修改过的记录,版本可见。min_trx_id:当前活跃事务中最小的事务id。
2025-04-10 18:41:26
709
原创 系统调用、IO模型与Java线程状态
用户进程发起IO请求后,会注册一个或多个文件描述符的IO事件,然后等待这些事件的发生,当有事件发生时,内核会通知用户进程,用户进程可以继续进行IO操作。用户进程发起IO请求后,会向操作系统注册一个信号处理函数,当数据准备好时,内核会发送一个信号给用户进程,用户进程可以继续进行IO操作。用户进程发起IO请求后,如果数据未准备好,进程不会阻塞,而是立即返回,并设置一个标志位,表示数据未准备好。用户进程发起IO请求后,会立即返回,内核会在数据准备好后,自动完成IO操作,并通知用户进程。
2025-04-01 14:06:29
799
原创 三招叫你秒懂JavaScript中得this
/ 箭头函数内的this并不是根据setTimeout调用时的执行环境决定的,而是在函数定义时确定,继承自定义时所在的外层作用域的this。而在静态作用域的语言(如JS)中,这段代码将打印出`"global"`,因为`x`的解析是基于其在源代码中的位置,而`g()`函数从全局范围内解析`x`。如果这段代码运行在一个动态作用域的语言环境中,`g()`函数中的`x`将会引用`f()`函数内的`x`,即打印出`"local"`。作用域链是一个链表结构,每个作用域指向其外部作用域,直到全局作用域。
2025-03-24 16:05:20
362
原创 软件设计原则之迪米特法则
实现功能,从而降低系统的耦合度。它强调“最少知识”,让每个对象专注于自己的职责,是构建模块化、易维护系统的关键原则。在实践中,需结合场景灵活运用,避免过度设计,找到解耦与简洁的平衡点。(如自身的成员变量、方法参数、方法内部创建的对象),避免通过复杂的调用链访问间接对象。迪米特法则通过限制对象间的直接交互,强制开发者通过。一个对象应当尽可能少地了解其他对象,,提高系统的灵活性和可维护性。假设有一个学校管理系统,包含。
2025-03-23 10:52:21
966
原创 软件设计原则之里氏替换原则
里氏替换原则(Liskov Substitution Principle, LSP)是 SOLID 原则之一,它指出:子类型必须能够替换它们的基类型。换句话说,在使用基类的地方应当可以透明地使用派生类的对象而不会影响程序的正确性。违反里氏替换原则的一个典型反例是正方形(Square)和矩形(Rectangle)的关系。在几何学中,正方形是一种特殊的矩形,其中所有边等长。然而,如果我们在面向对象编程中直接继承关系来实现这一点,可能会违反 LSP。
2025-03-21 19:39:41
698
原创 Java遍历魔法
i = null;// 查看结果数组中值并未改变,由此可以推断test1()结论正确即:// 增强for(for-each)的局部变量是数组或集合中数据的副本System.out.printf("增强for(for-each) 自定义数据类型:%s\n", Arrays.toString(ps));
2025-03-20 19:09:51
225
原创 JSR269注解处理器
在resource文件夹下创建目录META-INF\services,在其中创建文件javax.annotation.processing.Processor。其中的内容注解处理类的全限定名:org.pp.lombok.BuilderProcessor。
2025-03-17 10:51:29
233
原创 垃圾收集算法
Java 最新垃圾回收算法以 低延迟(ZGC/Shenandoah)和 自适应分代管理(分代式 ZGC)为核心,结合硬件特性实现 TB 级堆内存的高效回收。G1 持续优化混合回收策略,而 Epsilon 为特殊场景提供零开销方案。开发者可根据应用需求(延迟、吞吐量、堆大小)选择合适的回收器。
2025-03-15 17:26:00
499
原创 Web 开发的“三件套”
跨平台开发:Electron(桌面应用)、React Native(移动端)等。前端开发:操作 DOM、处理用户事件、实现动画等。后端开发:通过 Node.js 构建服务器端应用。JavaScript:实现动态行为和复杂逻辑。JavaScript应用场景。HTML:定义内容结构。CSS:控制样式布局。
2025-03-13 22:48:06
139
原创 DevOps工具链
参考:https://cloud.tencent.com/developer/article/2322080。2、提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.1、对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制。自动化构建工具 Jenkins、GitLab CI/CD、Travis CI。Docker:容器(虚拟化、进程隔离)、镜像(软件)、仓库。Jenkins:持续集成、持续交付、自动部署。K8S:容器编排工具。
2025-03-13 17:11:32
414
原创 人工智能概念
算法:线性回归、逻辑回归、支持向量机、决策树、随机森林、K近邻算法。人工智能应用:自然语言处理、图像识别与生成、语音识别、政务与企业服务...算法:多层感知器、卷积神经网络、循环神经网络、长短期记忆网络。深度学习是实现这一目标的工具,模仿人脑,使用多层神经网络进行学习。机器学习提供框架,使得系统可以从数据中学习。大模型指参数量巨大的深度学习模型。
2025-03-13 17:05:06
119
原创 Java实现二叉树
Java实现一颗二叉树 实现了插入、删除、是否包含、将二叉树转化为主链、将二叉树平衡化、将二叉树写入文件、从文件读取一颗二叉树
2022-12-18 18:53:04
310
原创 概览
基础篇面向对象设计 设计模式 异常体系、断言、日志和调试反射、泛型、注解和动态代理字符串、数值、日期时间api 数据结构 函数式编程IO/NIO 、序列化和RMI高级应用篇图形编程java与xml、数据库编程网络编程并发编程位运算、类加载和Java安全JNIjava/jvm性能优化规范篇JCP JSR Java语言规范 JVM虚拟机规范JNDIJDBC J...
2020-02-16 20:45:53
144
转载 treegrid级联勾选或深度级联勾选扩展:两种扩展
treegrid没有级联勾选,要用怎么办?自己扩展呗~ 先明确两个概念:1、级联勾选:不包括未加载的子节点2、深度级联勾选:包括未加载的子节点 两种思路:1、扩展个新方法cascadeCheck,当需要进行级联勾选时,调用该方法进行级联勾选或不勾选。2、扩展onLoadSuccess方法,添加一个自定义属性:cascadeCheck(级联)或deepCas
2012-04-09 17:22:52
3287
原创 Servlet简介
开发中常用MVC模式,MVC对应的各个组件如下:M:model,模型,对应JavaBean(处理用户请求)。V:view,视图,对应Jsp(显示页面,如显示表格、菜单树等)。C:controller,控制器,对应Servlet(只负责请求转发)。此前,Servlet也是同时充当视图层、业务逻辑层以及持久层的动态网页编程技术。Jsp是Servlet的一种简化,使用Jsp只需要完成程序
2012-04-04 19:19:29
614
原创 Cookie与session
Cookie常用于网站记录客户的某些信息。一旦用户下次登录,网站可以获取到客户的相关信息,根据这些信息,网站可以对客户提供更友好的服务。Cookie会一直存放在客户端机器上,直至超出Cookie的生命期限。JSP使用response内置对象增加Cookie,它提供如如下方法:增加Cookie的步骤:(1).创建Cookie实例(2).设置Cookie的最大保存期限(3).向
2012-04-04 19:18:51
466
转载 struts2核心工作流程与原理
1. Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构。 2. Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。 ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java S
2012-03-20 20:38:49
794
转载 jRebel
想必大家对项目开发中,调试类文件修改时,容器自动重新加载漫长的过程早已厌倦,我今天闲来无事,于是,想试试javaRebel (jRebel)这个东西,javaRebel(jRebel)现在是收费软件,不过在网上可以下载到确解版的。在网上查了一下相关资料,可以实现修改类文件后,不用容器重新加载的功能,高兴之余顺手一试高下,先是下载了MyEclipse7.0(包括了eclipse)安装之,想在一个全
2012-03-20 18:25:57
10705
转载 oracle生成树
下面我们以PF_MENU这张表当作我们的数据表。 1、首先,我们查得整个表的数据: //CDID:菜单ID; FCDID:父菜单ID;CDM:菜单名称。 FCDID=0是最高级菜单;CDM=- 是 分割线SELECT CDID,FCDID,CDM FROM PF_MENU 得到的数据,如下(以下列举部分数据,不是完整的):CDID FCDID CDM30
2012-03-20 13:23:49
1324
转载 文件锁
读写相关的问题是永远存在的,文件锁就是为了解决这个问题而做的,其实它就是个简单的信号量。读写相关性指由于同时读写文件造成文件数据的随机性冲突。为了明确知道在何时通过何种操作对更改或是读取了文件中的那些数据,有必要对操作进行序列化,原子化,同步化,使用户能确知在何时文件中有什么数据。文件锁就是其中一个工具。文件系统一般有两种锁,共享锁及排它锁,也可被称为读锁和写锁。文件系统锁的特点:
2012-03-19 09:52:19
603
转载 农夫养牛
package excise;import java.util.ArrayList;import java.util.List;/** * 问题描述: * * 一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%, * 在牛12岁的时候就送入屠宰场买了。现在有一个农夫有1头1岁大的母牛, * 在母牛3岁的时候就送到附近的农场去配种,请问40年后这
2012-03-17 12:27:59
660
CPU结构_8086指令系统_汇编.pdf
2020-02-12
java ssh框架
2015-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人