自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Spring

Component注解,告诉Ioc框架,被注解的类需要被植入Ioc,当Spring读到这个注解时,会创建这个类对象,放到Ioc容器里。根据指定的包名去遍历,看有没有注解,有注解就是目标类,注入。大量重复的代码可扩展性太差,效率太低,将这些代码全部抽象出去,统一进行处理,做到核心业务和非业务代码的解耦合。面向切面编程:是一种抽象化的面向对象编程,给一些类似的方法的相同的位置进行一些相同的操作需要用到面向切面编程。还可以完成依赖注入(比如说有两个类A,B B中有属性A,要将A注入B)

2025-11-20 14:15:35 202

原创 Java day 03

实现功能1:新增员工接口的请求方式使用post方式比较合适,用json格式数据提交表单项代码开发:首先要设计一个DTO封装前端提交过来的数据,在controller中写一个save方法(调用service中的save方法),再去service接口中定义save,在service实现类中写save方法,在该方法中,new一个对象来接受数据传给实体层,其中和DTO中数据重合的部分可以用拷贝方法直接粘贴过去,剩余的方法自己set。封装好之后调用持久层将数据插入。

2025-11-20 12:54:26 262

原创 外卖项目day02

修改数据库中明文密码,改为MD5加密后的密文,修改Java代码,前端提交的密码进行MD5加密后再和数据库密码匹配。浏览器请求nginx服务器,nginx服务器转发到tomcat服务器。Swagger可以帮助后端接受接口文档,帮助后端接受接口测试。优点是可以提高访问速度,进行负载均衡,保证后端服务的安全。前端请求地址和后端接口地址不一样,为什么可以成功登陆?完善登录功能(密码明文存储安全性太低)要设计一个DTO封装前端提交的数据。导入接口文档 apifox中导入。环境准备完成,开始具体实现。

2025-11-16 22:09:21 241

原创 AJAX JSON学习

JSON Javascript对象表示法 由于其语法简单,层次结构鲜明,多用于作为数据载体在网络中进行数据传输。作用:与服务器进行数据交换,异步交互(如搜索联想)AJAX异步的JavaScript和XML。JSON数据和Java对象相互转化。

2025-11-15 18:39:56 379

原创 JSP学习

JSP本质上是一个servlet,JSP脚本用于在JSP页面内定义Java代码。Java Server Pages Java服务端页面。JSP中既可以写Java代码也可以写HTML标签。业务逻辑层 service包。数据访问层 dao包。

2025-11-15 12:22:54 137

原创 Request Response对象

request中有tomcat(web服务器)解析的请求数据,response会设置响应数据。简化方式:response.sendRedirect(路径(需要加虚拟目录))request请求转发(forward):一种在服务器内部的资源跳转方式。service方法中有两个参数,request和response。若目录给浏览器使用则要加虚拟目录,若给服务器使用则不需要加。response 设置字符数据的响应体。request通用方式获取请求参数。response设置响应数据。response响应字节数据。

2025-11-14 20:40:20 164

原创 Servlet学习

HttpServlet中根据请求方式的不同调用不同方法是因为get方式和post方式请求参数的位置不一样,get在请求行里面,post在请求体里面。自己创造一个类继承自HttpServlet,然后重写doGet(),doSet()Servlet方法由谁调用?由web服务器(如Tomcat)创建,由web服务器调用。Servlet是Java提供的一门开发动态资源的技术。是JavaEE规范之一,就是一个接口。inti方法 默认为最开始时调用一次。destroy方法结束时调用一次。service方法重复调用。

2025-11-14 19:30:13 219

原创 MyBatis学习

MyBatis核心配置文件 可配置多个连接环境(environment)将jdbc中的硬编码写到配置文件中,并且免除大量代码。一款优秀的持久层框架,用于简化JDBC开发。使用mapper代理开发。

2025-11-13 22:42:29 191

原创 Maven学习

Maven提供了一套标准化的构建流程(编译,测试,打包,发布)在dependence中可以很方便的引入jar包。Maven提供了一套标准化的项目结构。包含本地仓库,中央仓库,远程仓库。提供了一套依赖管理机制。

2025-11-13 22:15:20 311

原创 JDBC 学习

1.DriverManager:注册驱动,获取数据库连接对象 getConnection(String url,String username,String password) url语法格式:jdbc:mysql://ip地址(域名):端口号/数据库名称?用Java操作所有关系型数据库的一套API,JDBC只定义了接口,MySQL,Oracle等自己定义了实现类(驱动)先创建Account类,再创建对象,每次循环将数据放进对象中,并且将对象装入集合。封装了DQL查询语句的结果。作用:执行sql语句。

2025-11-13 21:04:49 254

原创 外卖项目 day01

poji子模块存放一些entity(实体),DTO(数据传输对象),VO(视图对象,为前端展示数据提供的对象),POJO(普通Java对象))(下jdk,改密码,改数据库表......终于登进去了)sever子模块:后端服务模块 存放配置文件,配置类等。common子模块存放一些公共类,可供其他模块使用。初始功能中已经实现了登录工程,测试能否实现。2.后端环境搭建 基于maven。3.git进行版本控制。将本地文件推送到远程。

2025-11-12 23:52:24 218

原创 DAY 51 leetcode 150 栈和队列.逆波兰表达式

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。每个操作数(运算对象)都可以是一个整数或者另一个表达式。有效的算符为 '+'、'-'、'*' 和 '/'。答案及所有中间计算结果可以用 32 位 整数表示。返回一个表示表达式值的整数。输入是一个根据逆波兰表示法表示的算术表达式。两个整数之间的除法总是 向零截断。表达式中不含除零运算。

