自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(273)
  • 收藏
  • 关注

原创 体验IntelliJ IDEA的远程开发(Remote Development)

JetBrains Client界面如下,看起来像是IDEA,可以看到刚才在服务器下载的整个仓库的内容,和在本地打开没什么区别,Terminal打开的也是服务器目录,修改代码时改动的也是服务器上的代码。实际体验中,感觉就像平常的IDEA本地开发,但其实繁重的任务都交给了服务器去做,这对性能较差的本地电脑来说,以前跑不动的应用,如今凭借强大的服务器也能丝滑运行了。欣宸的服务器是腾讯云轻应用服务器,在官网租用的,如下图,4核8G,一年两百多,感觉挺划算。远程服务器开始下载后端应用,这是用于支持远程开发的服务。

2023-07-30 10:53:07 2725 2

原创 linux文本编辑YCM报错

由于本人的python版本是3.10,所以出现了版本兼容的问题。原因是Python3.10版本以后对requests库进行调整,collections中不能直接调用方法Mapping与MutableMapping,所以会出现访问报错的问题。刚从github安装了vimplus,可是发现存在不少的问题。重新打开新建一个文件,查看还有没有红色报错信息。找到这个bottle.py文件,修改里面的内容。好当我们找到问题后,就去解决问题。继续使用上面的测试命令,查看有没有别的问题。貌似又有一个新的问题。

2023-07-30 10:52:16 465

原创 Unity UGUI的PhysicsRaycaster (物理射线检测)组件的介绍及使用

PhysicsRaycaster是Unity UGUI中的一个组件,用于在UI元素上进行物理射线检测。它可以检测鼠标或触摸事件是否发生在UI元素上,并将事件传递给相应的UI元素。

2023-07-30 10:51:23 1147

原创 Redis从入门到放弃:发布与订阅

Redis是一个快速、开源的内存数据库,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。除了基本的数据存储和检索功能外,Redis还提供了许多高级功能,其中之一就是发布订阅(Pub/Sub)。发布订阅是一种消息传递模式,它允许消息的发布者(发布者)将消息发送给多个订阅者(订阅者)而不必知道订阅者的存在。这种模式在许多应用中都非常有用,例如实时通知、事件处理、聊天应用等。

2023-07-30 10:50:43 420

原创 Three.js使用InstancedMesh实现性能优化

有这么一种场景:需要渲染一座桥,桥有很多桥柱,桥柱除了位置与倾斜角度不完全相同外,其他均相同,由于桥柱数量很大,使用three.js绘制较为卡顿,如何优化?在three.js中,由于绘制一个几何体需要调用一次draw call,绘制很多几何体就很消耗性能,所以合并多个几何体为一个几何体能减少draw call,从而实现绘制性能优化。在图形渲染中,绘制调用的数量对性能有很大影响,较少的绘制调用通常意味着更高的性能,因为GPU在处理绘制调用时需要切换上下文和状态,这会导致一定的开销。

2023-07-30 10:49:50 1114

原创 树状数组的扩展应用

那么我们就先可以求 a[] 的前缀和,然后通过前缀和 O(1) 求出 [x−lowbit(x)+1,x] 的区间和,从而实现 O(N) 建立树状数组。同样的,一维树状数组的改变,也会影响到第二维树状数组的节点值,也要做出相对应的修改。那么就有,那么就有,(1)∑i=1xai=a1+a2+a3+...+ax(2)=b1(3)+b1+b2(4)+b1+b2+b3(5)+b1+b2+b3+b4(6)⋮(7)+b1+b2+b3+b4+⋯+bx(8)那么就有,∑i=1xai=∑i=1x∑j=1ibj。

2023-07-30 10:49:02 256

原创 std::queue 中遇到释放内存错误的问题

从截图可以看出,句柄的大小是 4 个字节,也就是说在内存中分配是三个红框标出的地方,按照设想,每一次 delete 都应该抹除 4 个字节的内存区域,也就是第一次抹除第一个红框,第二次抹除第二个红框..每一次 pop 时都会主动析构掉副本,本体是不受影响的(需要我们手动 delete),故我们只是拿到了副本的指针并在 pop 后又 delete 了,此时的地址已经是悬空指针了,行为是不确定的。我们可以提前声明一个数组,里面放置 new 后的地址,在最后使用完毕后,依次 delete。

2023-07-30 10:48:11 495

原创 「Python实用秘技」快速提取字体子集

在我们日常进行数据可视化、web应用开发等场景中,经常会用到一些特殊的非系统自带字体,尤其是中文字体,由于包含的字符数量众多,因此体积一般都比较大,这在进行数据可视化读取字体文件,或是网页应用中通过网络加载字体文件时,就会带来更多的耗时。而我们完全可以针对字体文件运用“按需引入”的思想,从原始的体积较大的全量字体文件中,根据我们实际使用到的文字范围,进行子集的提取,从而大幅度提升效率。库来快捷实现此项需求,它由谷歌开源,自带了若干实用的字体处理相关命令行工具,使用。的字体文件中,提取出大小仅有。

2023-07-30 10:47:29 611

原创 如何用 Java 写一个 Java 虚拟机

以上异常的原因是 module java.base does not "opens java.util" to unnamed module,也就是说 java.base 模块没有向未命名模块开放 java.util 包。由于 haidnorJVM 目前运行 JDK 自带的类是使用反射解决的,因此 haidnorJVM 使用 JDK17 运行部分 JDK 自带的类时会存在一些问题,例如运行以下代码将会抛出异常。它表示尝试通过反射来访问一个方法或字段,但该方法或字段的可访问性限制导致无法访问。

2023-07-30 10:44:15 293

原创 Redis 主从同步原理

主从同步,就是将数据冗余备份,主库(Master)将自己库中的数据,同步给从库(Slave)。

2023-07-30 10:42:43 257

原创 模拟ArrayLIst的底层实现

【代码】模拟ArrayLIst的底层实现。

2023-07-29 06:40:03 255

原创 JavaNote-概述及安装

