- 博客(78)
- 收藏
- 关注
原创 【排序算法】选择排序(Selection sort)
它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
2024-09-20 20:38:01
437
1
原创 【毕业设计】基于springboot+jsp+ssm的学生信息管理系统【源码+LW+PPT】
首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项目软件架构选择B/S模式,总体功能模块运用自顶向下的分层思想。再然后就是实现系统并进行代码编写实现功能。论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过学生信息管理系统将会使学生信息各个方面的工作效率带来实质性的提升。
2024-09-20 19:35:16
1018
原创 基于JSP+Java+Springboot的旅游管理系统【毕业论文+源码】
社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的交易方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点。因此,构建符合自己要求的操作系统是非常有意义的。本文从管理员、用户的功能要求出发,旅游管理系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理,用户;首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。前台首页;首页、旅游方案、旅游资讯、个人中心、后台管理等功能。经过认真细致的研究,精
2024-09-20 10:59:00
1032
原创 【排序算法】选择排序(Selection sort)
它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
2024-09-20 00:02:46
412
原创 基于java+springboot的交易平台
随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,闲一品交易平台当然也不能排除在外。详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上管理系统特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对闲一品交易平台而言非常有利。
2024-09-19 13:19:57
647
原创 基于jsp+ssm+springboot的餐厅点餐系统【毕业论文+源码】
JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JSP类。当它与JSPBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了用户的需求。JSPBeans 可以对JSP技术的程序进行扩展,从而形成新的应用程序,而且JSPBeans的代码可以重复使用,所以就便于对程序进行维护。JSPBean 组件有内部的接口,可以帮助不同的人对系统进行访问。
2024-09-18 22:46:15
959
原创 【优秀毕设】基于vue+ssm+springboot的校园交友网站系统设计(附源码论文)
随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,校园交友网站就是信息时代变革中的产物之一。任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场进行调研,论文需求进行分析,概要设计,系统详细设计,测试和编码等步骤,设计并实现了校园交友网站。系统选用java语言,B/S模式和Mysql为后台数据库。
2024-09-18 15:29:43
600
原创 Java面试系列-Redis
Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。读写性能优异Redis能读的速度是110000次/s,写的速度是81000次/s (测试条件见下一节)。数据类型丰富Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子性。
2024-09-18 10:49:03
1704
原创 Java面试系列-Java 并发(下)
BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。下图是对这个原理的阐述:一个线程往里边放,另外一个线程从里边取的一个 BlockingQueue。一个线程将会持续生产新对象并将其插入到队列之中,直到队列达到它所能容纳的临界点。也就是说,它是有限的。如果该阻塞队列到达了其临界点,负责生产的线程将会在往里边插入新对象时发生阻塞。它会一直处于阻塞之中,直到负责消费的线程从队列中拿走一个对象。负责消费的线程将会一直从该阻塞队列中拿出对象。
2024-09-17 23:26:47
1957
原创 DNS的解析,查询,调度原理是什么?什么是DNS劫持,污染?如何监控?
其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。假设该域名的业务方希望缩短切换的时间,正确的做法是,至少提前5个小时修改记录,仅改小 TTL,例如改为5分钟,等待该变更同步到全网之后,再进行修改指向的操作,确认无误再将 TTL 修改为原本的值。
2024-09-17 23:04:24
1751
原创 Java 基础 - 泛型机制详解(上)
在本例中,forName()方法中传入的是User类的完整路径,因此返回的是Class<User>类型的对象,因此调用泛型方法时,变量c的类型就是Class<User>,因此泛型方法中的泛型T就被指明为User,因此变量obj的类型为User。说明一下,定义泛型方法时,必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。在使用泛型的时候,我们可以为传入的泛型类型实参进行上下边界的限制,如:类型实参只准传入某种类型的父类或某种类型的子类。
2024-09-17 20:44:42
997
原创 基于jsp+ssm+springboot的社区维修平台【设计+论文+源码】
JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了用户的需求。JavaBeans 可以对JSP技术的程序进行扩展,从而形成新的应用程序,而且JavaBeans的代码可以重复使用,所以就便于对程序进行维护。JavaBean 组件有内部的接口,可以帮助不同的人对系统进行访问。
2024-09-17 20:22:47
1295
原创 基于jsp+ssm+springboot的简历管理系统【毕业论文+源码】
同时,随着信息社会的快速发展,简历系统面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的简历系统信息中查询,存储,管理和共享信息方面有效,对我们的学习,工作和生活具有重要的现实意义。在简历系统开发之前所做的市场调研及其他的相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于简历系统的开发在经济上是完全可行的,没有任何费用支出的。
2024-09-17 19:22:05
1466
原创 Java 基础 - 异常机制详解(上)
// ... }try、catch和finally都不能单独使用,只能是try-catch、try-finally或者try-catch-finally。try语句块监控代码,出现异常就停止执行下面的代码,然后将异常移交给catch语句块来处理。finally语句块中的代码一定会被执行,常用于回收资源。throws:声明一个异常,告知方法调用者。throw :抛出一个异常,至于该异常被捕获还是继续抛出都与它无关。Java编程思想一书中,对异常的总结。在恰当的级别处理问题。
2024-09-17 18:20:01
1216
原创 Java面试系列-Java 新版本
函数式编程面向对象编程是对数据进行抽象;函数式编程是对行为进行抽象。核心思想: 使用不可变值和函数,函数对一个值进行处理,映射成另一个值。Lambda表达式lambda表达式仅能放入如下代码: 预定义使用了 @Functional 注释的函数式接口,自带一个抽象函数的方法,或者SAM(Single Abstract Method 单个抽象方法)类型。这些称为lambda表达式的目标类型,可以用作返回类型,或lambda目标代码的参数。
2024-09-17 13:25:40
1533
原创 【数据结构基础】线性表 - 链表
n个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。确定一个链表我们只需要头指针,通过头指针就可以把整个链表都能推出来。知识点优缺点链表优点 空间没有限制 插入删除元素很快 链表缺点 存取速度很慢分类 单向链表 一个节点指向下一个节点。 双向链表 一个节点有两个指针域。 循环链表 能通过任何一个节点找到其他所有的节点,将两种(双向/单向)链表的最后一个结点指向第一个结点从而实
2024-09-17 12:34:14
838
原创 基于JSP+SSM+Springboot的职称评审系统【毕业论文+源码】
为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。在职称评审管理系统开发之前所做的市场调研及其他的相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于职称评审管理系统的开发在经济上是完全可行的,没有任何费用支出的。
2024-09-17 11:58:27
1127
原创 【数据结构基础】图 - 最短路径(Dijkstra & Frolyd)
最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。最短路径不一定是经过边最少的路径,但在这些最短路径中,长度最短的那一条路径上只有一条边,且它的权值在从源点出发的所有边的权值最小。从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小,例: 公交查询系统。路径长度最短的最短路径的特点:在这条路径上,必定只含一条弧,并且这条弧的权值最小。
2024-09-16 13:02:14
825
原创 Java 基础 - 图谱 & Q/A
不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如 String、Integer及其它包装类。如何在Java中写出Immutable的类?要写出这样的类,需要遵循以下几个原则:1)immutable对象的状态在创建之后就不能发生改变,任何对它的改变都应该产生一个新的对象。2)Immutable类的所有的属性都应该是final的。3)对象必须被正确的创建,比如: 对象引用在对象创建过程中不能泄露(leak)。
2024-09-15 22:55:12
1303
原创 Java 基础 - 泛型机制详解(下)
因为类型检查就是编译时完成的,new ArrayList()只是在内存中开辟了一个存储空间,可以存储任何类型对象,而真正涉及类型检查的是它的引用,因为我们是使用它引用list1来调用它的方法,比如说调用add方法,所以list1引用能完成泛型类型的检查。在上面的程序中,使用add方法添加一个整型,在IDE中,直接会报错,说明这就是在编译之前的检查,因为如果是在编译之后检查,类型擦除后,原始类型为Object,是应该允许任意引用类型添加的。我们使用了泛型,到头来,还是要自己强转,违背了泛型设计的初衷。
2024-09-15 19:20:23
1147
原创 SpringBoot接口 - 如何生成接口文档之Swagger技术栈
OpenAPI 规范(OAS)定义了一个标准的、语言无关的 RESTful API 接口规范,它可以同时允许开发人员和操作系统查看并理解某个服务的功能,而无需访问源代码,文档或网络流量检查(既方便人类学习和阅读,也方便机器阅读)。正确定义 OAS 后,开发者可以使用最少的实现逻辑来理解远程服务并与之交互。此外,文档生成工具可以使用 OpenAPI 规范来生成 API 文档,代码生成工具可以生成各种编程语言下的服务端和客户端代码,测试代码和其他用例。
2024-09-15 14:04:45
1047
原创 Java面试系列-ElasticSearch
在查询中会有多种条件组合的查询,在ElasticSearch中叫复合查询。bool query(布尔查询)通过布尔逻辑将较小的查询组合成较大的查询。boosting query(提高查询)不同于bool查询,bool查询中只要一个子查询条件不匹配那么搜索的数据就不会出现。而boosting query则是降低显示的权重/优先级(即score)。constant_score(固定分数查询)查询某个条件时,固定的返回指定的score;
2024-09-14 23:02:00
930
原创 基于JSP+SSM+Springboot的毕业生信息招聘平台【毕业论文+源码】
随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中毕业生对招聘平台方面的要求也在不断提高,需要招聘平台的人数更是不断增加,使得毕业生信息招聘平台的开发成为必需而且紧迫的事情。毕业生信息招聘平台主要是借助计算机,通过对毕业生信息招聘平台所需的信息管理,增加毕业生选择,同时也方便对广大招聘平台的及时查询、修改以及对毕业生信息的及时了解。毕业生信息招聘平台对毕业生带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足毕业生的需求。
2024-09-14 22:58:27
1010
原创 订单超时自动取消的 3 种解决方案,yyds!
第三种方案,就是利用延时消息了,可以使用RocketMQ、RabbitMQ、Kafka的延时消息,消息发送后,有一定延时才会投递。大家对电商购物应该都比较熟悉了,我们应该注意到,在下单之后,通常会有一个倒计时,如果超过支付时间,订单就会被自动取消。我们用的就是这种,消息队列采用的是RocketMQ,其实RocketMQ延时也是利用定时任务实现的。使用延时消息的优点是比较高效、好扩展,缺点是引入了新的技术组件,增加了复杂度。对数据库的压力很大,定时任务造成人为的波峰,执行的时刻数据库的压力会陡增。
2024-09-14 22:33:17
646
原创 基于jsp+ssm+springboot的网上购物商城【毕业论文+源码】
接着对系统进行总体设计和详细设计。可操作性主要是对网上商城购物系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户二个权限角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便网上商城购物系统的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。所以网上商城购物系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
2024-09-14 22:18:12
1083
原创 Java面试系列-Java 集合
我们都知道Java中内存是通过GC自动管理的,GC会在程序运行过程中自动判断哪些对象是可以被回收的,并在合适的时机进行内存释放。GC判断某个对象是否可被回收的依据是,是否有有效的引用指向该对象。如果没有有效引用指向该对象(基本意味着不存在访问该对象的方式),那么该对象就是可回收的。这里的有效引用并不包括弱引用。也就是说,虽然弱引用可以用来访问对象,但进行垃圾回收时弱引用并不会被考虑在内,仅有弱引用指向的对象仍然会被GC回收。
2024-09-14 21:33:05
608
原创 深拷贝最佳实践:考虑拷贝消耗的 CPU 和拷贝速度
比其他方式快了将近 20 倍。深拷贝(clone)是 Java 开发过程中经常遇到问题,有人用 IO 流、有人用 JSON 序列化、有人循环拷贝属性等等,网上文章都能实现功能。2. 使用阿里巴巴 fastjson 反序列化先转 JSON 再转对象,平均耗时 65ms,也就是会占用 65ms 的 CPU。复杂对象使用其他方式深克隆,会导致 CPU 飙升,QPS下降,接口响应超时等情况。被推荐的不多,被埋没了。1. 使用 IO 流写入再读取出来,平均耗时 52ms,也就是会占用 52ms 的 CPU。
2024-09-14 17:40:03
278
原创 Java面试系列-Java 集合
我们都知道Java中内存是通过GC自动管理的,GC会在程序运行过程中自动判断哪些对象是可以被回收的,并在合适的时机进行内存释放。GC判断某个对象是否可被回收的依据是,是否有有效的引用指向该对象。如果没有有效引用指向该对象(基本意味着不存在访问该对象的方式),那么该对象就是可回收的。这里的有效引用并不包括弱引用。也就是说,虽然弱引用可以用来访问对象,但进行垃圾回收时弱引用并不会被考虑在内,仅有弱引用指向的对象仍然会被GC回收。
2024-09-14 17:11:20
895
原创 Java 基础 - 泛型机制详解(下)
因为类型检查就是编译时完成的,new ArrayList()只是在内存中开辟了一个存储空间,可以存储任何类型对象,而真正涉及类型检查的是它的引用,因为我们是使用它引用list1来调用它的方法,比如说调用add方法,所以list1引用能完成泛型类型的检查。在上面的程序中,使用add方法添加一个整型,在IDE中,直接会报错,说明这就是在编译之前的检查,因为如果是在编译之后检查,类型擦除后,原始类型为Object,是应该允许任意引用类型添加的。我们使用了泛型,到头来,还是要自己强转,违背了泛型设计的初衷。
2024-09-14 15:44:20
1170
原创 Java面试系列-Java 并发(中)
CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。简单解释:CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较下在旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。
2024-09-13 19:16:50
1114
原创 【数据结构基础】图 - 最小生成树(Prim & Kruskal)
因为Kruskal涉及大量对边的操作,所以它适用于稀疏图;普通的prim算法适用于稠密图,但堆优化的prim算法更适用于稀疏图,因为其时间复杂度是由边的数量决定的。
2024-09-13 18:15:02
444
原创 【毕业设计】基于springboot+jsp+ssm的家乡特色推荐系统【源码+LW+PPT】
在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括家乡特色推荐的网络应用,在外国家乡特色推荐系统已经是很普遍的方式,不过国内的管理网站可能还处于起步阶段。家乡特色推荐系统采用java技术,基于springboot框架,mysql数据库进行开发,实现了首页,个人中心,用户管理,文章分类管理,文章分享管理,系统管理等内容进行管理,本系统具有良好的兼容性和适应性,为用户提供更多的家乡特色文章信息,也提供了良好的平台,从而提高系统的核心竞争力。
2024-09-13 17:47:40
668
原创 【优秀毕设】基于JSP+SSM+Mysql的小区物业管理系统【源码+LW】
首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项目软件架构选择B/S模式,总体功能模块运用自顶向下的分层思想。再然后就是实现系统并进行代码编写实现功能。论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过物业管理系统将会使物业各个方面的工作效率带来实质性的提升。
2024-09-13 12:11:56
1131
原创 订单超时自动取消的 3 种解决方案,yyds!
第三种方案,就是利用延时消息了,可以使用RocketMQ、RabbitMQ、Kafka的延时消息,消息发送后,有一定延时才会投递。大家对电商购物应该都比较熟悉了,我们应该注意到,在下单之后,通常会有一个倒计时,如果超过支付时间,订单就会被自动取消。我们用的就是这种,消息队列采用的是RocketMQ,其实RocketMQ延时也是利用定时任务实现的。计时不准,定时任务做不到非常精确的时间控制,比如半小时订单过期,但是定时任务很难卡准这个点。在文章开头的那个倒计时器,大家觉得是怎么做的呢。
2024-09-12 23:38:16
529
原创 基于jsp+ssm+springboot的网上购物商城【毕业论文+源码】
接着对系统进行总体设计和详细设计。可操作性主要是对网上商城购物系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户二个权限角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便网上商城购物系统的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。所以网上商城购物系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
2024-09-12 23:29:49
1026
原创 Java 基础 - 泛型机制详解(下)
因为类型检查就是编译时完成的,new ArrayList()只是在内存中开辟了一个存储空间,可以存储任何类型对象,而真正涉及类型检查的是它的引用,因为我们是使用它引用list1来调用它的方法,比如说调用add方法,所以list1引用能完成泛型类型的检查。在上面的程序中,使用add方法添加一个整型,在IDE中,直接会报错,说明这就是在编译之前的检查,因为如果是在编译之后检查,类型擦除后,原始类型为Object,是应该允许任意引用类型添加的。我们使用了泛型,到头来,还是要自己强转,违背了泛型设计的初衷。
2024-09-12 22:26:26
958
原创 【排序算法】快速排序(Quick Sort)
它的基本思想是: 选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2024-09-12 18:31:34
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人