自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Token的技术详解

JWT 是一种常用的 Token 格式,用于在网络应用中传递声明。它由三部分组成:Header(头部)、Payload(负载)和 Signature(签名)。Header:包含 Token 类型和加密算法,例如 {"alg": "HS256", "typ": "JWT"}。Payload:包含声明或用户信息,例如 {"sub": "1234567890", "name": "John Doe", "admin": true}。

2024-08-01 11:42:01 487

原创 Java基础题的复习----第五章

Map接口表示一个键值对的集合,每个键映射到一个值。键不能重复,但值可以重复。AbstractMap是一个实现了Map接口的大部分功能的抽象类,提供了Map接口的骨干实现,以减少实现此接口所需的工作量。具体的Map实现类可以继承AbstractMap并实现其抽象方法。@Override@Override自定义排序是通过传递一个实现了Comparator接口的比较器对象来实现的。Comparator接口提供了一个compare方法,用于定义两个对象的比较逻辑。@Override。

2024-07-17 13:58:50 759

原创 Java基础题的复习----第四章

可以自定义异常。自定义异常的步骤1.创建一个新的类继承Exception或RuntimeException。2.提供一个或多个构造方法,用于初始化异常对象。3.可选:添加一些自定义的属性和方法,以便传递更多的异常信息。示例代码// 自定义异常类,继承自Exception// 构造方法// 使用自定义异常try {// 抛出自定义异常的方法解释:在这个例子中,我们创建了一个名为MyCustomException的自定义异常类,并在validateAge方法中使用它。

2024-07-13 14:28:43 880

原创 Java基础题的复习----第三章

概述面向接口编程是一种软件设计原则,强调使用接口而不是具体实现类来定义程序组件的行为。其核心思想是依赖于抽象,而不是依赖于具体,实现模块之间的松耦合。这种方法使得代码更灵活、更容易维护和扩展。优点1.松耦合:模块之间的依赖性降低,改变一个模块时对其他模块的影响较小。高内聚,松耦合。2.灵活性:通过接口,程序可以更容易地引入新功能或替换现有实现,而不需要修改调用者代码。3.可测试性:容易为代码编写单元测试,可以通过接口轻松创建模拟对象(mock objects)。

2024-07-13 11:01:55 1005

原创 Java基础题的复习----第二章

编译期常量拼接:在编译阶段优化,只创建一个字符串对象。运行期字符串拼接:使用 StringBuilder,涉及一个 StringBuilder 对象和一个新的 String 对象。显式使用 StringBuilder:可以优化性能,尤其是在大量字符串拼接时。String Buffer是一个线程安全的,加了同步,StringBuilder 线程不安全。

2024-07-12 16:41:02 847

原创 基础题的复习----第一章

1.程序:排序: 冒泡 选择 插入 快速排序 画出:快速排序流程图 和 插入的流程图优化冒泡排序,使其效率更高。2.import java和javax差异3.debug 冒泡排序4.java中是否可以写出引用传递的例子5.this三种用法 并说出 this 第三种用法写一个实例出来, 找源码里在哪里用过6.单例模式 在多线程中是否线程安全, 如何保证线程安全。7.static 是否能修饰类,属性,局部变量,方法,代码块,如果能说明其特点,及加载顺序。

2024-07-12 00:15:00 1229

原创 盘点各种设计模式:单例模式,工厂模式,装饰者模式等

本人是准大二学生,有一个任务是手写tomcat,在历经艰辛万苦之后,终是略有成效,在这篇文章下面就来盘点一些设计模式,虽然我觉得这些东西真的有点高端,我就斗胆来写一些。

2024-07-11 09:27:36 362

原创 jsp转换成servlet的详解

此知识点实在手写tomcat的时候衍生出来的东西,想要真正搞懂这个东西,就有此博客。

2024-07-10 16:11:53 1051

原创 第一个合作小项目——新闻模板转换器

这是本人的第一个与团队一起做的第一个项目,之前,写的一般都是用thymeleaf+springboot然后再分页,传参方面都不是特别方便,如今作为一个写后端的大二新生,接触了vue+element UI+springboot 来写项目,发现稍微简单一点,像这种的项目后端的思路和代码实现简直不要太简单,当然,这也可能因为第一次自己从零基础就上手根据vue写的前端页面来写项目,然后在vue的传参跳页面上不会运用,然后找寻资料的时候又磕磕绊绊,才导致写的如此艰难。。

2024-07-05 10:35:15 896

原创 暑假新大二复习--git的使用