是SUN,斯坦福大学网络公司)1995年推出的一门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(Applet),内嵌在HTML代码中。伴随着互联网的迅猛发展,以及Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。JDK(Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具。JRE。

2023-07-29 06:39:23 259

原创 Redis基础

有序集合类型 sortedset/zset:不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。1、由于上面虽然启动了redis,但是只要一关闭cmd窗口,redis服务就会停掉,所以考虑把redis安装为windows本地服务,随机启动。​ 卸载服务:redis-server --service-uninstall。​ 开启服务:redis-server --service-start。​ 停止服务:redis-server --service-stop。

2023-07-29 06:38:02 224

原创 MySQL的执行计划详解(Explain)

5.1、覆盖索引定义:mysql执行计划explain结果里的key有使用索引,如果select后面查询的字段都可以从这个索引的树中获取,这种情况一般可以说是用到了覆盖索引,extra里一般都有using index;index:扫描全索引就能拿到结果,一般是扫描某个二级索引,这种扫描不会从索引树根节点开始快速查找,而是直接对二级索引的叶子节点遍历和扫描,速度还是比较慢的,这种查询一般为使用覆盖索引,二级索引一般比较小,所以这种通常比ALL快一些。如果该列是NULL,则没有相关的索引。

2023-07-29 06:37:01 455

原创 JVM运行时数据区之堆空间

一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。堆区在JVM 启动的时候即被创建,其空间大小也就确定了,是JVM管理的最大一块内存空间。《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(The heap is the run-time data area fromwhich memory for all class instances and arrays is allocated)我要说的是:“几乎”所有的对象实例都在这里分配内存。

2023-07-29 06:36:13 268

原创 结巴分词-强大的中文分词器实践(java版)

原生jieba分词是强大的Python组件,可以用来进行关键词提取,标注以及定位。jieba 分词内置了常用词典,在源代码目录下有个dic.txt文件当内置词典不满足我们的业务场景时,可以自定义词典词典格式和 dict.txt 一样,一个词占一行;

2023-07-29 06:35:12 881

原创 SpringMVC拦截器和异常处理机制

创建异常处理器类实现HandlerExceptionResolver@Override//参数Exception是异常对象,返回值是你要跳转的错误页面配置异常处理器XML 复制 全屏编写异常页面。

2023-07-29 06:34:15 237

原创 Sping JdbcTemplate

JdbcTemplate 是 Spring JDBC 核心包(core)中的核心类,它可以通过配置文件、注解、Java 配置类等形式获取数据库的相关信息,实现了对 JDBC 开发过程中的驱动加载、连接的开启和关闭、SQL 语句的创建与执行、异常处理、事务处理、数据类型转换等操作的封装。我们只要对其传入SQL 语句和必要的参数即可轻松进行 JDBC 编程。

2023-07-29 06:33:31 293

原创 SpringMVC

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow 中。SpringMVC已经成为目前最主流的MVC框架之一。SpringMVC的作用:作为前端控制器,控制请求的共有行为,在传统的JavaEE技术中,只使用Servlet作为控制器,当每个功能都需要一个servlet程序相似功能也无法分开封装,另外,传统的开发模式也存在其它使用不便利的做法。

2023-07-29 06:32:51 592

原创 spring

Spring 是一个开源的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应Spring 是一个开源免费的框架,容器;Spring 是一个轻量级的框架,非入侵式的;控制反转 IoC,面向切面编程 AOP;对事务的支持,对框架的支持。方便解耦,简化开发AOP编程的支持声明式事务的支持方便程序的测试方便集成各种优秀的框架降低JavaEE API的使用难度。

2023-07-29 06:31:53 242

原创 [自然语言处理] 自然语言处理库spaCy使用指北

自然语言处理(Natural Language Processing,简称NLP)是一门研究人类语言与计算机之间交互的领域,旨在使计算机能够理解、解析、生成和处理人类语言。NLP结合了计算机科学、人工智能和语言学的知识,通过各种算法和技术来处理和分析文本数据。近年来,随着深度学习技术的发展,神经网络模型在自然语言处理(NLP)领域取得了重大的突破。其中,循环神经网络(RNN)、长短时记忆网络(LSTM)和Transformer等模型都发挥了关键作用。

2023-07-28 06:50:53 442 1

原创 mysql根据.frm和.ibd文件恢复数据表

忠人之事受人之托 起因是因为一位朋友的数据库服务器被重装了,只剩下一个zbp_post.frm和zbp_post.ibd文件。咨询我能不能恢复,确实我只用过mysqldump这种工具导出数据 然后进行恢复到数据库。这种直接备份物理存储文件还没有尝试过。前提是需要历史ibd文件的所属数据库版本 需要和还原新库数据库版本保持一致,这样才能少踩坑。要想恢复数据,表结构需要和.ibd里面的结构保持一致,如果不一致将恢复不成功 可能会报如下错误。或者其他异常。如果明确知道表结构 这一步可跳过。

2023-07-28 06:48:48 142

原创 Jenkins-Pipline实现原理

Jenkinsfile流水线是Jenkins CI/CD工具中用来定义、构建和管理软件交付流程的一种声明式文件。它允许将整个软件交付流程以代码的形式进行描述,从而实现对软件交付过程的可追踪性、可维护性和可扩展性。Jenkinsfile使用一种基于Groovy的DSL(领域特定语言)来定义流水线,开发人员可以通过编写Groovy代码来描述流水线的结构和逻辑。简而言之:Jenkinsfile 就是 Groovy脚本。

2023-07-28 06:47:47 128

转载 【AltWalker】模型驱动:轻松实现自动化测试用例的生成和组织执行

AltWalker是一个基于图模型的自动化测试框架,用于编写、执行和管理基于模型的测试。它主要用于测试复杂系统,如Web应用程序、移动应用程序等。它支持运行用.NET/C#和Python3编写测试模型用例。通过以上步骤,我们了解了如何使用AltWalker进行模型驱动的自动化测试。AltWalker是一个强大的测试框架,可以帮助我们更高效地编写、执行和管理测试用例。当然,基于模型的测试也有一些局限性,如模型的准确性和完整性对测试结果影响较大,模型构建和维护可能需要额外的成本等。

2023-07-28 06:47:01 564

原创 Java8 函数式编程stream流

Java 8 中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的 API 和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。

2023-07-28 06:45:09 120

原创 Mysql基础5-用户及权限管理

DCL:Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问,权限。

2023-07-28 06:44:07 57

原创 Mysql基础4-数据查询

Data Query Language(数据查询语言),用来查询数据库中表的记录。关键字:select。

2023-07-28 06:43:24 37

原创 Mysql基础3-数据库增删改操作

这里需要把四个字段都要赋值,id这里我并没有设置为主键,也没有设置为自动递增,所以这里id也是需要手动添加的,主键会放在后面章节中介绍。1、这里是按需添加数据,例如这里只添加name和age字段的数据,而address 没有添加。注意:如果不写where条件怎会删除所有数据,如果有多个满足条件的数据也会同时删除多个。注意:修改语句的条件可以有也可以没有,如果没有条件,则会修改整张表的所有数据。修改id=17的这一条数据的age为17,address为深圳。

2023-07-28 06:42:29 40

原创 Mysql基础2-数据库及表的操作

补充,varchar会动态的根据储存数据的大小分配空间,所以性能上char更好,varchar 会弱一点,但是对于不确定长度的字段,建议还是使用varchar, 如果char 当超过长度会报错。如果设置字符集的时候,不要设置utf8,因为utf8在mysql中占3个字节,要使用utf8mb4,这个支持4个字节。1、[]里面表示可选参数,是可以省略的,使用的时候不用写[],直接写comment 即可。Mysql 中的数据类型有很多,主要分为三类,数值类型,字符串类型,日期类型。这里是有()的,不能少的。

2023-07-28 06:41:38 53

原创 Mysql基础1-关系型数据库与非关系型数据库

数据库是数据的仓库。与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录是多么分明)也因为其“数据结构”式,所以有极高的查找速率(比如B+Tree查找法),(由于专精,可以根据自己的结构特性来快速查找,所以对于数据库的查找会比较快捷;不像普通文件系统的“查找”那么通用)

