自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (2)
  • 收藏
  • 关注

原创 再学C++ | 理解 explicit 关键字的作用

时,它将禁止隐式类型转换。默认情况下,C++编译器允许使用构造函数进行隐式类型转换。例如,如果一个类有一个参数的构造函数,而在代码中使用了该类对象的参数,则编译器会自动调用该构造函数进行类型转换。,可以避免一些潜在的错误和歧义,提高代码的安全性和可读性。同时,显式地进行类型转换可以更清晰地表达意图,避免了隐式类型转换可能引发的不明确或错误的行为。是一个关键字,用于修饰类的构造函数。类型的构造函数,编译器会自动进行隐式类型转换,将。对象作为参数,但是在调用函数时直接传递了一个。然而,如果将构造函数声明为。

2023-09-28 10:43:31 306

原创 再学C++ | std::set 的原理

需要在插入到时候排序,所以需要重载 struct 的比较运算符,这个时候就出现问题了,首先我们定义一个结构体。利用红黑树的特性来实现有序的插入、查找和删除操作,并且具有较好的平均和最坏情况下的时间复杂度。)将新元素插入到红黑树的适当位置,以保持树的有序性质。)使用红黑树的性质,通过比较函数在树中进行二分查找,查找操作的平均时间复杂度为。p1、p2,在 p1

2023-09-27 14:32:33 575

原创 再学C++ | STL库中可能存在的内存溢出与脏数据问题

是我们使用最频繁的STD容器之一。它具有广泛的应用,并且在性能方面表现出色。然而,其存在一种潜在问题,即。在使用下标访问元素时不会检查索引是否越界,因此很可能导致溢出错误的出现。这种错误被严格定义为一种内存的。的函数,其中向随机产生的索引中写入值,因为这里产生的索引不一定在 16 以内,所以会随机写入脏数据。,用来在内存中写入藏数据。然后紧跟着声明一个长度为 16 的全 0。首先在内存中声明一个长度为 16 的。经过查询发现STL中有在运行中检查。是否在范围内的代码,并通过。

2023-09-26 18:03:15 416

原创 算法分析与设计:10 大排序算法大汇总(Java)

算法分析与设计:10 大排序算法大汇总(Java)

2022-10-01 15:55:20 847 1

原创 互联网应用开发实践:需求分析与数据库设计

用户故事一般是产品经理初次描述给自己和开发人员看的,然后产品负责人要依据用户故事设计原型,原型在客户那里通过后,然后再在用户故事里面添加附件。用户故事不会一开始就很清晰,甚至可能不会有特专业术语。

2022-09-29 00:35:50 1391

原创 算法题:LeetCode (1094) 拼车【一题搞懂差分数组】

差分数组主要的适用场景是对原始数组进行频繁的区间增减操作,这个时候适用差分数组能够快速的完成,同时能够快速获得更新后的数组各个位置的值。

2022-09-25 13:52:14 633

原创 互联网应用开发实践:MySQL数据库部署与操作(Docker、SpringBoot)

互联网应用开发实践:使用Docker部署MySQL数据库,并完成SpringBoot链接服务器MySQL,然后打包Docker镜像上传到服务器。

2022-09-21 13:54:07 880

原创 后端技术栈:Docker容器应用

后端技术栈:Docker容器应用

2022-09-14 16:40:05 423

原创 BUG日志:宝塔CentOS安装Docker失败(2022.9.13)

宝塔面板 CentOS 7 软件商店安装 Docker 运行失败(2022.9.13 记录)

2022-09-14 10:53:19 3796 1

原创 前端技术栈:微信小程序使用got发送HTTP请求(封装模板)

在微信小程序发送 HTTP 请求的时候,会遇到这样一种情况——微信官方要求服务端口必须是过审的 HTTPS 请求。但是作为个人学习开发,申请一个 HTTPS 的端口成本太高,本篇就介绍一种使用微信小程序免费的云函数功能跳过 HTTPS 端口检验的方式。云函数1. 创建云函数首先在微信小程序中申请云开发,创建一个名为http的云函数。创建成功后入下图所示。2. 安装依赖包在云函数文件夹使用 npm 安装依赖包,本模板需要安装两个依赖包,分别为got包和form-data包。这里需要注意的是go