在公司中,或者在团队中编写程序的时候不可能都一个用同一台电脑编写,或者用微信传递自己写的部分在做拼接。2.仓库介绍就不说了,但是这个如果为个人写的写的项目,一般都是设置成私有的类型,因为开源的一般审查比较严,为防止一些不恰当的内容和违禁资源。所以项目上要有一个.gitignore文件,里面主要是一些不需要上传到仓库里的文件,这样可以不用一个一个手动上传。此文件用记事本打开,复制里面的ssh密钥配置到gitee中的公钥中。gitee 这个是中国的,访问较快,是中文的。1.写仓库名称,后面的路径会自动生成。

2024-06-30 14:13:29 400 1

原创 详解拼接字符串+和concat区别

进行字符串拼接取决于你的具体需求、代码的可读性以及性能考虑。在大多数情况下,对于简单的字符串拼接任务,“+”操作符可能已经足够好用了。然而,在处理更复杂的字符串操作或需要优化性能的情况下,你可能需要考虑使用。尽管它们都能达到拼接字符串的目的,但它们之间确实存在一些关键的不同点。字符串拼接在编程中是一个常见的操作,而在Java中,我们通常使用“+”或。综上所述,选择使用“+”还是。

2024-03-19 21:05:16 424 1

原创 Java基础总结----第五章set、list、map

/因为集合只能保存引用类型的数据,所以数组使用引用类型指定数组中的元素,所以基本数据类型。//it.hasNext()表示游标,用于判断后面是否还有数据,如果有则返回true,否则为false。//排序的核心使用的是compareTo的方法,例如字符串,是将其转换为字符数组,然后用字符比较。//在指定索引的位置添加一个数据,原位置及后续的数据,往后移。//如果重复添加数据,最后一次的value值会将前面的数据覆盖掉,不会报错。//map集合是以键值对的形式保存数据的,其中建不能重复,而值不做要求。

2024-02-11 18:34:12 369 1

原创 Java基础总结----第四章抽象类,接口,异常

/继承和实现写完的现象是一样的,所以当类实现接口的时候,会自动拥有接口中的所有方法,因此类中会有接口。//finally中写的是受保护的代码,或者说是不管异常是否发生都要执行的代码。//子类继承父类的时候,如果父类中由抽象方法,那么子类就会报错,需要在父类中的抽象方法,如果。// 中的抽象方法,如果不重写接口中全部的抽象方法,那么就要定义成抽象类,否则编译报错。// 没有重写父类中全部的抽象方法,子类就需要定义成一个抽象类,否则编译报错。}//多个catch的时候,父异常不能写在子异常的前面。

2024-02-09 00:15:00 323 1

原创 Java基础总结----第三章字符串、包装类、继承、多态

/编译器优化完为 String s7="qwerdf"String s8="a"+"b"+"c"+"d"+"e"+"f";* 字符数组输出到控制台上,所以输出的是字符串的内容,而普通引用变量调用的是object的tostring方法。//向上转型的实质就是子类中小的那个父类对象,给父类类型赋值,所以是小的数据类型转换为大。//4.返回值类型相同或者协变(协变返回值类型就是父类的方法返回父类的对象,子类的方法返回之类的)

2024-02-08 16:23:06 334

原创 Java基础总结----第二章Java面向对象

第一个参数是一个排好序的数组,第二个是要找的元素。在其他的成员方法中可以直接调用,不需要用对象调用,但是在main方法中,main方法是一个static修饰的静态特殊方法,所以你可以直接调用,需要创建对象来用.调用,同理成员方法也是这么一回事。1.this的第一种用法,在一个方法中,全局变量和局部变量同名时候,可以实际用this解决屏蔽问题,因为this表示对象,对象调用属性,所以直接调用全局变量。//创建一个新的数组,给s赋值,之前的数组变成了垃圾,被回收了,现在这个数组的长度是有元素列表。

2024-02-07 00:15:00 366 1

原创 Java基础总结----第一章Java语法

/main方法为Java程序运行的入口,是Java代码开发的执行的标志和C语言中的int main()同理。上述第三行报错,因为1是int类型,再进行计算的时候,会将C+1全部转换成int类型。//因为有编译器优化,所以在给short和byte赋值的时候,不会报错,但是下方代码报错的原因是。的实质等价于c=(byte)(c+1);* 不同点:作为逻辑运算符的时候&&被称为短路与,当左侧为false的时候,右侧的代码不执行。//不管哪种方法,都是在new 的时候开始内存发生变化,其他时候内存不发生变化。

2024-02-06 11:26:36 849 1

原创 算法技巧记录(java)