2023-07-28 06:40:45 50

原创 CPU摸鱼被抓,上了一个新技术!

我们CPU的任务就是执行程序员编写的程序,只不过程序员编写的是高级语言代码,而我们执行的是这些代码被编译器编译之后的机器指令。那一天,我正在忙活着···“阿Q,工作时间你怎么在摸鱼啊!”,领导突然到访,吓得我一哆嗦。“领导,我正在执行的这条指令,需要从内存读取数据,这您是知道的,内存那家伙可慢了,所以我只好等着,这可不是摸鱼哦···”,我小心地解释到。领导眉头紧锁,指着一片电路问道:“这些是做什么的,怎么没在工作?“那是读取指令的电路”“旁边那些呢”

2023-07-27 13:06:54 52

原创 深入理解Mysql索引

在数据库中,索引是一种数据结构,它可以加快数据库表中数据的检索速度。当在数据库表中创建索引时,数据库管理系统会根据指定的字段或列创建一个索引结构,以便在查询数据时可以更快地找到匹配的记录,而不必逐条扫描整个表。Mysql官网是这样描述的:索引用于快速查找具有特定列值的行。如果没有索引,MySQL 必须从第一行开始,然后读取整个表以查找相关行。表越大,成本就越高。如果表有相关列的索引,MySQL 可以快速确定要在数据文件中间查找的位置,而无需查看所有数据。这比顺序读取每一行要快得多。

2023-07-27 13:05:07 213

原创 一次服务启动慢问题排查

这不本人就遇到一个服务启动慢的问题,印象中服务启动是比较快的,一般也就20几秒,但这次开发一个需求发现服务启动要接近1分钟,这对本地开发调试,测试同学测试都是非常不方便的,影响工作效率。我们看如下的详细过程,发现确实如此。随着时间推移,参与开发的人员越来越多,项目代码也会越来越复杂,需要我们有意识的定期对代码进行优化,有问题及时解决,避免技术债务越积越多。3.在启动时做一些框架初始化,如使用数据库orm框架,通常需要加载数据库元信息,如果数据库表过多,加载时间长,可能导致服务启动慢。

2023-07-27 13:02:47 196

原创 web系统字典统一中文翻译问题

几乎每个web系统都离不开各种状态码。订单新建,待支付,未支付,已支付,待发货。消息已读未读,任务待标记待审批已审批待流转已完成未完成。等等。复杂一点的,会有多级状态码。状态码超出3个的,一般都会纳入统一的字典管理。字典系统作为一个独立的微服务部署。使用Redis作为缓存。其它系统使用字典的时候只需接入该服务,调用相应接口即可。这本身没什么问题,也没什么可讲的。但在字典翻译的时候还是会出现一些五花八门的问题。

2023-07-27 13:01:16 55

原创 web系统字典统一中文翻译问题

几乎每个web系统都离不开各种状态码。订单新建,待支付,未支付,已支付,待发货。消息已读未读,任务待标记待审批已审批待流转已完成未完成。等等。复杂一点的,会有多级状态码。状态码超出3个的,一般都会纳入统一的字典管理。字典系统作为一个独立的微服务部署。使用Redis作为缓存。其它系统使用字典的时候只需接入该服务,调用相应接口即可。这本身没什么问题,也没什么可讲的。但在字典翻译的时候还是会出现一些五花八门的问题。

2023-07-27 12:59:19 140

原创 Element-ui源码解析(二):最简单的组件Button

好家伙,为了有足够的能力去开发组件,先研究一下别人的组件开始抄袭模仿我们的行业标杆element-ui 找到Button组件的源码 只有三个文件,看上去非常易读,开搞 其中最重要的部分,自然是button.vue<template> <button class="el-button" @click="handleClick" :disabled="buttonDisabled || loadi

2023-07-27 12:57:19 229

原创 如何编写难以维护的React代码?——滥用useEffect

在改进后的代码中,我们使用了 useMemo 来计算 filteredList,这样可以避免滥用 useState 和 useEffect。通过传入依赖数组 [list, filter],只有在 list 或 filter 发生变化时,才会重新计算 filteredList,从而优化性能。减少状态的使用可以有助于降低代码的复杂性,减少潜在的错误。Less States, Less Bugs.总结:简洁且高效的代码是开发者的追求目标,它不仅有助于减少错误,而且在项目的长期维护中也更容易被团队成员理解与修改。

2023-07-27 12:56:34 53

原创 高可用三大利器 — 熔断

熔断(Circuit Breaker):熔断是一种防止故障扩散的机制。当一个服务出现故障或超时,熔断器会打开并快速失败,拒绝后续的请求,避免请求堆积和资源耗尽。熔断器会暂时屏蔽该服务,并在一段时间后尝试恢复。熔断器的状态变化可用于监控系统健康和提供告警信息。限流(Rate Limiting):限流是一种控制系统请求流量的机制。通过设置一个请求速率阈值,限流可以限制每个客户端或用户在特定时间内的请求次数。这样可以防止过多的请求涌入系统,保护系统免受过载和压力冲击。限流可以平滑流量,避免系统突发流量的影响。

2023-07-27 12:55:39 70

原创 Unity UGUI的EventSystem(事件系统)组件的介绍及使用

EventSystem是Unity UGUI中的一个重要组件,用于处理用户输入事件,如点击、拖拽、滚动等。它负责将用户输入事件传递给合适的UI元素,并触发相应的事件回调函数。

2023-07-27 12:54:55 680

原创 Llama 2 来袭 - 在 Hugging Face 上玩转它

Llama 2 的推出让我们非常兴奋!后面我们会围绕它陆陆续续推出更多内容,包括如何微调一个自己的模型,如何在设备侧运行 Llama 2 小模型等,敬请期待!

2023-07-27 12:52:40 216

大学四年里编写的c或c++的代码.rar

C++方向 我本人就是C++后台开发方向,在学习的过程中也陆陆续续收集了一些比较适合新手写上简历的C++项目。因为C++不像Java那样偏应用,C++偏底层,所以需要我们有比较好的计算机基础,比如计算机网络、操作系统、数据结构与算法、数据库等等。 如下是C++项目列表: 计算机网络相关项目 写一个Json库 https://github.com/miloyip/json-tutorial/blob/master/tutorial01/tutorial01.md 写一个WebServer 大佬写的:https://github.com/linyacool/WebServer 这里也给我写的打个小广告:https://github.com/mazamu/web-server 写一个网络库 https://github.com/chenshuaihao/NetServer 写一个服务器框架 https://www.bilibili.com/video/av53602631?from=search&seid=9029288577396826503 操作系统相关 写一个操作系统内核

2023-07-28

此项目主要是关于C++学习过程的小demo.rar

