- 博客(79)
- 资源 (2)
- 收藏
- 关注
原创 什么是消息队列
消息队列是一种通信机制,用于在不同的应用程序或组件之间传递消息。它允许应用程序之间异步地发送和接收消息,而无需直接依赖彼此的可用性或性能。消息队列通常用于解耦不同组件,提高系统的可伸缩性和可维护性,以及处理异步任务和事件驱动的架构。以下是一个简单的消息队列示例:假设有一个电子商务网站,它需要处理来自不同来源的订单和付款通知。为了确保这些任务可以异步处理并且不会阻塞网站的核心功能,可以使用消息队列来协调这些任务。
2023-11-02 19:33:38
237
原创 Docker 是什么
云计算架构(Cloud Computing Architecture)是指用于构建和实现云计算服务的系统架构和模型。它包括了一系列组件、模块、服务以及它们之间的关系,以满足云计算提供的基础设施、平台和软件服务的需求。云计算架构的目标是提供可伸缩、高可用、安全、弹性和可管理的云服务,以满足各种不同类型的应用和用户需求。物理层:这一层包括数据中心、服务器、网络设备等硬件基础设施,它们提供了计算、存储和网络资源。物理层通常由云服务提供商管理和维护。虚拟化层。
2023-10-31 18:00:42
747
原创 ES Module 认识
ES Modules 使用静态模块定义,这意味着模块的结构在代码解析阶段就可以确定,不需要运行时的加载和解析过程。这有助于提高性能和可预测性。
2023-10-29 14:49:04
1704
原创 Node模块化开发
JavaScript 的模块化是一种将代码组织成独立、可重用的模块单元的开发方法。模块化开发有助于提高代码的可维护性、可扩展性和可重用性,以及减少命名冲突和全局作用域中的变量污染问题。JavaScript 的模块化开发可以通过多种方式实现,其中两个主要的标准是 CommonJS 和 ES6 模块。CommonJS 是一种模块化系统,最初是为服务器端 JavaScript 开发设计的,如 Node.js。
2023-10-29 11:19:42
184
原创 毕业设计之外卖管理系统(1)-分页查询
解决方法 将id转化为json的时候 Long类型转化为 string 类型/*** 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象* 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]* 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]*/super();//收到未知属性时不报异常//反序列化时,属性不存在的兼容处理//注册功能模块 例如,可以添加自定义序列化器和反序列化器。
2023-10-28 11:09:57
79
原创 Docker 入门
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。容器与虚拟机谈到容器,就不得不将它与虚拟机进行对比,因为两者都是为应用提供封装和隔离。容器由两部分组成:(1)应用程序本身;(2)依赖:比如应用程序需要的库或其他软件容器在Host操作系统的用户空间中运行,与操作系统的其他进程隔离。这一点显著区别于的虚拟机。
2023-10-27 21:32:31
314
原创 如何设计一个高效可用的数据库
第一范式:数据表中所有字段都是不可拆分的基本数据项第二范式:在满足第一范式的基础上,数据表中所有非主键字段,必须完全依赖全部主键字段,不能存在部分依赖主键字段的字段。第三范式:在满足第二范式的基础上,数据表中不能存在可以被其他非主键字段派生出来的字段,或者说,不能存在依赖于非主键字段的字段。
2023-10-27 16:37:25
152
原创 大数据知识扫盲
MapReduce是一种分布式计算框架,最初由Google开发,用于处理大规模数据集的批处理任务。其核心思想是将数据划分为小的块,然后并行处理这些块,最后将结果合并。
2023-10-25 21:41:53
293
原创 Python装饰器扫盲
my_greet 函数 被 my_decorator 函数 增强了,本来my_greet 函数只会输出 “hello 我是海贼王路飞”,经过my_decorator 的增强后,多了一句 wrapper of decorator。装饰器在用户登录验证中的一个常见用法是,它可以用来检查用户是否已登录,以确保只有已登录的用户才能访问某些受保护的页面或执行某些操作。这里的@,我们称之为语法糖,@my_decorator就相当于前面的greet=my_decorator(greet)语句,只不过更加简洁。
2023-10-24 21:43:38
110
原创 毕业设计之外卖管理系统(1)-开发环境搭建
启动MySQL服务:sudo /usr/local/MySQL/support-files/mysql.server start停止MySQL服务:sudo /usr/local/mysql/support-files/mysql.server stop重启MySQL服务:sudo /usr/local/mysql/support-files/mysql.server restart。
2023-10-21 19:41:44
126
原创 Android FloatingActionButton 使用神坑记录
加上下面属性,注意是app:tint,不是android:tint .一开始我写成了android:tint,浪费半天时间。加上下面的属性,然后大小跟你的控件大小一致。必须加上下面这个属性才是圆形。
2023-10-19 13:14:34
449
1
原创 Flask开发网页步骤详解
注意在具体的应用中,需要根据文件名的编码和需要的展示方式,选择合适的字符编码进行处理,以确保文件名的正确性和兼容性。视图函数是处理用户请求的函数,它接收并处理用户发送的请求,并返回相应的响应结果。获取表单数据时,要确保请求的方法为POST,并且表单中的字段名称与代码中使用的名称一致。通过路由,你可以将不同的URL路径映射到不同的视图函数上,从而实现对不同页面或功能的处理。通过使用HTML表单和Flask的路由和视图函数,你可以实现与用户的交互,并通过POST请求将数据发送到服务器进行处理。
2023-06-28 20:56:45
2078
2
原创 Python数据分析之Pandas核心使用进阶
透视表中的行表示’A’列的唯一值,列表示’B’列的唯一值,单元格中的值表示’C’列在对应’A’和’B’的组合上的聚合结果(这里使用了求和操作)。Pandas的列自动对齐是指在进行DataFrame操作(例如计算、合并、拼接等)时,Pandas会根据列的名称自动对齐数据,以确保数据在正确的位置进行操作。这样会将原来的行索引恢复为默认的整数索引,并将原来的行索引作为新的列添加到DataFrame中。这样会将原来的行索引恢复为默认的整数索引,并将原来的行索引作为新的列添加到DataFrame中。
2023-06-27 21:56:57
2372
原创 Python数据分析之从零学Pandas基础操作
Pandas是一个在Python编程语言中广泛使用的开源数据分析和数据处理库。它提供了高效、灵活和易于使用的数据结构,特别适用于处理结构化和标签化数据。Pandas的主要数据结构是DataFrame和Series。DataFrame是一个类似于电子表格或SQL表的二维数据结构,可以存储和处理具有不同数据类型的列。Series是一维标签化数组,类似于一列数据。使用这些数据结构,Pandas提供了许多功能强大的方法和函数,用于数据清洗、数据转换、数据筛选、数据分组、数据合并等数据操作任务。
2023-06-27 09:46:37
1251
原创 Python学习之NumPy(二)
皮尔逊相关系数衡量的是两个变量之间的线性关系,当变量之间的关系不是线性的时候,皮尔逊相关系数可能不适用。该函数接受一个数组作为输入,并返回一个相关系数矩阵,其中矩阵的(i, j)位置的值表示第i个数组和第j个数组之间的相关系数。该函数返回一个布尔类型的数组,与输入数组形状相同,对应位置为True表示该位置上的值是缺失值(NaN),为False表示该位置上的值不是缺失值。对于多维数组,可以根据需要选择合适的轴进行复制。相关系数矩阵是一个2x2的矩阵,对角线上的值都是1,表示每个数组与自身的相关系数为1。
2023-06-26 21:44:35
1170
原创 Python 学习之NumPy(一)
通过一个案例来比较分析numpy和python的数值计算性能通过上面的案例 可以看出 NumPy 的数值计算能力比python自带的要快一个数量级,所以NumPy 值得我们学习它。3.NumPy筛选使用介绍筛选出上面nb数组中能被3整除的所有数筛选出数组中小于9的所有数提取出数组中所有的奇数数组中所有的奇数替换为-1二维数组交换2列生成数值5—10,shape 为(3,5)的二维随机浮点数NumPy数组维度等进阶操作NumPy做矩阵乘法实现的两种方法NumPy求平均值,
2023-06-26 16:29:34
1275
原创 Android自定义View合集
先画出外面的蓝色的外圆画出里面的红色的内圆画出中间的文字分析效果确定自定义属性,编写attr.xml 文件在布局中使用在自定义View中获取自定义属性开始具体逻辑画View。
2023-06-25 23:27:47
240
原创 Python进阶知识(四)
所以,在 Python 的垃圾 回收实现中,mark-sweep 使用双向链表维护了一个数据结构,并且只考虑容器类的对象(只 有容器类对象才有可能产生循环引用)。通常,新创建的对象会被放入第0代,随着时间的推移,存活下来的对象会被转移到更高的代。而每一代启动自动垃圾回收的阈值,则是可以单独指定 的。Python的计数引用是一种基于引用计数的内存管理技术,通过追踪对象的引用数量来决定何时释放对象的内存空间。事实上,分代收集基于的思想是,新生的对象更有可能被垃圾回收,而存活更久的对象也有更 高的概率继续存活。
2023-06-24 18:58:54
649
原创 Python进阶知识(三)
这些任务通常涉及与外部资源的交互,需要等待IO操作完成,而任务本身在等待的过程中并不会占用大量的 CPU 资源。协程在单线程中运行,并使用事件循环调度任务的执行,因此适合处理 IO 密集型任务,而不是 CPU 密集型任务。协程允许在执行过程中暂停和恢复函数的执行,并在需要时交替执行多个任务,以实现更高效的异步编程。Python 中的列表推导式(List Comprehension)是一种简洁而强大的语法,用于创建新的列表,通常基于现有的列表或其他可迭代对象进行转换、过滤或组合操作。
2023-06-23 13:52:47
417
原创 Python进阶知识(二)
在实际工作中,如果你怀疑某些函数的耗时过长,导致整 个系统的 latency(延迟)增加,所以想在线上测试某些函数的执行时间,那么,装饰器就是 一种很常用的手段。通过嵌套装饰器,可以在函数或类上应用多个装饰器,从而按照特定的顺序为其添加不同的功能。需要注意的是,装饰器的嵌套可以有多层,你可以根据需要在函数或类上应用多个装饰器。通过装饰器的嵌套,你可以灵活地组合和应用多个装饰器,以满足特定的需求,并在不修改原始代码的情况下为函数或类添加各种功能。可以看到,它们的定义与之前的例子中的装饰器函数相同。
2023-06-22 19:31:02
775
1
原创 Python进阶知识(一)
最简单的模块化方式,你可以把函数、类、常量拆分到不同的文件,把它们放在同一个文 件夹,然后使用 from your_file import function_name, class_name 的方式调 用。之后,这些函数和类就可以在文件内直接使用了。看看上面的示例代码,get_sum() 函数定义在 utils.py,Encoder 和 Decoder 类则在 class_utils.py,我们在 main 函数直接调用 from import ,就可以将我们需要的东西 import 过来。
2023-06-21 23:15:30
1505
原创 Python 基础语法(二)
函数就是为了实现某一功能的代码段,只要写好以后,就可以重复利用。Python是一种功能强大的编程语言,支持函数的定义和使用。函数是一段可重用的代码块,用于执行特定的任务。这将输出函数返回的值。
2023-06-19 22:41:23
751
原创 Python 基础语法(一)
在Python中,列表(list)和元组(tuple)都是用于存储多个对象的数据结构。它们之间有一些重要的区别,下面是一些关于列表和元组的基本知识:需要注意的是,尽管元组是不可变的,但如果元组中的元素是可变的对象(例如列表),那么可以修改可变对象中的元素。综上所述,列表适用于需要频繁修改数据的场景,而元组适用于那些不希望数据被修改的场景,例如表示一组常量值或者在函数返回多个值时使用元组。选择列表或元组取决于你的需求和数据的特性。
2023-06-18 22:59:00
528
原创 vue 轮播图的实现方法
以上是一个简单的Vue轮播图实现的示例。注意:上面的示例使用了默认的样式和配置。你可以根据需要自定义样式和配置,例如设置轮播图的宽度、高度、自动播放等。注意:上面的示例使用了默认的样式和配置。你可以根据需要自定义样式和配置,例如设置轮播图的宽度、高度、动画效果等。:在你的 Vue 项目中,通过 npm 或 yarn 安装。:在你的 Vue 项目中,通过 npm 或 yarn 安装。中定义了正确的图片路径数组,并根据需要自定义样式和配置。中定义了正确的图片路径数组,并根据需要自定义样式和配置。
2023-06-18 00:37:09
6491
原创 线程间同步
两个线程同时跑,最后的结果是4999,并不是我们想象中的10000。这是为什么呢?多个线程访问和修改了全局变量count,而这个变量没有被任何同步机制保护。在并发执行的情况下,多个线程可能会同时读取和修改count变量的值,从而导致竞态条件的发生。具体来说,当两个线程同时读取count变量的值并保存到本地变量中时,它们得到的可能是相同的值。接着两个线程分别将本地变量加1,并写回到count变量中。这样就会出现一个线程的修改被覆盖的情况,导致最终结果小于预期值。
2023-06-17 23:05:38
280
原创 进程间通信 + 消息队列
每个进程有各自不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1吧数据从用户空间考到内核缓冲区,进程2再从内核缓冲区吧数据读走,内核提供的这种机制成为进程间通信。
2023-06-16 23:00:22
893
原创 进程描述+PCB+fork用法介绍
他会给另一个进程去托管。我们再将程序改动一下,打印一下,各个进程的pid,来看看最后作为孤儿进程的child process 被哪个进程托管了。fork的作用是根据一个现有的进程辅助出一个新进程,原来的进程称为父进程,新进程称为子进程。系统中同时运行着很多的进程,这些进程都是从最初只有一个进程开始一个一个复制出来的。上面程序,当pid == 0 时,就是子进程执行逻辑,不等于0的时候就是父进程的代码执行逻辑。上面的结果可以看出 后面的孤儿进程 被 pid 为 1的系统的第一个进程给接管了。
2023-06-15 22:33:37
353
原创 【每日一识】程序的运行
除此之外,可执行文件中还有一个叫做program header table 的section (段头表),段头表中记录的是如何将可执行文件加载到内存的相关信息,包括可执行文件中要加载到内存中的段,入口地址等信息。而在一个可执行文件中,加载器要加载程序到内存,要依赖段头表所提供的信息,因此段头表是必须的。可执行文件的文件头提供了文件类型,运行平台,程序的入口地址等基本信息,加载器在家在程序之前会首先根据文件头的信息做一些判断,如果发现程序的运行平台和当前的环境不符,则会报出错处理。
2023-06-02 13:46:19
83
原创 可执行文件的装载与进程
可执行文件只有被装载到内存以后才能被CPU执行。早期的程序装载十分简陋,装载的基本过程就是把程序从磁盘读取到内存的某个位置。随着硬件MMU的诞生,多进程,多用户,虚拟存储的操作系统出现以后,可执行文件的装载过程变得非常复杂...
2022-07-01 12:15:11
719
IEC-62443-4-1安全标准流程.pdf
2024-11-21
Android MP3 视频转换器
2023-06-28
IOS 裁剪图片 封装 简单易用
2023-06-23
IOS 相机拍摄 文档 实时寻边
2023-06-23
IOS 将图片转化为PDF
2023-06-23
选取多个视频,按选取视频模板进行各种样式组合,最终生成拼接后的mp4视频格式
2023-06-22
IOS 音视频 ffmpeg 录音并播放
2023-06-22
IOS之弹窗 - Swift4.2/Objective-C版本(Swift、Objective-C版本别分实现了不同的功能!
2023-06-21
iOS和macOS上将NSAttributedString转换为.docx Word文件
2023-06-21
IOS 人脸检测 自动对焦 功能强大的相机应用
2023-06-21
基于javaweb的大学生求职就业系统源码
2023-06-20
IT编程爱好博客模板后台源码
2023-06-20
Android开发 闹钟项目
2023-06-19
小程序外卖点餐项目带bmob后端.zip
2023-06-19
javaEE-Spring-sturst2-MySql基于java新闻发布及管理系统(源码+数据库sql齐全).zip
2023-06-18
vue 轮播图的不同实现方法和代码
2023-06-18
最全MySQL面试60题和答案
2023-06-16
Vue 面试题 带有答案 pdf 好看
2023-06-16
适合程序员的简历模板,可以直接修改
2023-06-16
Python基于Django图书管理系统
2023-06-15
大学生心理健康咨询管理系统
2023-06-15
学生会智慧督察管理系统的设计与实现
2023-06-15
停车场管理系统(java)
2016-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人