- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 协同过滤电影推荐系统
系统分为(身份):普通用户、管理员。 1. 登录 2. 注册 3. 首页 4. 付费电影 5. 电影论坛 6. 电影资讯 7. 免费电影 8. 个人中心 9. 付费电影收藏 10. 电影购买 11. 免费电影收藏 1. 登录 2. 个人中心(修改密码、个人信息) 3. 管理员管理 4. 用户管理 5. 免费电影管理 6. 免费电影评论管理 7. 免费电影收藏管理 ....
2025-01-07 15:55:14
277
原创 农产品智慧物流系统
系统分为(身份):普通用户、农产品供应商、农产品物流公司、管理员。 1. 登录 2. 注册 3. 首页 4. 论坛 5. 农产品供应商 6. 农产品 7. 农产品委托 8. 农产品物流公司 9. 个人中心 10. 收货地址 11. 农产品收藏 12. 农产品评价 13. 农产品订单 14. 农产品配送 15. 购物车 1. 登录 2. 注册 3. 修改密码 ...
2025-01-07 15:54:21
299
原创 农产品智慧物流系统
系统分为(身份):普通用户、农产品供应商、农产品物流公司、管理员。 1. 登录 2. 注册 3. 首页 4. 论坛 5. 农产品供应商 6. 农产品 7. 农产品委托 8. 农产品物流公司 9. 个人中心 10. 收货地址 11. 农产品收藏 12. 农产品评价 13. 农产品订单 14. 农产品配送 15. 购物车 1. 登录 2. 注册 3. 修改密码 ...
2025-01-07 15:52:24
334
1
原创 农事管理系统
系统分为(身份):普通用户、员工、管理员。 1. 登录 2. 注册 3. 首页 4. 公告信息 5. 农作物 6. 气象数据 7. 商品 8. 土地规划 9. 个人中心 10. 购物车 1. 登录 2. 修改密码 3. 个人信息 4. 公告信息管理 5. 商品管理 6. 商品评价管理 7. 商品订单管理 8. 土地规划管理 9. 农作物管理 10. 农事安排管理 ...
2025-01-07 15:51:27
378
原创 物流管理系统多身份
系统分为(身份):普通用户(客户)、员工、管理员。 1. 登录 2. 注册 3. 修改密码 4. 个人信息 5. 物流资讯管理 6. 车辆管理 7. 货运管理 1. 登录 2. 修改密码 3. 个人信息 4. 物流资讯管理 5. 驾驶员管理 6. 车辆管理 7. 货运管理 8. 客户管理 9. 员工通知管理 1. 登录 2. 个人中心(修改密码、
2025-01-07 15:50:33
220
原创 公司资产网站
系统分为(身份):普通用户、管理员。 1. 登录 2. 修改密码 3. 个人信息 4. 公告管理 5. 资产管理 6. 资产申请管理 7. 资料库管理 1. 登录 2. 个人中心(修改密码、个人信息) 3. 管理员管理 4. 基础数据管理(部门管理、职位管理、公告类型管理、资产类型管理、资产报废类型管理、资产申请类型管理、资料类型管理) 5. 公告管理 .....
2025-01-05 23:56:39
249
原创 党员学习交流平台
系统分为(身份):普通用户、老师、管理员。 1. 登录 2. 注册 3. 首页 4. 试卷管理 5. 党员论坛 6. 党员公告 7. 课程信息 8. 资料信息 9. 党员作业 10. 个人中心 11. 签到 12. 党员作业管理 13. 考试记录 14. 错题表 1. 登录 2. 注册 3. 修改密码 4. 个人信息 5. 用户管理 6. 试卷管理 7. 试题管理 ...
2025-01-05 23:54:43
440
原创 健身房管理系统多身份
系统分为(身份):普通用户、教练、管理员。 1. 登录 2. 注册 3. 首页 4. 健身论坛 5. 健身课程 6. 交流 7. 健身资讯 8. 健身房资讯 9. 健身房介绍 10. 个人中心 11. 课程收藏 12. 课程留言 13. 教练预约申请 1. 登录 2. 注册 3. 修改密码 4. 个人信息 5. 教练预约申请管理 6. 健身课程管理 .....
2025-01-05 23:53:38
288
原创 供应商管理系统
系统分为(身份):普通用户(员工)、管理员。 1. 登录 2. 修改密码 3. 个人信息 4. 公告管理 5. 供应商信息管理 6. 商品管理 7. 出入库管理 8. 商品进货管理 9. 商品退货管理 1. 登录 2. 个人中心(修改密码、个人信息) 3. 管理员管理 4. 基础数据管理(公告类型管理、供应商类型管理、供应商信用等级管理、进货类型管理、退货类型管理、商品类型
2025-01-05 23:51:50
295
原创 企业内管信息化系统
系统分为(身份):普通用户(员工)、部门经理、管理员。 1. 登录 2. 注册 3. 首页 4. 公告资讯 5. 任务 6. 资料 7. 个人中心 8. 部门 9. 任务分配 10. 员工请假 11. 基本信息 12. 薪资 1. 登录 2. 注册 3. 修改密码 4. 个人信息 5. 用户管理 6. 基本信息管理 7. 部门管理 8. 员工请假管理 ...
2025-01-05 23:35:48
310
原创 多媒体素材库系统
1. 登录 2. 注册 3. 首页 4. 公告 5. 留言板 6. 网站介绍 7. 联系我们 8. 领导介绍 9. 素材 10. 个人中心 11. 后台管理(首页、个人中心、公告管理、留言板管理、素材管理) 1. 登录 2. 首页 3. 个人中心(修改密码、个人信息) 4. 基础数据管理(公告类型管理、素材类型管理) 5. 公告管理 6. 留言板管理 7. 单页数据管理 8.
2025-01-05 23:33:14
348
原创 美食烹饪互动平台
1. 登录 2. 注册 3. 首页 4. 公告 5. 美食 6. 美食知识 7. 个人中心 8. 后台管理(首页、个人中心、公告管理、美食管理、美食知识管理) 1. 登录 2. 首页 3. 个人中心(修改密码、个人信息) 4. 基础数据管理(公告类型、美食类型管理、美食知识类型管理) 5. 公告管理 6. 美食管理(美食管理、美食留言管理、美食收藏管理) 7. 美食知识管理
2025-01-05 23:31:13
265
原创 美食烹饪互动平台
java1. 登录 2. 注册 3. 首页 4. 公告 5. 美食 6. 美食知识 7. 个人中心 8. 后台管理(首页、个人中心、公告管理、美食管理、美食知识管理) 1. 登录 2. 首页 3. 个人中心(修改密码、个人信息) 4. 基础数据管理(公告类型、美食类型管理、美食知识类型管理) 5. 公告管理 6. 美食管理(美食管理、美食留言管理、美食收藏管理) 7. 美食知识管理
2025-01-05 23:22:35
470
原创 List线程安全问题
1. 发现问题List<Integer> list = new ArrayList<>();new Thread(() -> { for (int i = 0; i < 10000; i++) { list.add(1); }},"A").start();new Thread(() -> { for (int i = 0; i < 10000; i++) { list.add(1);
2022-04-21 23:09:15
501170
1
原创 解决Docker容器中Mysql中文乱码问题
进入容器,修改/etc/mysql/my.cnf添加如下配置[client]port = 3306socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8[mysqld]port = 3306socket = /var/lib/mysql/mysql.sockcharacter-set-server=utf8[mysql]no-auto-rehashdefault-character-set=utf8重启容器
2022-04-20 23:04:27
495394
原创 Docker容器中安装vim指令
docker exec -it 容器名 /bin/bash #进入容器apt update # 更新apt-get install vim # 安装 vim
2022-04-20 23:03:11
495084
1
原创 Docker - redis集群
1. 创建自定义网络docker network create --driver bridge --subnet 192.168.0.0/16 redis #创建自定义网络docker network inspect redis #查看是否创建成功docker network rm redis #删除网络2. 编写脚
2022-04-20 23:01:10
495028
原创 Linux安装Docker
1. 卸载旧docker$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logr
2022-04-20 23:00:00
484548
原创 LinkedList源码分析
1. 源码分析// LinkedList 源码// list中实际存储元素的个数transient int size = 0;// 头节点transient Node<E> first;// 尾节点transient Node<E> last;// 添加一个元素public boolean add(E e) { linkLast(e); return true;}//list尾插入 void linkLast(E e) {
2022-04-18 22:10:01
497287
原创 ArrayList源码分析
1. 源码分析// 默认大小private static final int DEFAULT_CAPACITY = 10;// 空数组 调用ArrayList构造方法并设置初始大小为0时使用private static final Object[] EMPTY_ELEMENTDATA = {};// 空数组 调用ArrayList构造方法 不设置初始大小时使用private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA
2022-04-17 00:01:41
494754
原创 运行时数据区 - 方法区
① 栈、堆、方法区的交互关系Person person = new Person();//Person => .class方法区//person => 栈//new Person() => 堆空间Java栈空间中的一个Slot存储了person的reference引用,指向堆空间中Person的一个实例,然后堆空间中的Person实例中存在一个对象类型数据的指针,指向方法区中的对象数据类型。② 方法区的理解《Java虚拟机规范》中明确说明:尽管所有的方法区在逻辑上属于
2022-03-15 21:32:28
488715
原创 jvm - 逃逸分析
堆是分配对象的唯一选择吗?不是。随着Java的发展和逃逸分析技术的逐渐成熟,栈上分配、标量替换优化技术会使原有的绝对堆上分配发生一些微妙的变化。逃逸分析如果一个对象并没有逃逸出方法的话,那么就可能被优化为栈上分配。如果有个对象在方法中被定义,且只在方法内部使用,则认为它没有发生逃逸。当一个对象在方法中被定义后,它被外部方法引用,则认为发生了逃逸。如何将一个会逃逸的对象变成非逃逸对象?//逃逸public StringBuilder test() { StringBuilder
2022-02-23 23:34:07
484734
原创 运行时数据区 - 堆
① 堆的核心概念一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动时就被创建,其空间大小也确定下来(允许参数设置)。是JVM管理的最大一块内存空间。<<Java虚拟机规范>>规定,堆可以处于物理机上不连续的内存空间中,但逻辑上应该被视为连续的。虽然所有线程共享堆,但是堆空间中还有一部分区域被划分为了线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。这是为了提升并发效率而设计的。如果说一个栈空
2022-02-23 23:31:52
494734
原创 运行时数据区 - 虚拟机栈
① 概述由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点:跨平台,指令集小,编译器容易实现。缺点:性能下降,实现同样的功能需要更多的指令。是什么?Java虚拟机栈,早期也叫Java栈。每个线程再创建时都会创建一个相对应的虚拟机栈,其内部保存着一个个栈帧,对应着一次次的Java方法调用。虚拟机栈是线程私有的。生命周期与线程的生命周期相同。作用管理Java程序的运行,它保存方法的局部变量、部分结果,并参与方法的调用和返回
2022-02-23 17:14:51
488889
原创 运行时数据区 - 程序计数器
① 介绍JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。PC寄存器用来存储指向下一条指令的地址(即将要执行的指令代码),由执行引擎读取下一条指令。它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域。每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。任何时间一个线程都只有一个方法在执行,也就是当前方法。程序
2022-02-23 17:13:14
494667
原创 双亲委派机制
Java虚拟机对Class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的Class文件加载到内存生成Class对象。而且加载某个类的Class文件时,Java`虚拟机采用的是双拼委派模式,即把请求交给父类处理,它是一种任务委派模式。如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行。如果父类还存在父类加载器,则进一步向上委托,依次递归。最终请求到达顶层的启动类加载器。如果父类加载器可以完成类加载任务,就由父类加载,倘若无法完成,则才由子类
2022-02-23 17:10:50
484331
原创 JVM - 类加载与子系统
1. 类加载与子系统类加载器子系统负责从文件系统或网络中加载Class文件,Class文件在开头有特定的文件标识。ClassLoader只负责Class文件的加载,至于是否可以运行,则由Execution Engine来决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池(Constant pool)信息,可能还包括字符串字面量和数字常量。1) 类加载步骤① 加载阶段通过一个类的全限定名称获取定义此类的二进制字节流。将Class文件从磁盘或者网
2022-02-23 17:08:34
494361
原创 RabbitMQ+SpringBoot
RabbitMQ文章目录`RabbitMQ`一、简介1. 是什么2. 消息模型3. 应用场景二、`Docker`部署和配置1. 拉取镜像2. 跑3. 访问4. 创建新用户5. 创建`virtual host`三、`Springboot`整合`rabbitMQ`1. `Hello World`① 编写一个消息提供者`Provider`:② 编写一个消息消费者`Consumer`:2. `Work`队列① 编写一个消息提供者`WorkProvider`② 编写两个消息消费者`WorkConsumer1和Wor
2021-09-23 17:37:34
1770
原创 LinkedBlockingQueue
LinkedBlockingQueue是一个可选是否有界的阻塞队列,由链表实现。同其他队列一样,它遵循先进先出(FIFO)规则,队头元素是队列中存储时间最长的元素,队尾是队列中存储时间最短的元素。元素从队头取出,从队尾插入。该队列拥有比ArrayBlockingQueue更高的吞吐量,但是在高并发情况下的可预测性能较差。LinkedBlockingQueue源码:/** Lock held by take, poll, etc */private final ReentrantLock takeL
2021-09-16 16:47:23
480
原创 ArrayBlockingQueue
ArrayBlockingQueue是一个有界的队列,遵循先进先出规则,头部存放的永远是该队列中存储时间最长的元素,尾部是存储最短时间的元素。新元素从队列尾部进入,从头部取出元素。该队列一旦被创建,就无法改变其容量。 /** * Creates an {@code ArrayBlockingQueue} with the given (fixed) * capacity and default access policy. * * @param capac
2021-09-15 23:32:09
319
原创 ConcurrentLinkedQueue
ConcurrentLinkedQueue是一个无界的,线程安全的队列,遵循FIFO先进先出规则。当使用多线程访问需求时,该队列是一个不错的选择,和其他并发集合类似,它也不接受Null元素否则将抛出NullPointerException。//其offer方法的首行调用该方法检查空值。private static void checkNotNull(Object v) { if (v == null) throw new NullPointerException();}该
2021-09-15 11:22:57
436
原创 PriorityQueue优先队列
PriorityQueue即优先队列,是一个无界限队列。基于优先级堆,使用平衡二叉堆实现,底层体现是数组。transient Object[] queue; // non-private to simplify nested class access引用java8源码中PriorityQueue的类注释来说:其队列中所有元素都按照它们的自然排序方法**(实现Comparable接口),或通过在创建对象时传入比较器(Comparator)**完成排序。但在两种方式同时存在的情况下:优先使用Compa
2021-09-06 17:46:16
188
原创 谷歌页面排名算法 - 未完
一、PageRank算法原理一个合格的收索引擎,它所具备的最基础的功能便是网页搜索,根据用户给出的关键字查询出最匹配,最能满足用户需求的页面。那么搜索引擎到底应该如何排序才好呢?这在谷歌引领互联网搜索引擎之前,人们为此伤透脑筋,想出了一些最初的办法。人们认为,应该如何得知哪个网页是最重要的这件事,应该由顾客自己来决定,如果计算得出哪个网页更重要,那么它就应该排在靠前的位置,这个问题看似容易,但实则解决方式并没有想象中的那么简单。在网页排名算法诞生初期,人们对页面排序的想法以及实现策略基本一致。他们
2021-08-26 11:42:19
285750
原创 MySQL存储过程
MySQL存储过程一、简单应用1. 结束符DELIMITER $$ #应用于shell指令行2. 声明存储过程CREATE PROCEDURE 名称(入参或回参)3. 开始与结束符BEGIN...END4. 变量赋值SET @变量名 = 15. 定义变量DECLARE 变量名 int unsigned default 100;6. 存储过程体create function 存储函数名(参数)7. 调用存储过程call 存储过程名(入参)8. 删除存储过程
2021-08-24 11:50:23
287258
1
原创 Shell编程
1. 如何开始打开Linux终端,使用指令创建文件,以.sh结尾,拓展名不重要,并不影响脚本的执行。但是通常会设置为.sh表示此为一个shell脚本。vi / vim #创建文件2. 输出1. vim output.sh //创建文件2. echo "hello shell" //文件内编辑3. wq编辑后使用wq指令完成编辑。3. 运行脚本chmod +x ./output.sh #运行权限./output.sh./output.sh & #后台运行j
2021-08-09 21:24:48
314026
2
原创 时间复杂度和空间复杂度
1. 时间复杂度常数阶O(1)对数阶O(logN)线性阶O(n)线性对数阶O(nlogN)平方阶O(n²)立方阶O(n³)K次方阶O(n^k)指数阶(2^n)从上而下时间复杂度越来越大,执行效率越来越低。① 常数阶O(1)无论代码执行了多少行,只要没有循环等复杂结构,那么这段代码的时间复杂度就是O(1)。② 线性阶O(n)for(int i = 0; i<= n; i++) { //todo}这段代码,for循环里的代码将执行n次,消耗的时间和变量n是成
2021-08-09 05:23:49
314006
原创 MapStruct - [领域驱动模型] 优雅的转换do,vo,dto
MapStruct1. 官网https://mapstruct.org/documentation/stable/reference/html/#_apache_maven2. Github项目地址3. 引入Maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200
2021-08-09 05:12:43
314894
原创 常用排序算法 - Java实现【待完善】
1. 冒泡排序Bubble Sort相邻元素进行比较,如果a(n) > a(n + 1)则交换。一轮交换完毕后,可以确保最后一位a(length - 1)为最大。第i次比较完成后,可以确保length - 1 - i ~ length - 1位为数组中最大数的递增排序。由于在排序尚未结束的时候可能已经排序成功,可以使用一个变量标记之前的一轮排序是否存在交换,若没有进行任何交换则已排序完成。最快:待排序数组是已经满足排序要求的。最慢:待排序数组与排序要求正好相反。/** * @Autho
2021-08-09 05:08:09
313932
java腾讯云短信API所需jar包(完整).rar
2019-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人