- 博客(41)
- 收藏
- 关注
原创 云服务器安装redis
第一步:上传redis压缩安装包到服务器可以在官网上下载,记得要下载.tar.gz结尾了,这是在Linux上进行安装的第二步:将压缩安装包解压第三步:进入安装包,编译redis:make第四步:安装redis: make install第五步:根据需要修改redis的配置文件,redis.conf 下面是对配置文件中关键参数的说明①bind: 127.0.0.1(注释掉):bind指令用于设置Redis服务器监听的IP地址。当bind被设置为。
2025-03-13 13:33:49
667
原创 Java并发编程:从基础到实践
Java并发编程是提高系统性能的重要手段,但也伴随着复杂性。通过掌握线程、同步机制、线程间通信以及并发工具类,你可以编写出高效且安全的并发程序。希望本文能帮助你更好地理解Java并发编程的核心概念和实践技巧!
2025-02-12 19:57:19
505
原创 银行家算法:避免死锁的资源分配策略
银行家算法是一种死锁避免算法,通过模拟资源分配过程,判断系统是否处于安全状态,从而决定是否分配资源。在分配资源之前,检查分配后系统是否仍然处于安全状态,如果是,则分配资源;否则,拒绝分配。算法名称来源于银行家的借贷行为:银行家在放贷时需要确保手头有足够的资金满足所有客户的提款需求,避免资金链断裂。银行家算法是一种经典的死锁避免算法,通过模拟资源分配过程,确保系统始终处于安全状态。尽管其实用性受到一定限制,但其思想对理解资源分配和死锁问题具有重要意义。
2025-02-12 19:51:35
1035
原创 任务调度算法
不同的调度算法适用于不同的场景,选择调度算法时需要综合考虑系统的目标(如响应时间、吞吐量、公平性等)以及任务的特点(如长任务、短任务、实时任务等)。现代操作系统通常采用多种调度算法的组合,以适应多样化的任务需求。
2025-02-12 19:48:31
861
原创 一、lambda表达式处理stream操作
通过stream()方法创建流,再使用collect(Collectors.toSet())将流中的元素收集到Set中,set的特性会自动去掉重复元素。//Person::getName是键 p->p是值 转换为map集合键值对的形式。reduce是将流中的元素组合成一个单个的值,并通过指定的二元操作符来不断地将元素进行合并和积累。//分组是流里面的groupingBy然后里面是根据年龄分的组。把map转为list,对键值对进行统一的处理,通过entry进行了统一的处理。//map转为list集合。
2025-02-07 23:41:35
609
原创 基于python的豆瓣电影TOP250-可视化数据分析平台
首先爬取豆瓣电影TOP250的电影数据存储到数据库中,然后通过echarts图进行可视化展示,下面是图片。电影评价人数TOP20。
2025-02-07 17:53:56
225
2
原创 128陷阱
在上面的代码运行中发现当a和b是127的时候输出是true,当a和b是128的时候输出的是false,这里就涉及到了128陷阱二、128陷阱详解整数缓存机制: Java 对于值在 -128 到 127 之间的Integer对象会自动缓存。这意味着如果你使用自动装箱创建了一个Integer对象,并且该值在 -128 到 127 之间,Java 会使用相同的实例。他们指向的是同一处地址超出缓存范围的对象: 对于超出 -128 到 127 范围的值,Integer对象不会被缓存,每次都会创建新的对象。
2025-02-06 22:57:15
290
原创 数据结构-八大排序
快速排序:(是经常用的一种排序方式)第一步,假设将待排序数组当中的第一个数字作为基准数,把35作为基准数,第二步,定义i和j游标,分别指向待排序数组的第一位和最后一位。第五步,判断i和j游标是否相遇 5.1未相遇,i和j指向的值进行交换,然后继续进行3 4 5步 5.2当i和j游标相遇,相遇位置的数和基准数进行位置交换,现在的数中,前面的一定比基准数小后面的一定比基准数大。插入排序过程中,如果后面的数据比较小,前边的数据比较大,那么就可能会导致小数据向前移动的次数比较多,进而将整个算法的效率降低。
2025-01-16 12:15:07
240
原创 Java内存图
将来面试要考内存分成了五大区:方法区、栈、堆、计数器、本地方法栈,意思就是将整个大的数组分为了五大区,不管什么语言到内存中就变成了C语言,计算机只能识别C语言,Java虽然转成了C但是操作系统还是不认识,最后必须换成操作系统属性的语言,利用本地方法栈进行翻译,只有这个时候才能运行,语言一样的程序不一定能调用,程序的运行就是操作系统的调用,操作系统最终在硬件运行,任何程序在电脑的运行,最终体现在硬件上,操作系统内核提供方法,只有翻译成操作系统内核的方法,才能操作硬件,驱动才能认识。
2025-01-16 12:11:17
672
1
原创 Docker(属于C/S架构软件)属于app的东西
一、简介与概述 容器就相当于是一个平台,里面打包了所有的东西,是一个工具包,使其运行环境能够做到一层封装,到处运行 跨平台服务器,可以一键部署 就是一个完整的centos系统,只不过更轻量,一个虚拟化轻量级linux服务器,可以解决我们在开发环境中运行配置问题 二、为什么使用 docker:虚拟化容器技术 docker主要解决开发环境配置迁移的问题 你的项目到任意到其他的无环境的电脑上,docker会自动安装环境 docker最终解决了运行中环境配置的问题,自动配置好了,不用
2025-01-16 12:09:22
899
原创 Web开发
在resources创建包来实现, 一、springboot对静态资源的映射规则 这些自动装配先在pom导依赖,然后springboot的autoconfiguration就自动配置,在外部资源中找xxxproperties就是该资源的自动配置文件 有css html文件夹 springboot对静态资源也做了映射的规则 :实现了资源的 加载 做了一些整合 1.所有的/webjars/**,都去classpath:/META-INF/resouces/webjar
2025-01-16 12:08:05
926
原创 springmvc是表现层 和客户端进行数据的交互 底层是servlet
springmvc框架 一、三层框架 持久层:jdbc、mybatis、jdbctemplet springmvc代替了之前的servlet M:model javabean(实体类) V:view(呈现给前端的页面) jsp C:controller(前端的登录) 二、springmvc的概述 基于Java实现的mvc设计模型 三、流程 因为涉及到和前端页面的交互了,所以写的是javaweb项目 1.创建maven的web项目,导入开发的坐标 2.编写ind
2025-01-16 12:07:26
603
原创 springboot整合mvc
一、springboot自动管理springmvc组件 springmvc是组件化的 所有的请求发给dispatcherservlet,分给处理器映射器,然后给处理器 controller->service->dao->数据库,数据库查到之后返回到dispatchservlet,然后发给视图解析器,视图解析器带着数据返回视图 spring boot自动管理这些组件化的东西,再springboot项目搭建的时候,没有配置mvc,但是@contoller认识,因为是spring,扫描器被
2025-01-16 12:06:33
440
原创 Spring IOC
一、spring spring的核心是控制反转(ioc)和面向切面编程(aop),spring是一个分层的一站式轻量级开源框架 ioc讲将我们之前的new的事情交给ioc来管理 aop:jdk的动态代理 优点: 1.方便解耦,简化开发,spring是一个大工厂,将所有对象创建和依赖关系的维护交给spring管理 ioc的作用 2.aop面向切面编程,对程序进行权限拦截、运行监控 3.声明事务的支持,只需要通过配置就可以完成对事务的管理,无需手动编程 4.方便程序的测试,spring对ju
2025-01-16 12:05:00
791
原创 Maven项目管理工具
一、什么是maven 跨平台 不需要考虑版本的问题 进行依赖管理 以及项目信息管理 说白了就是一个架子来管理项目 maven依赖自动下载,统一依赖管理 二、什么是依赖管理 对于第三方依赖包的管理,可以连接互联网下载项目所需要的第三方jar包 但是有了maven之后就不用自己联网下载了,maven会自动在网上下载 三、传统的加载依赖 /// maven的加载依赖 maven只要编写pom文件然后引入坐标即可就配置好了 传统的需要这个官网那个官网找jar包,然后再本地的文件包中
2025-01-16 12:02:37
532
原创 MVCC(多版本并发控制)
问题:如果有人从数据库中读数据的同时,有另外的人写入数据,有可能读数据的人会看到【半写】或者不一致的数据。解决:1)通过加锁,让所有的读者等待写者完成工作,但是效率会非常的差2)利用mvcc,mvcc使用了一种不同的手段,每个连接到数据库的读者,在某个瞬间看到的是数据库的一个快照,写着写操作造成的变化在写操作完成之前(数据库事务提交之前)对于其他的读者来说是不可见的。
2025-01-16 12:00:43
389
原创 git版本控制
一、gitignore文件 屏蔽文件,有一些文件没有必要上传到远程仓库 git add.提交的是新文件和被修改的文件,不包括被删除的文件 git add -A 提交所有的变化 git add -U 提交被修改和被删除的文件,不包括新文件 删除不进工作区,直接进了暂存区, 新建或者修改都会到了工作区 为什么用add.不用add-A 因为删除本身直接进入的是暂存区,所以只需要保证把修改和新增弄到暂存区就行,那就是直接add.就可以 创建一个名为.gitignore的文件,列出要忽略的文件
2025-01-16 11:59:07
971
原创 Java反射
一、反射的定义 在运行的过程中,对于任意的一个类,都能知道这个类的所有的方法和属性 二、Class类 Class就是类, 类:具有相同属性或者行为的一类事物 (类都有属性 构造器 方法 都能调用方法) getclass返回的是一个class对象。 当一个类被加载的时候,会产生这个类的类对象,通过类对象获取类的方法属性构造器 三、Class类中要掌握的方法 获取类对象的三种方式 forname .class getclass() 1.通过class.forName("全路径") 获取类对
2025-01-16 11:57:21
263
原创 XML详细记录
xml文档约束是用另一个文件来约束xml文档的结构,例如要求xml文档的根元素必须是<students>,在<students>元素下可以包含0~n个<student>元素,每个<student>元素必须有一个number属性,而且还要有三个子元素,分别为<name>、<age>、<sex>,这三个子元素的内容必须为文本内容,而不能是子元素。通常应用程序都会要求xml文件的结构是固定的,以满足自己的需求,这就说明,不同的应用程序要求自己的xml文档必须符合一定的要求。我们要学习的还是1.0版本!
2025-01-16 00:00:21
788
原创 Nginx快速入门
1.Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2.其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
2025-01-15 23:51:15
674
原创 Hadoop伪分布式部署流程
此处实验中基于分布式部署了Hadoop,在配置文件中由于拼写出现错误,在格式化的时候出现了错误,此时需要删除/export/data/hadoop-wfb-3.3.4,因为在格式化的时候这个会自动生成,所以修改好配置之后需要删除这个目录之后再格式化,不然会出现问题。
2025-01-15 21:19:23
241
原创 若依定时任务(两种方式)
1.首先创建定时任务类2.然后需要运行项目,接着在系统监控中的定时任务进行设置在调用方法中有两种写法(1)类名首字母小写.方法名(2)包名.类名.方法名执行策略:(若8-9点半个小时执行一次,在8点宕机了,9:15好了)(1)立即执行:分别执行8:30 、9的任务(2)执行一次:只是执行8-9最后一个去执行(3)放弃执行:8-9点服务器宕机期间不执行,只是执行最新的9:15之后的是否并发:比如有两个任务A B,如果A是退回商品,B是退钱,那么应该先退回商品之后才能退钱,所以这里就是禁止。
2025-01-15 13:16:14
937
原创 Mysql事务
事务:事务是一个最小的不可在分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成。事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同。通俗的说:事务是同时成功或者同时失败。
2025-01-13 14:40:15
1293
原创 vue实现留言,回复留言
一级评论就是父评论,二级评论三级评论四级评论是子评论,通过@name的方式进行回复父级评论。响应的格式是:(下面是一个有二级评论的响应格式)首先是写前端的留言的发布以及回复和删除评论。1.创建springboot工程。3.操作留言表的mapper接口。5.编写Controller层。3.展示子评论的模块。
2025-01-12 20:37:40
294
原创 python入门
python是面向函数的语言:这意味着python面向函数的风格,更适合递归 就是写python只有函数,没有类和对象,只有函数,递归:深度学习全是递归计算,适合数学计算,深度学习的计算。python解释器的作用通俗理解就是起到一个翻译的作用,让我们程序员编写的代码计算机能够读懂然后运行,python解释器就是起到一个翻译作用,让计算机能够读懂的0101。python是初学者的语言:python对初级程序员而言,是一种伟大的语言,支持广泛的应用程序开发 最容易入门的语言 语法比较简单。
2024-09-27 00:48:04
458
原创 python变量以及常用数字类型
这里的结果是2,因为一旦创建了变量就会赋值,这里先创建了变量a,并给a赋值了1,此时就会存在变量中,第二个还是a,不过此时给a赋值2,所以最后输出的是2 注意:如果想输出不同的,应该创建不同的变量名。注意:在python中一旦创建了一个变量 然后赋值 就会存储在python内存里面。变量命名规范:字母 下划线 数字组成 命名的时候 不能以数字开头 都是小写字母。注意:在引用一个变量的时候,在引用之前 就要确定是否已经定义并且赋值。python里面常用的数字的数据:int float 关键字。
2024-09-25 23:37:39
307
原创 python入门必备基础语法!
print("这是第一行\n这是第二行") 结果:这是第一行 这是第二行 print("这是第一行\\n这是第二行") 结果:这是第一行\n这是第二行。print('hello\ python\ 666') 输出的结果是:hello python 666。str_1='hello, \'白白\' ',这个转义的意思就是把这个' '转为字符串形式输出的。''' '''成对的三个单引号括起来的内容就是多行注释 快捷键:段首''' 段尾'''a='4' b=''888'' c='''444'''这些都是字符串。
2024-09-24 23:28:54
421
1
原创 Docker常用命令!!!
总结:需要注意的是,镜像和容器类似于Java中类与对象的关系,在运行一个容器的时候,就会先创建一个容器,然后docker ps 是查看正在运行的容器,docker ps -a 是查看所有已经运行的容器和未运行的容器,最后要删除容器前一定要先暂停容器。9.docker ps -a 查看所有已经运行的容器和未运行的容器,通过这条命令查看刚才新创建的容器的id,通过id来启动容器。13.docker rm 容器id 删除容器 一定要注意在删除容器的时候必须先停止容器。
2024-09-23 19:44:18
395
空空如也
zookeeper完全分布式
2024-11-29
打印m行n列的任意字符
2022-10-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人