这篇文章包含了c++的基本知识,起始并不适合0基础程序员。如果你只是对c++的相关知识了解的没有那么全面,或者你或多或少遗忘了一部分基础知识,那这篇文章再适合你不过了。如果有问题可以留言。 此demo主要包括三个文件:namespace.h文件,包含了自定义空间、空间函数、空间变量、空间自定义类;namespace.c文件为namespace.h文件中定义函数的实现;main.cpp文件为主程序运算。 namespace.h和namespace.cpp包含了自定义基、继承类、模板类的定义及实现。涉及到自定义类的构造函数、重载构造函数、函数默认值、析构函数、复制构造函数、重载运算符(赋值函数、加法函数)、虚函数、常值函数、静态函数、静态变量、常值变量、枚举变量、内部类、访问修饰符、继承、重写虚函数、基类引用、不定参数函数、友函数、友类、类型引用、终态函数、终态类、模板变量等内容。

2023-07-28

Linux代码,以C++为基础.rar

一、C语言是什么? 是一种高级语言,相比于其他高级语言而言,更贴近硬件 。可以直接操作内存,硬件设备 。其运行效率是最高的 ,运行需要的硬件开销小 。 二、开发环境 1.Linux下载 VMware16虚拟机的下载地址,大家可以复制链接到浏览器中进行下载: http://www.zhanshaoyi.com/15258.html 三、学习在Linux上写C代码 1.GCC编译器下载 打开Linux终端,右击选择打开终端

2023-07-28

C语言和C++的重要知识点提炼.rar

1.c++虚函数原理 作用:C++中的虚函数的作用主要是实现了多态的机制。当基类中的成员函数定义了虚函数,其子类可以重新改写该函数。也即是允许派生类调用父类的同名函数而实现不同的功能,也叫动态联编。在主函数调用时,只需要定义一个基类指针就可以进行派生类的分别操作。 底层原理:虚函数表+虚函数表指针。每一个类都会对应一个虚函数表,一个存放虚函数地址的虚函数表,并创建虚函数指针(vptr)来指向表。 如果基类有3个虚函数,那么基类的虚表中就有三项(虚函数地址),同时虚表可以继承,派生类也会有虚表,至少有三项,如果重写了相应的虚函数,那么虚表中的地址就会改变,指向自身的虚函数实现,如果派生类有自己的虚函数,那么虚表中就会添加该项。 2.虚函数指针的初始化过程 虚函数表的创建和虚函数指针的初始化都是在构造函数中进行的。当编译器发现基类当中有虚函数存在时,就会为每个含有虚函数的类创建一个虚函数表(vtable),该表是一个一维数组,存放的是虚函数的地址,子类中如果没有虚函数也会从基类中继承虚函数表,虚表创建之后还会创建一个虚函数指针来指向虚表,即(vptr)。

2023-07-28

c语言代码的编辑仓库,测试使用.rar

1. C语言程序开发的步骤 现在你肯定迫不及待地想要开始写程序了。 这一节,我们来聊聊怎样把程序写出来,如何让它能够被计算机所理解,又怎样让它按照我们想要的效果运行。 要让C语言代码成功运行,并达到预想的效果,一般需要经过以下步骤: 代码编辑。 编译及链接。 调试及测试。 2. 代码编辑(俗称写代码) #include<stdio.h> int main() { printf("Hello World\n"); return 0; } 现在动手试试看,把这串代码输入到电脑中。 但是......在哪输入呢?在聊天框?在搜索框? 肯定不是啦,我们需要把代码保存成一个文件,以便计算机关机之后仍然不会丢失,也方便复制到其他地方去。 那我们需要一个什么样的文件呢?既然C语言代码是一些文字,那么Word文档行不行? 其实没那么复杂,由于C语言代码并不需要各种字体、段落格式。所以,可以更加简单一点。 在你需要保存文件的地方(我这里选择的是F盘下的c文件夹,你可以随意选到其他位置)鼠标点右键,新建一个文本文档就能满足要求了。

2023-07-28

C语言C++编程学习.rar

一 学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。 在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。 当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。 在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。 先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序.

2023-07-28

C++以及数据结构与算法的练习 .rar

在程序1-7的交换函数中,形参x、y实际上是传值参数,在运行时,交换函数执行前,把实参的值复制给形参,当函数运行结束时,形参类型的析构函数负责释放形式参数,而形参的值不会复制到对应的实参中,故程序1-7的交换函数不能将形参x和y所对应的实参的值交换。 若要使实参的值能够得到交换,将传值参数修改为引用参数即可void swap(int &x, int &y)。 不是,因为一个函数的签名是由这个函数的形参类型以及形参个数确定的,例题中的两个函数具有相同的形参类型以及形参个数(int, int, int),仅仅是返回值不同,不能构成函数重载。 (1)调用了1-1 (2)调用了1-2 (3)会报错,调用函数的签名与1-1,1-2的签名不匹配,而且因为从int到float和从float到int的类型转换都是可能发生的,C++无法确定需要调用哪个函数,故而给出编译错误。 (4)会报错,实参类型为double,因为从double到int和从double到float的类型转换都是可能发生的,C++无法确定需要调用哪个函数,故而给出编译错误。

2023-07-28

C++算法实现代码集.rar

闲来无事,翻阅起以前写的代码,无意间找到了大学时写的一套C++工具集,主要是关于数据结构和算法、以及语言层面的工具类。过去好几年了,现在几乎已经回忆不起当年写代码时的情况,不过,通过文件头部注释里的日期,还是依稀想起了那些日子发生的一些事情,不禁感慨了一番。感概之余,随便翻阅了一下,发现当年的编程手法和现在相比,略显稚嫩,风格也相差的比较大了,明显受到当时读的一些经典C++书籍的影响。不过好在代码质量都算可以,都属于基础的语言层面以及数据结构的代码,操作指针比较小心,每个类也都有测试的样例,感觉对初学者应该会有用,于是拿到这里放出来,希望能对准备学习和正在学习C++语言编程的朋友有所裨益。 基本上可以分为两大类,一种是关于数据结构和算法的(例如:RBtree,stack),另一种是关于C++语言本身层面的(例如:reference_count,Uncopyable)。这些类,可以在如今C++标准库或者其它C++库(如:boost)中找到类似的实现,实现它们的目的不是想自己造轮子,而是通过实现,来深入的理解到一些更本质的东西。很多时候,人们往往“知其然,不知其所以然”,

2023-07-28

C++和Wolfram交互的初级教程和例子.rar

引言 Mathematica作为Wolfram Research的一款科学计算工具,与MatLab、Maple并称为三大数学软件。它很好地结合了数值与符号计算引擎、编程语言、文本、图形及声音等系统的处理,并且也提供有大量与外部程序进行交互的接口。在数学、物理、工程、经济、地理等领域有着极为重要的应用。尤其是它强大的符号计算能力更是让数学和物理学家从基础、复杂又重复的体力劳动般的公式推导中解脱了出来。 Mathematica本身提供有大量的数学函数,几乎可以满足各种数学要求。比如积分、微分、求极限、求和、解方程、对矩阵的各种操作等,可谓是科研工作者的人工智能助手。比如说,在粒子物理中,高阶的越来越复杂的费曼图的计算就意味着越来越复杂的符号计算,学过《量子场论》的大概都明白树图阶的康普顿散射真正动笔计算起来也还是很复杂很麻烦的。那么面对复杂的符号计算及积分,人手工来做显然无能为力。这个时候Mathematica可就能帮上大忙,比如只要载入高能包(HighEnergyPhysics)便可以进行复杂的洛伦兹指标的收缩或者伽马矩阵的求迹。