小数点前面的0是为了防止像上述例子的0.234这样的如果用#.0000,这样是不行的,会变成.234不过大于1的话就没事了,但是大家还是尽量用#0.0000。其实你简单想想用charAt其实就可以取出来例子中的2,3,但是你有没有想到万一其中的数字是两位?这只是正则表达式的一些基本示例,实际上正则表达式的功能非常强大,可以用来处理复杂的文本模式匹配和替换操作。显而易见是曲最大值和最小值的,支持int ,long,float,double类。除此之外,还有很多有关三角函数的,那些一般很少用到;

2024-01-17 19:23:53 809

原创 蓝桥--0全球变暖

也就是这句:if (a[x][y]=='#'&&a[x+1][y]=='#'&&a[x][y+1]=='#'&&a[x-1][y]=='#'&&a[x][y-1]=='#')其实就是判断这个陆地的周围有没有被其他陆地包围,如果被其他陆地包围了,就不可能被淹没所以这一整块的陆地就不会被完全淹没。本题的题眼就是没有被淹没的陆地的寻找方法;只要解决了这个就可以根据深度搜索做出来了。感觉上是一道比较简单的基础搜索题。

2024-01-17 15:49:48 313

原创 最后一天学习javaWeb——一个困扰我的问题!!

哎,,单纯的我实在是想不明白为什么会这样,难道重新计数不是很好嘛?这样连续下去,不是更好吗?如果重原来的值重新递增那不是会空几个id吗?今天最后一个项目:做一个图书管理的项目,拥有添加图书,修改图书,删除图书,同时像是全部的图书列表。不好的消息是:从明天开始就要上框架了!值,但为了数据的完整性和性能,许多数据库系统不会这样做。值不是重新开始计数,而是从原来的值继续递增。总之,尽管从技术上讲你可以在删除记录后重置。的记录后,新添加的记录的。荣幸不到一小时拿下!

2024-01-13 17:18:53 332 1

原创 写程序中遇到的小问题--Java新手

乍一看,好像没什么问题,但是n定义了两遍,本来是想要定义一个成员变量n,结果在main函数中又重新定义了一个变量n,如果只在main方法中进行逻辑运算的时候,是不会有什么问题的,但当你要在外面弄一个成员方法调用的时候,然后你用了n,你以为你n中是有值的但是其实没有,然后你框框用然后还以为贼对,结果报了一个null的异常。其实这个错误相当不好找,我写的这个其实是好找的,当时我写了近百行的代码,然后就死活找不出来。还好今天突然想偷懒,就定义在了一起,结果报了错,还好及时改正了。看了半天代码,没啥错误啊,结果。

2024-01-11 17:28:19 344 1

原创 黑科技蓝桥杯算法冬令营——栈的练习题

这题思路就是一个栈的模板,没有任何东西。

2024-01-09 17:38:30 359

原创 学习JavaWeb的第三天——一些重要的点

【代码】学习JavaWeb的第三天——一些重要的点。

2024-01-04 18:02:26 344 1

原创 黑科技蓝桥杯算法冬令营——常见错误

1.对于一些小白来说,或者我这样的青光眼患者,经常前几道题目很简单,但就是不看输出的格式,标点,大小写,结果漏掉一点,写错一点,然后就悲催的被罚时。1.可能是public class 后面的类名没有改成Main,有很多的编程网站和算法比赛,像蓝桥杯,洛谷都是有这样的要求。1.你直接暴力枚举,有可能会出现超时,这是可能要你去改进你的算法,或者加入特判,剪枝之类的技巧;2.就是你太菜了,写的代码有问题。3.使用未初始化的指针。2.有可能是栈溢出。

2024-01-02 19:51:21 400

原创 黑科技蓝桥杯冬令营算法训练——栈

从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。由于大家基本为大一的学生,在这里就不用很复杂的写法,就用简单的数组来模拟栈,而且以下讲的都是基本的栈的处理方法,想要深入学习就要等大家去上数据结构这门课了。栈是只有一个开口,底下是封住的,只能从上面进,上面出,就像一个水杯,只能从杯口将水倒进去和倒出来,但由于栈是线性的,所以里面的元素进出栈的规律是。当然一般的算法题不会傻傻的依次出栈,入栈,一般都是穿插的,但其实每个步骤的方法是一样的,

2024-01-02 19:32:50 428

原创 黑科技蓝桥杯冬令营算法训练——二分查找

第一感觉,如果时间允许,暴力枚举是一定可以出答案的,但是这个题目的数据100000,可能会超时,所以我们就可以自然而然的想到运用二分查找来节约时间去寻找那个最大的边长,这样其实就差不多有感觉了。本人也是刚开始写博客,还是不太会写,各方面的都有不足,如果大家发现什么错误的地方或者由更好的方法可以通过私信来与本蒟蒻交流。ans

2024-01-01 19:41:22 381 1

空空如也

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

TA关注的人

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