2025-07-29 17:48:42 177

原创 DAY 50 leetcode 1047--栈和队列.删除字符串中的所有相邻重复项

在完成所有重复项删除操作后返回最终的字符串。上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。重点:注意返回时将字符串反转,因为栈。给出由小写字母组成的字符串。

2025-04-20 21:31:12 344

原创 DAY 49 leetcode 20--栈和队列.有效的括号

思路:先检测左括号,然后逐一将左括号对应的右括号入栈,这样的好处是判断左右括号是否匹配时,只需判断两括号是否相等就行了(因为都是右括号),若相等则pop()给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。

2025-04-19 13:13:47 268

原创 DAY 48 leetcode 225--栈和队列.用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。两个队列,一个用来当栈,一个起到备份的作用。

2025-04-18 08:59:46 211

原创 DAY 47 leetcode 232--栈与队列.用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(

2025-04-17 20:26:57 311

原创 DAY 46 leetcode 459--字符串.重复的子字符串

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

2025-04-16 14:30:40 408

原创 DAY 45 leetcode 28的kmp算法实现

例:文本串:a a b a a b a a f模式串:a a b a a f两个指针分别指向上下两串,当出现分歧时,并不将上下的都重新回退,而是利用”获取已经比较过的信息,上面的指针不动,而下面的回退到第n个如:i 指向b文本串:a a b a a b a a f模式串:a a b a a fj<---- j 指向f两者发生冲突,此时将j回退到模式串的第三个元素然后重新开始同时前进,开始比对。

2025-04-15 19:37:36 981

原创 DAY 44 leetcode 28--字符串.实现strStr()

给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。

2025-04-14 19:19:07 253

原创 DAY 43 kama 55--字符串.右旋字符串

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。思路是新建一个答案StringBuilder,然后从后面指定的l长度的字符串开始遍历,往里面填充。例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。思路类似昨天的那道题,先整个反转,然后分别反转子串。

2025-04-13 15:57:41 157

原创 DAY 42 leetcode 151--哈希表.反转字符串中的单词

给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。

2025-04-12 20:19:22 238

原创 DAY 41 kama 54--字符串.替换数字

停更了两天...前两天心情不太好,今天调整好了一点,继续吧...

2025-04-11 12:35:01 253

原创 DAY 40 leetcode 344,541--字符串.反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

2025-04-08 09:55:34 650

原创 DAY 39 leetcode 18--哈希表.四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。和上一题类似的思路,只不过多加了一层循环。

2025-04-07 19:57:47 212

原创 DAY 38 leetcode 15--哈希表.三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。

2025-04-06 14:29:50 270

原创 DAY 37 leetcode 454--哈希表.四数相加

给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0思路将AB CD分为两组,先遍历AB 将两者之和作为Key,出现的次数作为value存进HashMap中,然后再遍历CD,若出现-Key,则说明可以与AB中的元素相加为0,此时count+=value,即可记录所有相加为0

2025-04-05 11:42:07 200

原创 DAY 36 leetcode 1--哈希表.两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

2025-04-04 11:32:17 412

原创 DAY 35 leetcode 202--哈希表.快乐数

编写一个算法来判断一个数n是不是快乐数。如果n是快乐数就返回true;不是,则返回false。

2025-04-03 20:56:15 543

原创 DAY 34 leetcode 349--哈希表.两个数组的交集

因为返回的数组会带有默认的0无法消除。

2025-04-02 20:11:08 264

原创 DAY 33 leetcode 383--哈希表.赎金信 49--字母异位词分组

ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。

2025-04-01 18:04:10 218

原创 DAY 32 leetcode 242--哈希表.有效的字母异位词

一般哈希表都是用来快速判断一个元素是否出现集合里。要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。一般哈希冲突(两个数据映射到了同一个下标下)有两种解决方法, 拉链法和线性探测法。

2025-03-31 19:23:30 340

原创 DAY 31 leetcode 142--链表.环形链表

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。

2025-03-30 17:24:36 301

原创 DAY 30 leetcode 160--链表.链表相交

我们求出两个链表的长度,并求出两个链表长度的差值,然后让curA移动到,和curB 末尾对齐的位置,此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。

2025-03-29 12:46:59 269

原创 DAY 29 leetcode 19--删除链表的倒数第N个节点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

2025-03-28 13:59:47 398

原创 DAY 28 leetcode 24--链表.两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2025-03-27 21:39:04 279

原创 DAY 27 leetcode 206--链表.反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

2025-03-26 20:43:05 333

原创 DAY 26 leetcode 203 --链表.移除链表元素 ,707--设计链表

链表是一种通过指针串联在一起的线性结构,包括单链表,双链表,循环链表等。数组是在内存中是连续分布的,但是链表在内存中可不是连续分布的。链表是通过指针域的指针链接在内存中各个节点。

2025-03-25 17:05:31 226

原创 DAY 25 leetcode (kama)44 --

然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。为了确保公平竞争,你需要找到一种分配方式,使得 A 公司和 B 公司各自的子区域内的土地总价值之差最小。在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。现在,需要将这个城市区域的所有区块分配给 A 公司和 B 公司。注意:区块不可再分。

2025-03-24 14:14:49 170

原创 DAY 24 leetcode (kama)58 --数组.区间和

但是会超出时间限制,比如查询m次从0到n-1的区间和,那么该算法的时间复杂度是 O(n * m)

2025-03-24 12:35:22 215

原创 DAY 23 leetcode 76(暂未写)59,54--数组.螺旋矩阵

给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。这种循环的重点在于,坚持一直坚持每条边左闭右开的原则。

2025-03-22 22:00:48 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除