2023-07-28

,C++,JAVA初级学习.rar

第二章: 2.8数组 2.8.1 数组的定义 数组是指一组数据的集合,数组中的每个数据被称为元素。数组可以存放任意类型的 元素,但同一个数组中存放的元素类型必须一致,例如使用一个int类型数组保存某个学生的各科成绩,这样就避免了定义多个变量保存成绩的麻烦。 在Java中,可以使用以下格式定义一个数组: int[] x=new int[10]; 或 int[] x; x=new int[10]; 1 2 3 4 2.8.2 Arryas工具类 Arrays是一个专门用于操作数组的工具类,该类位于java.util包中。Arrays工具类提供了大量的静态方法,常用的方法如表2-7所示 import java.util.*; public class HelloWorld{ public static void main (String[] args){ int[] arr={9,8,3,5,2}; int[] copied=Arrays.copyOfRange(arr,1,7);//复制数组 System.out.print

2023-07-28

FastAPI 是一个高性能 Web 框架,用于构建 API.zip

一、FastAPI简介 FastAPI是一个用于构建API的快速、高性能的WEB框架,使用Python3.6+并基于标准的Python类型提示。 二、FastAPI的特点 快速:可与NodeJS和GO比肩的极高性能,是执行速度最快的Python的web框架之一 高效编码:代码开发效率可提高至200%至300% 更少的Bug:可减少大约40%的开发者人为导致的Bug 智能:编辑器中自动补全和提示支持的非常好,可以大幅减少调试时间 简单:学习和使用起来非常的简单 健壮:代码具有很好的健壮性,而且还能自动生成帮助文档 标准化:完全兼容API的相关标准,自动支持Swagger接口文档 三、安装 3.1 安装 fastapi pip install fastapi 1 3.2 安装 ASGI 服务器 pip install "uvicorn[standard]" 1 四、FastAPI快速体验 4.1 编写main.py文件 编写如下代码,即实例化了一个app的对象,然后编写了两个接口,其中helloworld接口无需填写参数,直接返回一个字典,而get_info接口需要在url中填写一个参数

2023-07-26

fastapi-vue-blog Python异步后端开源博客 后端框架.zip

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。 高效编码:提高功能开发速度约 200% 至 300%。* 更少 bug:减少约 40% 的人为(开发者)导致错误。* 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。 简单:设计的易于使用和学习,阅读文档的时间更短。 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。 健壮:生产可用级别的代码。还有自动生成的交互式文档。 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。

2023-07-26

总结一些matlab的基本知识.rar

1. 我们知道, 是一个小数点后无限位的无理数,计算机是无法精确表示的。所以,在MATLAB中, pi只是一个近似值,3.141592653589793,精确到小数点后15位 pi == 3.141592653589793 % ans = 1 2. sin(pi)≠0 因为 ,导致的一个问题是,sin(pi)并不精确的等于0。事实上,所有的sin(n*pi)都不为0,且互不相等。 sin(pi) % ans = 1.224646799147353e-16 sin(2*pi) % ans = -2.449293598294706e-16 sin(3*pi) % ans = 3.673940397442059e-16 甚至可以看到,当n足够大时,sin(n*pi)会接近于±1. sin(4e16*pi) % ans = -0.999478704149319 正确地计算sin(n*pi)的方法是,利用sinpi函数。这是一个R2018b推出的新函数,能够精确计算形如sin(pi*x)的值。 sinpi(1) == 0 % ans = 1 sinpi(4e16) == 0 % a

2023-07-22

自己用MATLAB写的常用子程序,方便日后使用 .rar

1. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。 2. figure命令新建一个绘图窗口 figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。 figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。 3. 注释掉一段程序:%{、%} 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和{ 的组合。输入%{后,后面的代码都会变绿,在注释结束的地方再加上 %} 。 也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R,取消注释快捷键为Ctrl+T。 4. doc 命令名,打开命令的帮助文档 与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。 5. clc 清屏 清除命令窗口中的所有输入和输出信息,不影响命令的历史记

2023-07-22

主要用来存放matlab脚本与仿真模型.rar

这是我总结的操作方法: 1 ) M脚本文件的编写 1、新建M-file; 2、输入指令; 3、保存(注意:保存路径需要与工作路径一致) 2 )在SIMULINK中创建系统模型的步骤 1、新建一个空白的 模型窗口。 2、在SIMULINK模块库浏览器中,将创建系统模型所需要的功能模块用鼠标拖放到新建的模型窗口中。 3、在各个模块用信号线连接,设置仿真参数,保存锁创建的模型(后缀名.mdl)。 4、点击模型窗口中的 三角形 按钮,运行仿真。 1、 二维曲线绘图基本指令操作 t=(0:pi/50:2*pi)’; k=0:4:0.1:1; Y=cos(t)*k; Plot(t,Y);

2023-07-22

用matlab开发的带界面的语音信号处理仿真.rar

Matlab语音信号处理是指利用matlab软件对音频信号进行读取,并对音频信号进行采样分析及离散傅里叶变换,以方便对其在频域上进行调制滤波等相关的操作。本次实验在提取音频信号后会对该信号使用在MATLAB软件中设计的滤波器进行滤波,并观察其效果,验证滤波器是否可行。 本次使用了MATLAB软件,综合运用GUI界面设计、各种函数调用等来实现音频信号的傅里叶变换及滤波,程序界面简练,操作简便,具有一定的实际应用意义。软件中自带的信号处理与分析工具箱为语音信号分析实验提供了丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化。信号处理是MATLAB重要应用的领域之一。 【关键词】 matlab 语音信号处理 数字滤波器 傅里叶变换 目 录 第1章 引言 4 1.1 音频信号处理研究意义 4 1.2 音频信号处理发展历程和现状 4 1.3 本课题的研究内容和问题 5 1.4 程序流程图 6 第2章 信号采集基本内容 7 2.1 MATLAB简述 7 2.2 采样位数和采样频率 7 2.3 音频信号采集依据:采样定理 7

2023-07-22

详解MATLAB在科学计算中的应用.rar

详解MATLAB在科学计算中的应用本教程由两部分组成,分别是技术讲解部分和案例讲解部分,本教程含有案例源码、PPT等,其中技术讲解部分如下: 第1章 MATLAB概述 第1章 MATLAB的工具箱 第2章 MATLAB语言程序设计 第3章 误差理论 第4章 非线性方程(组)的求解 第5章 线性方程组的求解 第6章 插值 第7章 函数逼近与数据拟合 第8章 数值积分与数值微分 第9章 偏微分方程问题的求解 第9章 微分方程问题的求解 第10章 特征值与特征向量的计算 第11章 优化问题的求解 第12章 数值模拟 第13章 数值计算方法实际应用案例1 案例讲解部分如下: 第10章 特征值与特征向量的计算(实例解析) 第11章 优化问题的求解(实例解析2) 第11章 优化问题的求解(实例解析) 第12章 数值模拟(实例解析) 第1章 MATLAB概述(实例解析) 第2章 MATLAB语言程序设计(实例解析) 第3章 误差理论(实例解析) 第4章 非线性方程(组)的求解(实例解析)

2023-07-22

通用行为实验控制PC-MATLAB端.rar

一、实验课程教学目的与任务 通过实验设计或计算机仿真设计,使学生了解和掌握数字PID控制算法的特点、了解系统PID参数整定和数字控制系统的直接设计的基本方法,了解不同的控制算法对被控对象的控制特性,加深对计算机控制系统理论的认识,掌握计算机控制系统的整定技术,对系统整体设计有一个初步的了解。 根据各个实验项目,完成实验报告(用实验报告专用纸)。 二、实验要求 学生在熟悉PC机的基础上,熟悉MATLAB软件的操作,熟悉Simulink工具箱的软件编程。通过编程完成系统的设计与仿真实验,逐步学习控制系统的设计,学习控制系统方案的评估与系统指标评估的方法。 计算机控制系统主要技术指标和要求1) WINDOWS操作系统和MATLAB软件。 PC电脑。 实验原理 在过程控制中,广义被控对象采用一阶对象,设计相应的数字控制器,使系统达到稳定,并满足一定的动态和静态指标。 例如:对象的传递函数为:,按下图进行数字PID控制系统设计,并确定数字PID控制器的参数。 四、实验内容 建立闭环数字控制系统。 选择PID数字调节器。 将PID三参数置于适当值,使系统稳定运行。

