- 博客(44)
- 收藏
- 关注
原创 数据结构05(Java)-- ( 归并排序实质,归并排序扩展问题:小和问题)
本文介绍了归并排序的原理及其应用扩展。首先解析了归并排序的分治递归实现,通过拆分数组和有序合并降低时间复杂度至O(nlogn),相比传统排序的重复比较更高效。然后探讨了两个经典扩展问题:小和问题(统计每个数右边比它大的数量)和逆序对问题(统计右边比它小的数量),给出了基于归并排序的优化解法。核心在于利用归并过程的有序性,避免暴力遍历,将时间复杂度从O(n²)优化到O(nlogn)。文章通过代码示例和分步图解,帮助理解归并排序的核心思想及其衍生应用。
2025-08-20 15:49:43
664
原创 JavaWeb前端03(Vue用法及具体案例)
本文介绍了Vue.js框架的基础知识和入门实践。文章首先概述了Vue作为渐进式JavaScript框架的特点,能够灵活构建用户界面。通过一个简单的"Hello World"示例展示了Vue的基本使用方式,包括数据绑定和插值表达式。接着介绍了Vue指令的概念和常见指令类型。最后给出了一个更完整的Tlias智能学习系统前端案例,展示了Vue在实际项目中的应用,包括表单绑定(v-model)和事件处理(@click)等特性。文章适合前端初学者了解Vue基础,为后续学习工程化的Vue开发打下基础
2025-08-19 11:50:33
416
原创 数据结构04(Java)-- ( 归并排序及其时间复杂度)
本文介绍了归并排序算法的实现和时间复杂度分析。通过Java代码展示了递归分解数组和合并有序子数组的过程,指出其时间复杂度为O(NlogN),符合master公式计算结果(a=2,b=2,d=1)。文章以初学者视角,结合图示说明排序原理,强调该算法采用分治思想:先递归排序左右子数组,再通过额外空间合并实现整体有序。作为数据结构学习笔记,内容聚焦算法核心逻辑,适合编程入门者理解基础排序算法。
2025-08-18 20:34:08
100
原创 JavaWeb前端02(JavaScript)
本文介绍了JavaScript的基础知识及其在网页交互中的应用。主要内容包括:1) JavaScript的组成(ECMAScript、BOM、DOM);2) 两种引入方式(内部脚本和外部脚本);3) 基础语法(输出语句、变量/常量、函数、自定义对象);4) DOM操作步骤;5) 事件监听语法;6) 实际案例演示如何为表格行添加鼠标悬停效果。文章适合有一定HTML/CSS基础的后端开发者快速了解JavaScript的核心概念和基本用法,通过具体代码示例展示了JavaScript实现网页交互效果的方法。
2025-08-18 18:51:10
926
原创 Java基础面试题(3)—Java(String字符串的存储方式,字面量)
本文探讨了Java中字符串对象的创建机制,重点分析了new String("hhhhh")语句创建对象的两种情况:当字符串常量池不存在该字符串时创建两个对象(堆中和常量池各一个),存在时只创建堆中的一个对象。文章详细解释了字符串存储结构(堆、栈、方法区、字符串常量池)和两种创建方式(直接赋值和new关键字)的内存差异,并介绍了字面量的概念及其在Java中的存储位置。通过图示和分类说明,帮助读者理解字符串对象创建和存储的底层原理,为Java学习打下基础。
2025-08-17 20:39:09
529
原创 JavaWeb前端(HTML,CSS具体案例)
本文主要介绍了HTML和CSS的基础知识,通过具体案例演示了它们的核心概念和使用方法。HTML部分展示了如何创建网页结构,包括标题、图片等元素;CSS部分则讲解了如何通过选择器修改文本样式、颜色等外观属性。文章还详细介绍了盒子模型和flex布局两种页面布局方式,通过代码示例展示了内容区域、内边距、边框和外边距的组成,以及flex布局的灵活特性。这些前端基础知识为后续学习更高级的JavaScript、Vue等技术奠定了基础。
2025-08-17 19:07:12
755
原创 数据结构03(Java)--(递归行为和递归行为时间复杂度估算,master公式)
本文介绍了递归算法的核心思想及时间复杂度估算方法(Master公式)。通过一个递归求数组最大值的例子,展示了如何将大问题分解为小问题并合并结果。重点讲解了Master公式的应用:当子问题规模相同时,时间复杂度T(n)=a*T(n/b)+O(n^d)。案例中a=2(子问题数),b=2(子问题规模),d=0(非递归部分复杂度),经计算得出时间复杂度为O(n)。文章用通俗易懂的方式讲解了递归原理和复杂度分析的基本方法,适合算法初学者参考学习。
2025-08-17 18:53:17
409
原创 数据库基础—SQL语句总结及在开发时
本文介绍了SQL语句的基础知识,主要分为DDL、DML、DQL三大类。DDL用于数据库和表结构的定义与修改,包括创建、查询、修改和删除操作;DML用于数据的增删改操作;DQL用于数据查询,涵盖基本查询、条件查询、聚合函数、分组查询和排序查询等核心语法。文章通过具体示例演示了各类SQL语句的使用方法,并对数据类型、约束等概念进行了扩展说明,为数据库操作提供了实用指导。
2025-08-13 12:21:20
560
原创 JavaWeb(苍穹外卖)--学习笔记18(Apache POI)
本文介绍了如何使用Apache POI库在Java项目中实现Excel文件的读写操作。文章首先简要介绍了Apache POI的功能,包括处理Excel、Word等Office格式文件。然后通过测试代码演示了POI的基本使用:创建Excel文件并写入内容,以及读取已有Excel文件的内容。文中详细讲解了XSSFWorkbook、XSSFSheet、XSSFRow、XSSFCell等核心组件的使用场景。最后,文章展示了如何将POI应用到实际项目中,通过模板文件生成运营数据报表并导出Excel表格。该技术可以帮助
2025-08-10 21:01:42
1104
原创 JavaWeb(苍穹外卖)--学习笔记17(Apache Echarts)
本文记录了基于B站黑马程序员苍穹外卖项目的学习笔记,重点介绍了用户端微信小程序的开发流程和统计模块实现。文章详细讲解了使用Apache ECharts进行数据可视化的过程,并以销量排名TOP10功能为例,展示了从Controller层到Mapper层的完整代码实现,包括SQL查询语句的解析。通过订单表和订单详情表的联合查询,实现了按时间段统计商品销量并排序的功能。文中还包含了前端界面的简单介绍和后端开发的学习心得,适合Java初学者参考学习。
2025-08-10 20:41:29
700
原创 数据库基础--多表关系,多表查询
JavaWeb学习笔记:多表关系与数据库外键 本文介绍了数据库中的一对多关系实现方式,重点对比了物理外键和逻辑外键的区别。一对多关系指一个实体关联多个其他实体(如部门与员工)。物理外键通过SQL语句直接定义表间关联,但会影响性能且不适用于分布式系统。逻辑外键则在业务层维护关系,成为当前企业开发的主流方案。作者强调,现代开发规范通常建议避免使用物理外键,而采用更灵活的逻辑外键方式。
2025-08-08 19:43:36
320
原创 Java基础面试题(2)—Java(存储,变量)
本文总结了Java基础中的几个关键概念:1)基本类型与包装类型的区别,包括存储方式、用途、空间占用等;2)基本类型与引用类型的区别,解释了引用类型存储对象地址的特性;3)自动装箱与拆箱机制及其应用场景;4)成员变量与局部变量的语法、存储位置差异。作者通过对比分析和示例代码,帮助读者理解这些核心概念,并分享了自己的学习心得,强调要避免机械式学习,应注重思考和理解底层原理。文章语言风格轻松活泼,适合Java初学者阅读参考。
2025-08-08 19:34:48
639
原创 JavaWeb(苍穹外卖)--学习笔记17(Websocket)
本文介绍了WebSocket技术及其在苍穹外卖项目中的应用。首先通过餐厅点菜的生动比喻,对比了传统HTTP请求与WebSocket的通信模式差异:前者是单向"一问一答",后者支持双向实时通信。文章详细解析了WebSocket的生命周期(连接建立、数据传输、连接关闭)并提供了一个完整案例,包含前端HTML实现和后端Java代码(使用Spring Boot的@ServerEndpoint注解)。通过该案例,读者可以学习如何建立WebSocket连接、处理消息收发以及管理连接状态。最后还展示了
2025-08-05 16:50:41
1146
原创 Java基础面试题(1)—Java优势(JVM,JRE,JIT,Java类,方法)
Java学习笔记摘要 本文分享了Java学习中的思考与总结,从五个核心问题展开:1) Java的四大优势(面向对象、跨平台、垃圾回收和生态);2) JDK与JRE的区别;3) Java不支持多重继承的原因(菱形继承问题);4) 接口与抽象类的三大区别(多继承、设计动机等);5) 方法重载与重写的区别。文中还通过图示详细解释了JDK/JRE/JVM的关系,以及Java代码的编译执行过程。作者强调学习时要注重思考而非简单复制,并通过问题形式梳理知识体系,为面试做准备。
2025-08-05 16:01:55
719
原创 JavaWeb(苍穹外卖)--学习笔记16(定时任务工具Spring Task,Cron表达式)
本文介绍了基于Spring Task实现的订单状态定时处理功能开发。首先讲解了Spring Task的基本概念和cron表达式语法,通过示例演示了定时任务的配置方法。随后详细展示了实际项目中订单超时处理(15分钟未支付自动取消)和派送中订单处理(每日凌晨1点自动完成)的具体实现,包括定时任务类编写、数据库查询和状态更新逻辑。文章还提供了cron表达式生成工具,适合初学者快速掌握定时任务的开发流程。
2025-08-01 21:10:28
915
原创 JavaWeb(苍穹外卖)--学习笔记15(分页查询PageHelper)
本文介绍了Java项目中分页查询的两种实现方式:原始SQL方式和PageHelper插件方式。通过员工管理功能为例,详细展示了两种方法的代码实现对比。原始方式需要手动计算索引和编写多条SQL语句,而PageHelper只需添加依赖、配置分页参数并执行单条SQL查询即可自动完成分页。文章特别强调了PageHelper的使用注意事项:SQL语句结尾不加分号、仅对紧跟的第一条SQL生效。最后通过对比表直观展示了两种方式的差异,PageHelper在简化代码、提高开发效率方面优势明显。适合刚接触分页查询的开发者学习
2025-07-29 15:37:02
950
2
原创 JavaWeb(苍穹外卖)--学习笔记14
本文总结了JavaWeb开发中Controller层和数据库Mapper层的关键知识点。在Controller层,重点介绍了常用注解:@ResponseBody用于直接返回数据,@RestController组合注解,以及@GetMapping等请求方法注解。同时讲解了三种参数接收方式:简单参数(@RequestParam)、JSON参数(@RequestBody)和路径参数(@PathVariable)。在数据库Mapper层,通过菜品分类、菜品和口味的表结构示例,说明了逻辑外键的使用。最后展示了常见的S
2025-07-28 20:26:02
1215
2
原创 JavaWeb(苍穹外卖)--学习笔记13(微信小程序开发,缓存菜品,Spring Cache)
本文介绍了使用Redis缓存优化小程序菜品查询性能的实现方法。通过将菜品数据缓存在Redis中,减少数据库查询压力。文章详细展示了缓存菜品和清除缓存的代码实现,并介绍了Spring Cache这一简化缓存操作的工具。Spring Cache通过注解(如@Cacheable)实现缓存功能,无需关心底层实现。最后给出了Spring Cache的配置步骤和使用示例,展示了如何通过注解自动缓存套餐数据。该方案有效提升了系统性能,适合高并发场景下的数据访问优化。
2025-07-27 14:47:31
466
2
原创 JavaWeb(苍穹外卖)--学习笔记11(Filter(过滤器) 和 Interceptor(拦截器))
本文介绍了Java Web开发中Filter(过滤器)和Interceptor(拦截器)的使用方法,重点讲解了它们在JWT令牌校验中的应用。文章通过类比公司安检流程,阐述了Filter的工作原理,并提供了完整的TokenFilter实现代码示例(包含请求URL判断、令牌解析等步骤)。同时指出实际项目中更常用Interceptor,并给出了对应的TokenInterceptor实现方案,包括配置拦截路径的WebConfig类。两种方式都实现了相同的登录校验逻辑,但Interceptor更适合Spring框架项
2025-07-26 17:19:14
416
1
原创 JavaWeb(苍穹外卖)--学习笔记12(微信小程序登陆代码开发)
摘要 本文介绍了基于SpringBoot的微信小程序登录功能实现过程。通过配置微信开发者ID和密钥,完成了微信授权登录接口开发。核心流程包括:1)调用微信接口获取openid;2)校验用户是否存在;3)新用户自动注册。关键技术点涉及JWT令牌生成、MyBatis数据持久化及微信API调用。代码包含Controller层请求处理、Service层业务逻辑及Mapper层数据库操作,完整实现了从微信授权到用户信息存储的闭环流程。该方案可作为小程序用户系统的标准实现模板。
2025-07-24 14:30:41
279
原创 JavaWeb(苍穹外卖)--学习笔记11(微信小程序开发,HttpClient)
本文介绍了微信小程序开发中的关键流程和HttpClient的应用。首先概述了小程序开发的基础知识,包括目录结构和核心文件。然后以微信登录功能为例,详细讲解了从获取临时登录凭证到服务器验证的完整流程,重点突出了HttpClient在向微信服务器发送请求时的作用。文章提供了Java中使用HttpClient发送GET和POST请求的代码示例,并展示了如何在项目中配置相关参数。最后简要提及了登录功能的控制器实现,为后端开发者提供了小程序登录功能的技术参考。
2025-07-24 12:52:15
946
原创 JavaWeb(苍穹外卖)--学习笔记09(Redis)
这篇文章介绍了Redis的基本概念及其在Java项目中的应用。作者通过学习B站黑马程序员的苍穹外卖项目,总结了Redis的5种常用数据类型(字符串、哈希、列表、集合、有序集合)及其操作命令,并展示了如何在Spring Boot项目中配置和使用RedisTemplate。文章以店铺营业状态功能为例,详细说明了从Redis配置到业务代码实现的全过程,包括yml配置、RedisTemplate配置类编写以及控制层代码实现,为初学者提供了Redis集成到Java项目的完整参考。
2025-07-17 15:22:28
1046
1
原创 JavaWeb(苍穹外卖)--学习笔记10(文件上传,JavaIO,阿里云OSS)
本文介绍了使用Java IO实现文件上传功能的学习笔记。首先讲解了Java IO的基础概念,包括InputStream、OutputStream等基类及其简单示例代码。然后通过一个实际项目案例,演示了如何用MultipartFile接收前端上传的文件并保存到本地服务器。最后介绍了更安全的阿里云OSS存储方案,展示了改造后的文件上传工具类实现,包括OSS客户端初始化、文件上传及异常处理等关键步骤。文章循序渐进地讲解了从本地文件上传到云存储的技术演进过程。
2025-07-17 14:33:22
1023
原创 JavaWeb(苍穹外卖)--学习笔记07(Java异常项目)
Java异常在项目的运用主要是在**Service层的自定义异常**(这里以登陆时:用户名为空的异常为例子)
2025-07-13 16:01:01
539
原创 JavaWeb(苍穹外卖)--学习笔记06(Swagger)
终于开始学习做项目了,本篇文章是学习B站黑马程序员苍穹外卖的学习笔记。我的学习路线是Java基础语法-JavaWeb-做项目,登录功能结束后,就进入复杂功能的开发,在进行前后端测试通常使用API 开发工具**Swagger** 自动生成接口。
2025-07-12 16:04:44
456
1
原创 JavaWeb(苍穹外卖)--学习笔记05(MD5)
本片文章是学习B站黑马程序员苍穹外卖的学习笔记。我的学习路线是Java基础语法-JavaWeb-做项目,外卖程序的开发还是比我之前学JavaWeb图书管理系统多很多功能的,其登录功能加入了**MD5**密码加密🙌
2025-07-12 14:47:50
339
1
原创 数据结构02(Java)-- 排序(插入排序,冒泡排序,快速排序,选择排序,归并排序,小和问题,逆序对问题)
本文为本小白🤯学习数据结构的笔记,将以算法题为导向,向大家更清晰的介绍数据结构相关知识(算法题都出自🙌B站马士兵教育——左老师的课程,讲的很好,对于想入门刷题的人很有帮助👍)🙌注异或^十进制转二进制 两个数都相同为0,否则为1(满足交换律,相同的数异或为0,任何数和0异或都等于这个数本身)//实现a与b值的交换a = a ^ b;b = a ^ b;// b=a^b^b=a 一个数和本身异或等于0a = a ^ b;// a=a^b^b。
2025-07-07 20:50:40
299
1
原创 计算机网络(网页显示过程,TCP三次握手,HTTP1.0,1.1,2.0,3.0,JWT cookie)
最近一直在后端开发的面经🙌,里面涉及到了好多计算机网络的知识😁,在这里以问题的形式写一个学习笔记
2025-07-05 14:20:47
1020
原创 数据结构01(Java)--位运算
**位运算**直接对整数的二进制位进行操作,因为在计算机中数据都是以二进制存储的,因此它在许多场景下能够提供比传统算术和逻辑运算**更高效、更简洁**的解决方案。
2025-07-04 16:55:28
375
2
原创 JavaWeb(苍穹外卖)--学习笔记04(前端:HTML,CSS,JavaScript)
本片文章是学习B站黑马程序员苍穹外卖的学习笔记。因为最近期末周,一直在应付考试所以就学的很少,恰好视频中在讲Nginx反向代理和负载均衡
2025-07-04 14:25:38
815
1
原创 JavaWeb(苍穹外卖)--学习笔记03(登录生成令牌)
登陆界面的后端实现大致可以分为两部分**登录功能和登录校验**,其中**登陆校验**的实现是**基于令牌JWT技术来实现会话追踪**
2025-06-13 22:29:55
309
1
原创 JavaWeb(苍穹外卖)--学习笔记02 (登陆功能)
登陆界面的后端实现大致可以分为两部分**登录功能和登录校验**,其中**登陆功能**的实现是**基于 SpringBoot+Mybatis 按照三层构架的思想,采用分层解耦的方式**实现员工登录的基本功能
2025-06-08 13:41:06
244
2
原创 JavaWeb(苍穹外卖)--学习笔记01(Git)
B站黑马程序员苍穹外卖的学习笔记。我的学习路线是Java基础语法-JavaWeb-做项目,在Day01(如果学到这里卡住了可以看看这篇文章),的学习中补学了Git的原理及使用。
2025-06-05 23:26:23
383
1
原创 C语言——指针,指针变量,野指针
计算机会给每个变量都分配其特定的存储空间,每个存储空间的地址就是指针(例如 你到菜鸟去取快递,你手中的取件码就相当于指针,通过它你就能找到你的快递了)类型名 *指针变量名2.指针类型因为不同类型变量,在内存中所占的字节数和存放方式是不同的,因此指向这些变量的指针类型也不同。例如:定义两个指针变量a1,a2在定义指针变量时 指针运算符* 仅表示变量a1,a2是指针型变量,指针变量名是a1,a2;在定义一个指针变量时,一定要给出指针变量所指变量的类型,同时对它初始化(不然指针将会变为野指针);
2024-08-10 19:28:49
540
原创 新手力扣刷题——很懵?看不懂开头?
其实完全不用担心,更不要有放弃的想法,如果你跟我一样只学过C,你可以把它当成一个自定义函数,一些什么头文件啊啥的,网站都给你提供了,你看那个参数x都给你传过去了,就接着写就好。最近在B站上看到,很多大佬都推荐在力扣网站上刷题,本苟蒻也是心血来潮也注册了一个账号,想开启自己的刷题之路,结果一看界面一下给我看懵了。
2024-08-03 13:22:58
861
原创 C语言循环结构程序设计——while,do······while,for循环的用法及区别
通过以上的流程图和代码例子,我们应该都可以看出来不同的循环语句之间的区别,根据这些区别我们可以灵活的使用不同的循环去做题。之后会持续更新c语言,希望能对大家有帮助,如有错误各位大佬轻喷,小白太想进步了,点点关注吧!相比较于while循环和do·······while循环,for循环比较灵活。while循环可简单地描述为:先判断条件再执行循环体语句。
2024-07-11 14:29:24
461
原创 C语言练习——输入一行字符,分别统计出其中英文字母,空格,数字和其它字符数
本篇为本人大一经过蓝桥杯,进学校实验室等一系列考试后,感觉有用并且常考的题型,希望对大家有用!(也算是复习C语言的一篇笔记吧!
2024-07-10 22:12:10
362
原创 C语言—-数据的输入输出,printf,putchar,puts,scanf,getchar函数的使用及区别
注意:其没有参数,而且可以吃掉空格,因此在连续使用 scanf %s 格式输入字符串时,一般用它来吃掉空格。之后会持续更新c语言,希望会对大家有帮助,如有错误各位大佬轻喷,小白太想进步了,大家点点关注!除了要输出的数据外,可能要对数据添加一些描述(输出时按原样输出),这样的字符叫做普通字符。除了可以用printf 函数%s输处字符外,C函数库还有一些专门用于输出字符的函数。组成,它的作用是把要输出的数据转换为指定的格式输出,其一般形式可表示为。:scanf 函数以回车,空格,Tap键结束输入(这里注意。
2024-07-10 11:26:03
1122
原创 C语言--运算符和表达式——运算符间优先级和结合性
几乎每一个程序都要进行运算,要进行运算,运算符是必不可少的。之后将持续更新c语言,希望能对大家有帮助,小白太像进步了,点点关注吧!
2024-07-07 19:18:01
937
原创 C语言--数据的表现形式——常量变量数据类型
变量是一个用于储存数据的存储单元(类似于我们数学中的X,Y)在计算机内部也可以这样表示。变量有多种类型,必须先定义,先定义变量的类型,也就是其储存。在程序运行过程中,其值不能被改变的量称为常量。双长类型long long int。,然后才能赋值,进而使用。短类型short int。双精度浮点型double。结构体类型struct。长类型long int。单精度浮点型float。共用体类型union。
2024-07-07 16:27:42
952
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人