2022-03-21 22:36:53 2592 1

原创 程序人生:技术词汇规范表达

后端开发相关规范书写不合适拼写举例备注RESTfulRestful、RestFulREST=Representational State TransferSpringspringSpring MVCSpringMVC、SpringmvcSpring MVC中间有空格!Spring BootSpringboot、SpringBootSpring Boot中间有空格!Spring CloudSpringcloud、SpringCloudSpr.

2021-09-26 12:03:58 556

原创 数据结构:堆

  堆是一种图的树形结构,被用于实现“优先队列”(priority queues)。优先队列是一种数据结构,可以自由添加 数据,但取出数据时要从最小值 开始按顺序取出。在堆的树形结构中,各个顶点被称为“结点”(node),数据就存储在这些结点中。  这就是堆的示例。结点内的数字就是存储的数据。堆中的每个结点最多有两个子结点 。树的形状取决于数据的个数。另外,结点的排列顺序为从上到下,同一行里则为从左到右。    在堆中存储数据时必须遵守这样一条规则:子结点必定大于父结点 。因此,最小值 被存储在顶端的

2021-09-16 19:10:38 205

原创 系统架构设计:别错过出口——如何避免微服务的退化【摘录】

作者:Lars Gentsch,E-Post Development GmbH目 录合并新功能微服务究竟发生了什么改动新增微服务还是扩展已有微服务如何判断是否应该增加新的微服务结论  实际上,开发一个微服务并不太困难。但如何保证微服务最终不会退化成单体呢?下面通过一个例子说明,在什么情况下微服务会朝着错误的方向发展,以及我们可以采取什么措施来避免微服务的退化。  假设有一个用于客户注册的小型 Web 应用。几乎所有 Web 应用都会遇到类似的情况。例如客户需要再网店(Amazon、Otto .

2021-09-05 10:17:52 181

原创 系统架构设计:什么是微服务?

目 录微服务概述微服务定义微服务概述微服务 —— 一种实现软件模块化的方案。模块化并不是什么新概念。一直以来,我们都将大型系统划分成小模块,以便于软件的实现、理解以及后续开发。微服务是一种新的模块化方法,但“微服务”一词却没有明确的定义,因此本章就从该词的定义出发.阐述微服务与一般的单体部署(deployment monolith)之间的区别。微服务定义与单体部署不同的是,构成微服务的模块是以独立进程的形式运行的。这种方式源于 UNIX 思想,该思想可简述为如下三点:一个程序应该仅完成一

2021-09-04 10:53:32 633

原创 后端技术栈:优秀的项目代码是怎么分层的

阿里手册是怎么约定的阿里巴巴 Java 开发手册(https://kangroo.gitee.io/ajcg/#/)开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行 网关安全控制、流量控制等。终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染, JSP 渲染,移动端展示等。Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。Service 层:相对具体的业务逻辑服务

2021-08-31 15:37:53 785

转载 程序人生:我为什么要编程?

目 录编程的意义是什么,我又为什么要编程呢?这是一个时不时会浮现在我脑海中的问题,它来得并不频繁,但每次都伴随着我对自己职业生涯或人生自标的质疑而产生,令我感到些许困惑和不安。在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解笞疑惑的再一次产生。就这样一次又一次的循环在复,我似乎渐渐埋解了编程的意义……读《程序员的自我修养》(陈逸鹤)有感,感触至深之处,摘录于此,若有不当之处,联系博主即可删文。...

2021-08-23 00:12:24 325

原创 程序人生:如何成为一名优秀的全栈工程师

目 录1. 什么是全栈工程师2. 全栈工程师的价值2. 全栈工程师的技能栈1. 什么是全栈工程师  “全栈工程师” 一词,最早出现于 Facebook 工程师 Calos Bueno 的一篇文章 —— Full Stack。他把全栈工程师定义为对性能影响有着深入理解的技术通才。在 “拉钩” “100Offer” 等针对互联网人才的招聘网站上,全栈工程师更是一跃成为热门招聘职位,其薪酬水平也比一般的开发工程师职位要高出一截。那么,什么是全栈工程师,我们又应该如何定义一名全栈工程师呢?  百度百科对全

2021-08-20 00:17:37 1439

原创 程序人生:“写作”与“写代码”

这里写目录标题1. 写作很像写代码(1)写作和写代码都要遵循一定的逻辑规则(2)都是将细节组合成更美的东西(3)你需要能够看到全局(4)自我表达非常关键(5)考虑你的读者或用户(6)每个人都可以写作和学会写代码2. 写作和写代码又是不一样的(1)写作和写代码的目的不同(2)写作能够表达感情,而写代码不能前不久在网站中读到一篇文章,讲述的是写作与作曲的关系。对于大部分程序员来说,作曲似乎离我们比较遥远,可是写作却始终与我们的工作、生活紧密相连,比如在我们的工作中要编写各种文档、做项目计划,而在生活中,我们

2021-08-18 22:23:21 463

原创 后端技术栈:从 Spring 到 Spring Boot

Spring 相当于一个容器、一个世界、一个宇宙,所有的对象都是通过这个容器或对象来提供的。IOC 控制翻转控制翻转 ≈ 依赖注入,控制反转 (Inversion of Control,缩写为 IOC ),是面向对象编程中的一种设计原则,可以用来减低计算机代码 之间的耦合度。 其中最常见的方式叫做“依赖注入”(Dependency Injection,简称 DI ),还有一种方式叫“依赖查找”(Dependency Lookup)。AOP 面向切面...

2021-07-29 11:57:33 286

原创 后端技术栈:Maven 工具

一个项目管理工具Apache Maven 是一个软件项目管理和综合工具。基于项目对象模型(POM,Project Object Model)的概念,Maven 可以从中心信息块管理项目的构建、报告和文档。官方手册:http://maven.apache.org/guides/安装注意配置镜像<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>ali

2021-07-28 11:29:26 207

原创 后端技术栈:ORM 对象关系映射

定义ORM(Object-relational mapping),对象关系映射,是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。ORM 提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得 ORM 中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。优缺点优点开发效率更高数据访问更抽象、轻便支持面向对象封装缺点降低程序的执行效率思维固定化从系统结构上来看,采用 ORM 的系统一般都是多层系统,系统的层次多了,效率就

2021-07-27 14:11:07 304

原创 前端技术栈:将微信小程序代码自动转换成 Vue 代码

前段时间做了一个微信小程序,使用了云开发,但是云开发对业务逻辑的限制实在是太多了,因此想将其重构成 uni-app。最近将 wxml 改成 Vue 实在让人头大,因此“偷懒”使用 Python 写了一些正则表达式进行自动替换。代码直接上代码 →import reres = [] # 转换结果# 使用正则表达式替换 wxml 中的内容def convert(line): res_line = line # 匹配 bindchange="bindPickerClassTyp

2021-07-27 09:53:43 4765 2

原创 前端技术栈:后台管理端UI框架

链接汇总X-admin(http://x.xuebingsi.com/)若依管理系统(http://www.ruoyi.vip/)人人开源(https://www.renren.io/guide)el-admin(https://el-admin.vip/)el-admin

2021-07-22 19:35:39 1532

原创 前端技术栈:uni-app 异步渲染问题

uni-app 在使用 onLoad() 直接发送请求时,会发生产生渲染异步的问题,即页面已经渲染好了,但是请求过来的数据还没完成赋值。问题代码如下:会产生异步问题的 index.vue 代码:<template> <view class="content"> <view v-for="(item, index) in userList"> <text>{{item.name}} - {{item.age}} </text> &

2021-07-22 16:00:48 6231 2

原创 前端技术栈:Mock.js 测试工具

定义Mock 是在测试过程中,对于一些不容易构造/获取的对象,创建一个 Mock 对象来模拟对象的行为。一般多用于前后端分离的开发环境中,前端工程师用来模拟后端的 API 接口进行数据传递的工具。Mock.js官网:http://mockjs.com/前后端分离:让前端攻城师独立于后端进行开发;增加单元测试的真实性:通过随机数据,模拟各种场景;开发无侵入:不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据;用法简单:符合直觉的接口;数据类型丰富:支持生成随机的文本、数字、

2021-07-22 00:38:01 1101

原创 前端技术栈:RESTful 架构

认识 RESTfulREST 不是 “rest” 这个单词,而是几个单词缩写。REST – REpresentational State Transfer,是一种网络应用程序的设计风格和开发方式,基于 HTTP,可以使用 XML 格式定义或 JSON 格式定义。REST 描述的是在网络中 client 和 server 的一种交互形式;REST 本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口);Server 提供的RESTful API中,URL中只使用名词来指定资源,

2021-07-21 22:00:46 759

原创 前端技术栈:HTTP 状态码大全

原文链接:HTTP 状态码大全

2021-07-18 10:21:55 129

原创 前端技术栈:Vue 双向绑定

MVVM模式说到 Vue 的双向绑定首先联系到的就是 MVVM(Model-View-ViewModel)模式了,如下图所示,当视图发生改变的时候传递给 VM,再让数据得到更新,当数据发生改变的时候传给VM,使得试图发生改变;MVVM 模式是通过以下三个核心组件组成,每个都有它自己独特的角色:M: Model - 包含了业务和验证逻辑的数据模型;V: View - 定义屏幕中View的结构,布局和外观;VM: ViewModel - 扮演“View”和“Model”之间的使者,帮忙处理 View

2021-07-18 00:21:36 4471 12

原创 Java:Spring 数据库操作

Spring 集成 JDBCSpring 提供了一个工具类 JdbcTemple,该类对 JDBC 的操作进行了轻量级别的封装。JdbcTemple 简介:封装了操作数据库的各种方法,该类包含一个 DataSource 属性(数据源),只有在初始化数据源的情况下才能调用 JdbcTemple。步骤:导入集成包、连接池包;初始化连接池数据源对象;初始化 JdbcTemple 对象;调用 JdbcTemple 的 API 接口完成数据库操作。优点:直接使用 SQL 语句操作数据库,效率

2021-07-14 22:34:48 641

原创 Java:SpringMVC 基础 &“登录”小项目

目 录MVC设计模式Spring MVCSpringMVC 的执行流程Spring MVC优点MVC项目——实现登录1. 创建Web应用并引入JAR包2. Spring MVC配置2.1 定义DispatcherServlet2.2 创建Spring MVC配置文件3. 创建Controller4. 创建 View5. 部署运行MVC设计模式MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和

2021-07-14 22:13:21 421

原创 Python:DataFrame 处理数据的常用函数

统计重复次数df['列名'].value_counts()统计不同的值df['列名'].unique()数值化# 数据预处理,对分类进行 id 转换,cat_id: 0——fake;1——ncw;2——realdf['cat_id'] = df['cat'].factorize()[0]cat_id_df = df[['cat', 'cat_id']].drop_duplicates().sort_values('cat_id').reset_index(drop=True)# cat

2021-07-09 09:44:15 664

原创 C/C++:struct 和 class 的区别

汇总struct 是值类型,class 是对象类型struct 默认的访问权限是 public,而class 默认的访问权限是 private.struct 总是有默认的构造函数,即使是重载默认构造函数仍然会保留。这是因为 struct 的构造函数是由编译器自动生成的,但是如果重载构造函数,必需对 struct 中的变量全部初始化。并且 struct 的用途是那些描述轻量级的对象,例如 Line,Point 等,并且效率比较高。class 在没有重载构造函数时有默认的无参数构造函数,但是一被重载些默

2021-07-08 09:03:34 336

原创 Python:生成随机偏态分布

生成偏随机偏态分布的核心就是伽马函数np.random.gamma()伽玛分布(Gamma Distribution)是统计学的一种连续概率函数,是概率统计中一种非常重要的分布。“指数分布”和“卡方分布”都是伽马分布的特例。import numpy as npimport matplotlib.pyplot as pltshape, scale = 2., 3.s = np.random.gamma(shape, scale, 2000) / 20 + 0.001 # 生成2000个随

2021-04-11 14:47:47 5067 3

原创 Java:线程详解

目录进程与线程Java中的线程Java线程:创建与启动定义线程进程与线程进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间。进程不依赖于线程而独立存在,一个进程中可以启动多个线程。比如在 Windows 系统中,一个运行的 exe 就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如 Java.exe 进程中可以运行很多线程。线程总是属于某个进程,线程没有自己的虚拟地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。“同时”执行是人的.

2021-03-08 20:47:54 216

原创 数据结构:堆栈的区别

文章目录前言数据结构角度栈就像装数据的细长桶堆像一棵倒过来的树内存分配中的栈和堆1.申请方式和回收方式不同2.申请后系统的响应不同3.申请效率的比较4.申请大小的限制5.堆和栈中的存储内容前言使用栈就像我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,它的好处是快捷,但是自由度小。使用堆就像是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。数据结构角度栈就像装数据的细长桶栈是一种具有后进先出性.

2021-03-08 17:41:58 5755

原创 MATLAB:快速傅里叶变换(FFT)

快速傅里叶变换介绍傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的余弦(或正弦)波信号的无限叠加。FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。那其在实际应用中,有哪些用途呢?有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征(频率,幅值,初相位);FFT可以将一个信号的频谱提取出来,进行频谱分析,为后续滤波准备;通过对一个系统的输入信号和输出信号进行快速傅里叶变换后,两者进行对比,对系统可以有一个初步认识。假设采样频率 F

2021-03-02 21:39:03 11450 3

原创 实习面试题总结

阿里巴巴的实习面试题比较基础,但是想回答的精彩还是需要提前准备一下的,下面的问题都是博主亲身试水换来的。进程和线程有什么区别?功能不同进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。工作原理不同在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,.

2021-03-02 21:02:15 1229

原创 算法分析与设计:棋盘覆盖问题(分治法)

棋盘覆盖问题在一个 2k×2k2^{k} \times 2^{k}2k×2k 个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为特殊方格。显然,特殊方格在棋盘上出现的位置有 4k4^{k}4k 种情形。下图是 k=2k=2k=2 时 16 个特殊棋盘中的一个。在棋盘覆盖问题中,要用图示的 4 种不同形态的 LLL 型骨牌覆盖一个给定的特殊棋盘上除特殊方格以外的所有方格,且任何 2 个 L\mathrm{L}L 型骨牌不得重叠覆盖。易知,在任何一个 2k×2k2^{k} \times 2^{

2021-01-10 19:54:27 25855 4

原创 算法分析与设计:归并排序

归并(合并)排序(Merge Sort)基于分治策略。核心思想:就是把数组分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排序好的子集合合并。递归法// 归并排序递归框架int tmpArray[];void MergeSort(int array[], int left, int right){ if (left < right) // 至少两个元素 { int i = (left + right) / 2; // 取中点

2021-01-10 19:12:48 442

原创 算法分析与设计:快速排序

快速排序(Quick Sort)基于分治策略。核心思想:递归地将待排数组分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。步骤:分解:以 a[start]a[start]a[start] 为基准元素,将 a[start,end]a[start,end]a[start,end] 划分成3段(a[start,q−1],a[q],a[q+1,end]a[start,q-1], a[q],a[q+1,end]a[start,q−

2021-01-10 18:02:40 1019 2

CalculationTest.rar

这是一个安卓端的口算题卡项目源代码,可以实现以下功能 ①加减乘除四则运算; ②隐藏导航栏和虚拟按键; ③设置计算难度; ④保存和清空最高纪录; ⑤计算错误时出现正确答案提示;

2020-05-11

Window.zip

这个代码模仿 Windows 应用程序 SDK 的封装模式进行编写,通过C语言实现面向对象开发和完全封装。

2020-03-17

空空如也

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

TA关注的人

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