2023-07-22

模式识别基础-Matlab上机实验代码.rar

使用神经网络能执行几种典型的任务:聚类、拟合、分类(模式识别)以及时间序列预测。 其中分类任务可以说是最常应用的场景之一,在之前的文章里也使用了分类任务作为案例对神经网络进行了入门讲解。 时常遇到想要使用神经网络快速地实现分类的同学。 今天就讲一讲怎么用MATLAB快速地完成吧。 1.准备数据 这里使用MNIST数据集作为案例。 MNIST是一个很有名的手写数字识别数据集。对于每张照片,都是以一个28*28的矩阵存储的,数据“展平”之后是一个长度为784的一维数据。

2023-07-22

mall电商系统.rar

mall项目致力于打造一个完整的电商系统,采用现阶段流行技术实现。 项目介绍 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 SpringBoot实战电商项目mall地址文末获取 项目演示 后台管理系统 前端项目mall-admin-web

2023-07-21

mall-admin-web 电商系统前端项目.rar

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 SpringBoot实战电商项目mall地址文末获取 项目演示 后台管理系统 前端项目mall-admin-web

2023-07-21

Logstash日志管理系统.rar

由于传统的单体应用时代,大多数应用采用的是通过登录SSH客户端登服务器查看,使用less或者tail等指令。 使用ELK(Elasticsearch、Logstash、Kibana)和Kafka实现微服务统一日志管理,可以通过以下几个步骤来完成: 部署Kafka集群:首先需要部署一个Kafka集群,它将作为中间件来缓冲数据,确保高效的日志传输和处理。可以选择在Kubernetes中部署这些组件以实现容器化管理[2]。 部署ELK集群:在系统中部署Elasticsearch、Logstash和Kibana三个组件,搭建ELK日志系统。其中,Elasticsearch负责日志数据的存储与检索,Logstash负责从Kafka消费数据并将数据传输到Elasticsearch,Kibana则负责从Elasticsearch中读取日志数据并进行可视化展示[6]。 日志采集:可以使用Filebeat或者其他日志采集器收集微服务的日志数据,然后将数据发送到Kafka中[1]。 配置Logstash:配置Logstash以从Kafka消费数据,并将消费后的数据写入到Elasticsearch

2023-07-21

lock4j高性能分布式锁.rar

一. 分布式锁概念当我们在单机环境下进行应用开发,涉及到并发同步时,说到如何保证线程的安全,相信大家一定能想到采用synchronized或者Lock的方式,来解决多线程间的代码同步问题。这时多线程的运行都是在同一个JVM之下,我们只要保证锁对象的唯一性,就不会产生任何问题。<img src="https://picx.zhimg.com/50/v2-03077755615361fea09567ae5e46476f_720w.jpg?source=1940ef5c" data-caption="" data-size="normal" data-rawwidth="777" data-rawheight="358" data-original-token="v2-73be10adbaf7311ee5398690c0d32365" class="origin_

2023-07-21

lilishop电商商城系统.rar

A1.运营用户模块(仅M端操作) 之前在系统搭建里面有描述过用户登录、认证鉴权的框架设计【Lilishop商城】No2-2.确定软件架构搭建一(本篇包括MVC框架、持久框架、缓存、认证工具、安全框架等) 其中有 framework 模块里的公共类,还有各个端自己的登录认证类,这里会再简单提一下,重点是在运营用户的业务。 shop系统里面的运营用户模块就是和大多系统一样,无非就是用户-菜单-部门-角色,用户的权限由角色确定,而角色来关联菜单(菜单即表示权限)。 接下就从三个方面来详细设计,先分析业务逻辑,然后将业务操作拆解为具体调用接口,然后可以再分析一下具体的业务类(业务类也可以放到编码阶段分析,我们现在的详细设计就只包括接口和设计逻辑,不包含业务类),同时要记得结合各个端来分析~ B1.设计逻辑分析(熟悉后可略过) 简单明眼一看就能看出来的逻辑,就不详细说了,比如用户新增、修改,但是用户涉及到的权限就属于隐式的内容,这个就需要说明一下。 C1.用户 主要是管理用户;用户会和角色、部门进行关联,用户只会关联一个部门,但是可以关联多个角色;添加用户时,并没有校验用户名和手机号码

2023-07-21

light-task-scheduler.rar

框架概况: LTS是一个轻量级分布式任务调度框架。有三种角色, JobClient, JobTracker, TaskTracker。各个节点都是无状态的,可以部署多个,来实现负载均衡,实现更大的负载量, 并且框架具有很好的容错能力。 采用多种注册中心(Zookeeper,redis等)进行节点信息暴露,master选举。(Mongo or Mysql)存储任务队列和任务执行日志, netty做底层通信。 JobClient : 主要负责提交任务, 和 接收任务执行反馈结果。 JobTracker : 负责接收并分配任务,任务调度。 TaskTracker: 负责执行任务,执行完反馈给JobTracker。 支持任务类型: 实时任务 也支持定时任务 (如:3天之后执行) CronExpression (如:0 0/1 * * * ?)

2023-07-21

LarkMidTable 一站式开源的数据中台.rar

Lark中文名称 云雀,云代表大数据,雀代表平凡和自由。 LarkMidTable 是一站式开源的数据中台,实现元数据管理,数据仓库开发,数据质量管理,数据的可视化,实现高效赋能数据前台并提供数据服务的产品。 产品愿景 1.满足许多的小企业,提供一站式的解决方案。 2.做出世界级别,能够媲美BAT大厂的产品。 3.创造价值,产生价值,让世界变得更加美好。 技术选型 框架名称 框架用途 主要功能 Dolphin 任务调度 Task以DAG形式关联,实时监控任务的状态,支持Shell、MR、Spark、SQL、依赖等10多种任务类型,支持每日十万数据量级任务稳定运行 Flink 离线和实时计算框架 Flink实现流批一体化、机器学习(FlinkML)、图分析(Gelly)、复杂事件处理(CEP)、关系数据处理(Table) Hive 数据仓库 将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句语句转变成MapReduce任务来执行。 Kylin 分析数据库 Kylin 支持 SQL,Kylin 的 SQL on Hbase Kafka 消息中间件 应用解耦

2023-07-21

lanproxy内网穿透工具.rar

内网穿透的英文叫做 NAT traversal,又被称为端口映射或内网映射,内网穿透是网络连接术语,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。 内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式 ADSL 的宽带路由器,具有一个动态或者是固定的公网 IP,最后 ADSL 直接在 交换机 上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决 UDP 中出现的数据传输不稳定问题。

2023-07-20

lamp-cloud微服务脚手架.rar

SpringBlade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 https://gitee.com/dromara/lamp-cloud lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现插拔式数据库隔离、SCHEMA隔离、字段隔离 等租户隔离方案。 https://gitee.com/y_project/RuoYi 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用 https://gitee.com/zhijiantianya/ruoyi-vue-pro

2023-07-20

koalas-rpc开发框架.rar

企业生产级百亿日PV高可用可拓展的RPC框架。理论上并发数量接近服务器带宽,客户端采用thrift协议,服务端支持netty和thrift的TThreadedSelectorServer半同步半异步线程模型,支持动态扩容,服务上下线,权重动态,可用性配置,泛化调用,页面流量统计,泛化调用等,支持trace跟踪等,天然接入cat支持数据大盘展示等 1:为什么要写这个RPC 市面上常见的RPC框架很多,grpc,motan,dubbo等,但是随着越来越多的元素加入,复杂的架构设计等因素似使得这些框架和spring一样,虽然号称是轻量级,但是用起来却是让我们很蹩脚,大量的配置,繁杂的API设计,其实,我们根本用不上这些东西!!! 我也算得上是在很多个互联网企业厮杀过,见过很多很多的内部RPC框架,有些优秀的设计让我非常赞赏,有一天我突然想着,为什么不对这些设计原型进行聚合归类,自己搞一套【轻量级】RPC框架呢,碍于工作原因,一直没有时间倒腾出空,十一期间工作闲暇,说搞就搞吧,落地不易,很多细节性问题,比如tcp中怎么解决大量的wait-time,如何做到thrift和netty的兼容等等

2023-07-20

kitty权限管理系统.rar

一、数据库设计 当前项目大多采用领域驱动模型(DDD)进行项目设计,因此第一步需要完成对项目数据库的设计。 项目主要包含以下表: sys_config:配置表 sys_debt:机构表 sys_dict:数据字典表 sys_log:日志表 sys_login_log:登录日志表 sys_menu:菜单表 sys_role:角色表 sys_role_debt:角色机构表(机构与角色对应关系) sys_role_menu:角色菜单表(角色与菜单对应关系) sys_user:用户表 sys_user_role:用户角色表(用户与角色对应关系) 1.用户属于机构,通过 sys_user 表中的 dept_id 关联到机构。 2.机构拥有角色,通过角色机构表关联。 3.用户拥有角色,通过用户角色表关联,用户可以继承组织的角色。 4.角色关联菜单,菜单关联权限,角色通过角色菜单表关联到菜单表。 对应的sql语句如下: 原文链接:h

2023-07-20

k-form-design表单设计器.rar

k-form-design支持自定义组件、表单联动等高级功能,使用 vue2 + CompositionAPI + ts 实现伪 vue3 应用。 设计器布局参考form-generator项目,基于vue和ant-design-vue实现的表单设计器,样式使用less作为开发语言,主要功能是能通过简单操作来生成配置表单,生成可保存的JSON数据,并能将JSON还原成表单,使表单开发更简单更快速

2023-07-20

JSite 快速开发框架.rar

1、本框架是在 jeesite1.x 项目基础上,进行了框架重构,改造升级而来,在此特别感谢原作者的贡献!! 2、框架基于Maven构建,拆分成多个子模块,层次结构清晰。可用于所有Web应用,如企业后台管理系统、OA系统、CMS、CRM等。 3、框架本身集成了最新的 Flowable工作流引擎,内置了流程流程设计器moduler,有完整的流程管理模块,可以轻松实现流程的在线设计、部署,流程发起、流程流转跟踪等一系列OA办公业务。 4、框架主模块包含:系统管理、流程管理、在线办公、文件管理、代码生成。系统管理子模块--用户管理、机构管理、区域管理、菜单管理、角色管理、字典管理、日志查询、连接池监视,实现权限精细控制,支持跨部门、跨公司数据权限授权。 5、框架支持前后端基础代码自动生成,免去重复劳动。 软件架构·技术选型 环境要求 1、JDK 8 2、Tomcat 8 3、Apache Maven 3.x 基础框架 1、Spring Boot 2.2.2 2、Apache Shiro 1.4.2 3、Spring Framework 5.2.2.RELEASE

2023-07-20

JimuReport 积木报表.rar

报表设计过程 首先需要选择一款适合的报表工具,这里采用积木报表进行设计,具体步骤如下: 1. 数据准备 数据库中新建两张表,一张表名为“zhiwu”,用来存储部门信息;一张表名为“user”,用来存储客户信息数据。 两个表的关系是:“user”表的“b_id”与“zhiwu”表的“id”想对应; zhiwu表 user表 2.设计主表数据集 主表展示的是部门信息,设计步骤如下: 新建一个能展示部门信息的数据集,输入报表SQL,拼接上参数; 备注: 1、在浏览器查找的时候,主表和子表都可以使用“部门id”作为参数查找, 所以我们可以把拼接的参数写成 id='${pid}',浏览器地址后可以拼接?pid=1这种形式; 2、下图中“pid”是随意定义的,用来浏览器传参使用; 图1 浏览器查找样式: 因为部门信息在页面只显示一条数据,所以把图1中“是否列表”对勾去掉; 3.设计子表数据集 子表展示的是部门员工信息,设计步骤如下: 新建一个能展示部门员工信息的数据集,输入报表SQL,拼接上参数; 备注: 1、在浏览器查找的时候,使用“部门id”作为参数

2023-07-20

Hbase分布式数据库.rar

数据结构介绍 结构化数据   结构化数据具有固定的结构,属性划分,以及类型等信息。我们通常所理解的关系型数据库中所存储的数据信息,大多是结构化数据, 如职工信息表,拥有ID、Name、Phone、Address等属性信息。   结构化数据通常直接存放在数据库表中。数据记录的每一个属性对应数据表的一个字段。 非结构化数据   无法用统一的结构来表示。如文本文件、图像、视频、声音、网页等信息。   数据记录较小时(如KB级别),可考虑直接存放到数据库表中(整条记录映射到某一个列中),这样也有利于整条记录的快速检索。   数据较大时,通常考虑直接存放在文件系统中。数据库可用来存放相关数据的索引信息。 半结构化数据   具有一定的结构,但又有一定的灵活可变性。典型如XML、HTML等数据。其实也是非结构化数据的一种。可以考虑直接转换成结构化数据进行存储。   根据数据记录的大小和特点,选择合适的存储方式。这一点与非结构化数据的存储类似。

2023-07-19

GarbageSort垃圾识别工具箱.rar

垃圾识别精灵 是一个 基于 uni-app 开发 微信小程序,使用 SpringBoot2 搭建后端服务,使用 Swagger2 构建 Restful 接口文档,实现了 文字查询、语音识别、图像识别其垃圾分类的功能,这是一款个人开发的微信小程序,集文字查询、语音识别、拍照识别其垃圾分类的小工具,可供个人学习或用于毕业设计,简单易上手进行二次开发 垃圾识别精灵 是一个 基于 uni-app 开发 微信小程序,使用 SpringBoot2 搭建后端服务,使用 Swagger2 构建 Restful 接口文档,实现了 文字查询、语音识别、图像识别其垃圾分类的功能,这是一款个人开发的微信小程序,集文字查询、语音识别、拍照识别其垃圾分类的小工具,可供个人学习或用于毕业设计,简单易上手进行二次开发

2023-07-19

Forest轻量级HTTP客户端框架.rar

因为业务关系,要和许多不同第三方公司进行对接。这些服务商都提供基于http的api。但是每家公司提供api具体细节差别很大。有的基于RESTFUL规范,有的基于传统的http规范;有的需要在header里放置签名,有的需要SSL的双向认证,有的只需要SSL的单向认证;有的以JSON 方式进行序列化,有的以XML方式进行序列化。类似于这样细节的差别太多了。 不同的公司API规范不一样,这很正常。但是对于我来说,我如果想要代码变得优雅。我就必须解决一个痛点: 不同服务商API那么多的差异点,如何才能维护一套不涉及业务的公共http调用套件。最好通过配置或者简单的参数就能区分开来。进行方便的调用? 我当然知道有很多优秀的大名鼎鼎的http开源框架可以实现任何形式的http调用,在多年的开发经验中我都有使用过。比如apache的httpClient包,非常优秀的Okhttp,jersey client。 这些http开源框架的接口使用相对来说,都不太一样。不管选哪个,在我这个场景里来说,我都不希望在调用每个第三方的http api时写上一堆http调用代码。

2023-07-19

flyray-base分布式基础框架.rar

flyray-base是一套包括组织机构、角色用户、权限授权、数据权限、内容管理、支付、对账、清结算、客户管理、营销活动、库存管理、搜索模块等分布式框架,使用Spring+SpringMVC+Mybatis+dubbox+redis+rocketmq+elasticsearch+shiro等技术栈rocketmq做统一的消息队列中心,通过动态切换数据库实现读写分离 flyray-base是一套包括组织机构、角色用户、权限授权、数据权限、内容管理、支付、对账、清结算、客户管理、营销活动、库存管理、搜索模块等分布式框架,使用Spring+SpringMVC+Mybatis+dubbox+redis+rocketmq+elasticsearch+shiro等技术栈rocketmq做统一的消息队列中心,通过动态切换数据库实现读写分离

2023-07-19

总结一些matlab的基本知识.rar

1、矩阵表示和简单操作 2、矩阵转置 A.’ 非共轭转置 A’ 共轭转置 当A为实矩阵时,两者相同 单纯地共轭用:conj() 单纯的转置用:transpose() 3、括号使用 ()、[]、{}的用法及区别 4、end使用 end的用法 5、运算及定义矩阵总结(与1相似,为表格形式) 基本运算及特殊矩阵 6、cell用法 cell使用 7、关于使用matlab cvx或者python cvxpy包时log(1/x)如何表示 rel_entr 8、eig 函数用法 eig 函数 9、sum函数基本用法 a=sum(A) %列求和 b=sum(A,2) %行求和 c=sum(A( :)) %矩阵求和 假定A为一个矩阵: sum(A)以矩阵A的每一列为对象,对一列内的数字求和。 sum(A,2)以矩阵A的每一行为对象,对一行内的数字求和。 求一个矩阵A的总和时有两种方法,sum(A( :))和sum(sum(A))。

2023-07-18

自己整理的Matlab學習筆記,佛係更新哈.rar

函数:对图像矩阵进行比例缩放 参考链接Matlab 图像平移、旋转、缩放、镜像_Fighting!-程序员宅基地_matlab图像平移第三条 但是此处有误 x = uint8(temp(1, 1)); y = uint8(temp(2, 1)); 在转换为uint8时,小于0.5的会被舍去,也就是缩小后的坐标小于0.5的全都会被当成0,比如:若扩大倍数为50,则扩大后的图像在x<25和y<25的区域会变成0,也就是图像的左侧与上侧会出现黑边,而右侧和下侧会损失一些像素,所以为更正该问题,需要使缩小后的坐标x,y都+0.49(按需调整),更改后写成函数形式为: function res=matResize(b,timesX,timesY) [R, C] = size(b); % 获取图像大小 res = zeros(timesX * R, timesY * C); % 构造结果矩阵。每个像素点默认初始化为0(黑色) tras = [1/timesX 0 0; 0 1/timesY 0; 0 0 1]; % 缩放的变换矩阵 for i = 1 : timesX * R fo

2023-07-18

自己用MATLAB写的常用子程序,方便日后使用 .rar

实例1:三角函数曲线(1) 实例2:三角函数曲线(2) 实例3:图形的叠加 实例4:双y轴图形的绘制 实例5:单个轴窗口显示多个图形 实例6:图形标注 实例7:条形图形 实例8:区域图形 实例9:饼图的绘制 实例10:阶梯图 实例11:枝干图 实例12:罗盘图 实例13:轮廓图 实例14:交互式图形 实例14:交互式图形 实例15:变换的傅立叶函数曲线 实例16:劳伦兹非线形方程的无序活动 实例17:填充图 实例19:三维曲线图 实例20:图形的隐藏属性 实例21PEAKS函数曲线 实例22:片状图 实例23:视角的调整 实例24:向量场的绘制 实例25:灯光定位 实例26:柱状图 实例27:设置照明方式 实例28:羽状图 实例29:立体透视(1) 实例30:立体透视(2) 实例31:表面图形 实例32:沿曲线移动的小球 实例33:曲线转换按钮 实例34:栅格控制按钮 实例35:编辑框的使用 实例36:弹出式菜单 实例37:滑标的使用 实例38:多选菜单 实例39:菜单控制的使用

2023-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除