自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java通过jwt生成Token

JWT(JSON Web Token)简而言之,JWT是一个加密的字符串,JWT传输的信息经过了数字签名,因此传输的信息可以被验证和信任。一般被用来在身份提供者和服务提供者间传递被认证用户的身份信息,以便于从资源服务器获取资源,也可以增加一些额外的业务逻辑所需的声明信息。

2024-07-15 01:08:34 367

原创 Cookie和Session

如果设置了 Domain 属性,浏览器在发送 HTTP 请求时,会检查请求的域名是否包含在该 Cookie 的 Domain 属性中,如果包含,则浏览器会发送该 Cookie。定义:Cookie是存储在用户计算机上的小型文本文件,由服务器发送给客户端(通常是Web浏览器),然后客户端会将Cookie保存并在每次请求时发送回服务器。如果设置了 Path 属性,浏览器会检查请求的路径是否包含在该 Cookie 的 Path 属性中,如果包含,则浏览器会发送该 Cookie。常用于跟踪用户的会话状态。

2024-07-12 02:04:30 425

原创 Axios

SqlSession 对象是线程不安全的,因此它的最佳实践是在每个请求或线程中创建一个新的 SqlSession 实例,并在执行完数据库操作后关闭它,以确保资源的正确释放和避免潜在的资源泄漏问题。在浏览器中所有的连接都是短链接,如果在网站中有登录的操作,那么服务器就很难根据不同的用户展示不同的数据,因为服务器无法识别每一个用户。cookie相当于给每一个用户发送了一个身份证,在拥有身份证以后每一个用户在访问服务器获取相应的数据时都携带上自己的身份证以便服务器进行识别。请求指定的页面信息,并返回实体主体。

2024-07-10 00:56:58 604

原创 axios和Mybatis

发送 PUT 请求通常用于更新服务器上的资源。在这个例子中,我们向发送了一个 PUT 请求,更新了 ID 为 1 的文章数据发送 DELETE 请求通常用于从服务器删除资源。在这个例子中,我们向发送了一个 DELETE 请求,删除了 ID 为 1 的文章。以上使用的都是别名。MyBatis 是一个持久层框架,专注于将 Java 对象与关系型数据库的记录进行映射,通过 XML 或注解配置 SQL 查询语句,简化了与数据库的交互过程。

2024-07-08 01:33:35 438

原创 【无标题】

Servlet 容器根据请求中的 URL 或其他条件找到对应的 Servlet,并创建一个 Servlet 实例(第一次使用ervlet时)。继承servle必须重写三个方法(init、service、destroy),init方法在创建servlet对象的时候会调用并且只会调用一次,service方法在每一次被访问的时候都会去调用,destroy方法在释放servlet对象时运行。Flexbox(弹性盒子)是一种用于布局设计的 CSS 技术,它提供了一种更加灵活的方式来组织、对齐和分布容器中的项目。

2024-07-05 08:05:50 383

原创 7.2学习总结

java是动态加载的语言,因为设计者并没有限定Class一定是从磁盘来的,也可能是网络,也可能是压缩包,总之Class是符合规则的二进制代码就行,剩余的建立对象的任务都会交由JVM虚拟机来建立,而且每个Class一定是独一无二的.所以反射最重要的用途就是开发各种通用框架。记住,用这三种方法获取的Class永远的只能获取且仅有的一个,所以这三种方式获取的Class类都是一致的(内存地址相同)答:Class是一个类,小写的class代表这是个类型,大写的Class代表了这个类的名称。

2024-07-03 01:48:15 335

原创 JavaScript

在建立JSON格式的字符串之后无法直接的进行使用要使用JSON.parse()函数把字符串变成JSON对象才可以作为对象进行使用,如果重新转化为字符串也需要使用相应的函数JSON.stringify()把对象转化为字符串。使用起来很像双列集合,都是一个key对应唯一一个value,但是JSON对于不同数据类型的value有不同的格式要求,这点在使用的时候需要注意,要牢记value对于不同的数据类型的格式要求。- location对象提供了当前URL的信息,并允许你重定向浏览器到新的URL。

2024-06-20 23:40:40 666

原创 HTML学习和JAVAScript学习

Javascript对变量类型的要求不高变量可以存放不同类型的值,所以统一使用。和java大致一样,有小部分不同就是每行代码结尾的分号可有可无。输入用户名和密码点击提交之后数据会显示在url之后,可以被看见。cellspacing:规定单元之间的空间。外部js文件的后缀名要求是.js。定义表格的行,必须嵌套在<table>中。js中的数组的特点是长度可变,类型可变。定义标题单元格,必须嵌套在<tr>中。定义表格整体,可以包含多个<tr>width:规定表格的宽度。定义单元格,必须嵌套在<tr>中。

2024-06-18 22:58:08 295

原创 HTML的常用标签

a标签可以从一个页面链接到另一个页面,就是常用的超链接。

2024-06-17 08:18:38 284

原创 javaweb和Mysql学习

在绝大多数情况下,我们不需要在使用索引时去操心使用什么索引类型比较好,数据库会自动的根据你创建的索引和查询的需求来选择合适的索引类型,我们只需要专注于创建合适的索引。当你执行查询语句时,数据库引擎可以利用索引来快速定位符合条件的数据行,从而减少了数据检索的时间。空间索引是 MyISAM 引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。不同的数据库管理系统支持不同类型的索引,每种索引类型都有其适用的场景和性能特点。如果不加 CREATE 后面不加索引类型参数,则创建的是常规索引。

2024-06-13 23:55:01 389

原创 6.9学习总结

先开起事务(标记一个事务的开始),然后执行想要在一个事务中运行的语句,最后可以根据情况选择提交事务(事务运行成功,数据改变)或者回滚事务(事务运行失败,数据回到开始事务之前),至此一个事务结束。幻读:一个事务读取到了另一个事务中已提交的插入或者删除的数据。不可重复读:一个事务读取到了另一个事务中已提交的被改变的数据,导致了对同一条数据进行多次查找得到不同结果。脏读:一个事务读取了另一个事务中未提交的数据,导致得到了不一致和不准确的数据。多个事务同时运行时,一个事务读取到了另一个事务未提交的数据。

2024-06-12 07:33:34 472

原创 6.6学习总结

ignore关键字:在使用update和insert关键字进行多列修改时只要有一列的修改数据出现错误那么整个update语句的修改都会被撤销(已被修改的数据会被回溯成没有修改之前的值),为了在出现错误时也可以进行修改,遇到重复插入可以不进行插入,就会使用到ignore关键字,可以使update和insert在发生错误时也可以运行。注意:不同类型的引擎之间的表不能混合引用,即使用一个引擎的表不能引用具有使用不同引擎的表的外键。这样插入的数据会根据你的给出的顺序插入,如果想只对最后一个数据进行插入就很难做到。

2024-06-07 00:28:00 968

原创 6.4学习总结

缩短SQL语句允许在单条SELECT语句中多次使用相同的表。

2024-06-04 22:38:30 642

原创 数据库学习总结

函数说明AVG()返回某列的平均值COUNT()返回某列的行数MAX()返回某列的最大值MIN()返回某列的最小值SUM()返回某列值之和例:AVG函数:COUNT函数:MAX函数:MIN函数:SUM函数:以上的五个函数都有以下用法对所有的行执行计算,指定ALL参数或不给参数(ALL为默认)只包含不同的值,指定DISTINCT参数如果指定列,那么distinct只能用于count函数,且distinct只能用于列名。例:(X)(√)

2024-06-02 23:09:59 926

原创 Mysql学习

单个字段:select 字段名 from 表名;多个字段:select 字段名,字段名 from 表名;搜索多个字段时,字段名之间使用逗号隔开所有字段:select * from 表名;搜索所有字段时使用 '*' 替代字段名搜索不同的行:select distinct 字段名 from 表名;distinct关键字必须放在所有的字段名之前,不能放在部分的字段名之前;限定返回结果的行数:select 字段名 from 表名 limit 行数;

2024-05-30 22:29:02 1122

原创 5.28学习总结

hashcode():在Object里这个方法是通过返回地址的整数值来生成哈希值。equals():在Object里这个方法是通过比较他们的内存地址来确定两个对象是否相同。hashcode的时间复杂度为O(1)(因为只要计算一次哈希值就行了),equals的时间复杂度为O(n)(因为要比较每一个值),所以在比较是否相同时要优先使用hashcode方法获取的值是否相同。当输入样本量足够大时,不相同的对象调用hashcode是会产生相同输出的,也就是形成哈希冲突。

2024-05-29 01:02:13 453

原创 复习java5.26

String类是不可改变的,在保存字符串时使用的是byte数组来进行存储的,而这个数组是使用final进行修饰的,所以String类是不可以改变的,对String类进行+运算则是生成了一个新的变量。继承:从已有的类中派生出新的类(新的类继承旧的类,旧的类叫做新的类的父类),新的对象具有父类的属性和方法并可以具有自己独有的属性和方法,java中继承是单继承(每一个子类都只能有一个直接的父类)如果传输的是对象,那么传输的是对象引用的副本,在方法中改变对象的值,那么对象引用的值也会和方法中一样。

2024-05-26 22:43:37 1306

原创 java学习和项目总结

JRE:JRE是Java 运行时环境,主要包括了两个运行需要的组件:JVM 和 Java 核心类库,如果不进行java开发只想运行就可以只下载JRE。而Java语言,它的代码会先通过javac编译成字节码,再通过jvm将字节码转换成机器码(0和1)执行,即解释运行和编译运行配合使用,所以是混合型。在程序运行之前,通过编译器将源程序编译成机器码可运行的二进制,以后执行这个程序时,就不用再进行编译了。JVM:JVM是java进行编译的虚拟机,是Java 能够跨平台运行的核心。特点:执行速度慢、效率低;

2024-05-24 02:08:26 940

原创 学习通项目总结:

暴露出来的需要加强的:自我学习能力太差,java的基础知识不牢固(看书做笔记看资料),对数据库的使用掌握的太少了(看Mysql必知必会),对项目的结构与规范不了解。选择题,先要能保存做题目的进度,老师那边要提供正确答案每一题的分数,所有的题目都要显示正确的答案、错题集(选择题)、老师可以修改学生的签到状态。4.对数据库的认识太少了,就只使用了最简单的增删改查,相关的知识点了解的太少。5.对项目的结构没有一个很好的认识,导致在完成功能点的时候走了很多的弯路。2.只是做了基础的功能点没有自己的想法(没有创新)

2024-05-22 00:59:45 158

原创 5.15项目进度总结

实时显示的思路:在登录后开一个线程用一个socket去链接服务端并查询需要实时的信息,同时服务端把这个socket记录下来(标记为用来更新状态的socket),然后客户端就可以进入循环开始等待服务器发送消息了,服务端只要一但进行了需要同步消息的操作就判断该操作是否需要客户端进行更新数据或是只需要跳出提示框,若要更新就向所有最先记录的socket发送一个消息”让他们来服务器更新消息“。今天完成了随机选人和实时显示的功能(还需要维护),使得程序可以对用户的操作进行实时的显示。

2024-05-15 01:44:33 251

原创 5.13总结

在登录后开一个线程用一个socket去链接服务端并查询需要实时的信息,同时服务端把这个socket记录下来(标记为用来更新状态的socket),然后客户端就可以进入循环开始等待服务器发送消息了,服务端只要一但进行了需要同步消息的操作就判断该操作是否需要客户端进行更新数据或是只需要跳出提示框,若要更新就向所有最先记录的socket发送一个消息”让他们来服务器更新消息“。这个问题是使用同一个ObjectOutputStream和ObjectInputStream向一个地方进行多次写入后读取时信息不对等导致的。

2024-05-13 15:40:52 197

原创 项目总结和图

发布资料:在客户端获取到文件的地址之后创建一个资料的实类来保存资料的详细信息(编号、名字(包括后缀)、对应的班级编号、文件大小),把这个实类发送到服务端服务端把从实类中把信息提取出来然后保到对应的表中,客户端通过获取到的地址把这个文件发送到服务端,服务端接收并将其保存到对应的文件夹下,接受完毕后服务端发送一个信号发送给客户端。注册:用户自由设置密码、邮箱、昵称和真实姓名(正则判断)注册成功后显示使用雪花算法获取到的账号,邮箱获取到验证码之后一分钟内不能再点击,验证码五分中内有效。自动获取老师id和姓名。

2024-05-11 11:28:30 347

原创 【无标题】

fxml文件中的JavaFX控件在Java文件中绑定,在Java类的构造函数中还没有初始化,所有的控件还都是null,如果Java类实现了Initializable接口,则在构造函数之后自动调用Initializable接口的方法,此时JavaFX控件已经初始化,就可以可以进行设置了。先在服务端用一个集合将需要的数据从数据库里提取出来,再将这个集合通过网络传输到客户端最后使用ListView的方法将它显示出来就行了,难的是如何双击对应的ListView的行来进入对应的课程页面。

2024-04-29 01:12:59 204 2

原创 java4.23学习总结

下载两个发送邮件的包并导入到java:activation-1.1.1.jar,javax.mail.jar;然后我们只要通过类名来调用这个类中的sendEmail(to)静态方法就行了。

2024-04-23 23:47:43 243 2

原创 JDBC学习

PreparedStatement是Statement的升级版作用是预编译SQL语句并执行,防止恶意的SQL注入;executeQuery(sql):用来执行查询的操作,查询的结果借助ResultSet对象来访问;Statement唯一的作用就是用来执行SQL语句,在使用是还有被恶意SQL注入的风险。这个方法用于与数据库建立链接,参数分别是数据库的地址,用户名,用户的密码;这一行的作用就是注册Mysql驱动(把我们下载的jar包加载到内存里去)getXxx(参数):参数是你需要的数据表的字段。

2024-04-21 23:45:29 407

原创 4.18学习总结

现在有两条线程在运行,其中一条线程可以创造一个特殊的数据供另一条线程使用,但这个数据的创建也有要求:在同一时间只允许有一个这样的特殊数据,那么我们要怎样去完成呢?如果用普通的多线程在理想环境下(也就是两个线程分别每个抢到一次)可以完成,但是很多时候没有这么美好,如果任意一个线程连续运行就会发生错误。我们可以让线程在运行的时候去判断这个特殊数据是否存在,然后再去根据这个结果去运行程序或是放弃占用CPU让另一个线程运行就行了。该程序实现了多个客户端与服务端的多次通信。

2024-04-19 00:20:10 488

原创 4.14java学习总结

注意:每一个要被序列化写入文件的对象都要实现Serializable这个接口,实现这个接口不需要去重写任何方法,仅仅只是做一个标记而已,在做这一个标记的时候,系统会根据类中所有的内容来自动的分配一个唯一的long类型的记号,序列化和反序列化就是根据这与这唯一的记号进行的,当类发生变化的时候记号也会发生改变,这是因为文件中的记号与java中的不匹配就会报错。在这里我们发现输出跟我们想的有点不一样,在写代码最后的,输出“主线程”的语句反而第一个运行,这跟java的线程的实现有关;

2024-04-14 23:22:56 1230 1

原创 4.11java学习总结

因为不同平台的换行符号是不一样的(mac:\r,windows:\r \n,Linux:\n)这个方法会自动根据你所使用的系统自动的去输出换行符号。除了创建对象有点不一样其他的使用都是和FileInputStream、FileOutputStream一样的在此就不过多介绍了。缓冲区大小为8192(char),运行速度没有得到显著的提升,主要是多了两种特有的方法。其他的和FileReader、FileWriter一样的。按每次获取的字节大小分为字节流和字符流.返回值为读取或的字节的个数。

2024-04-12 00:08:52 975

原创 4.9java学习总结

Object是类结构中的根(顶级父类),几乎所有的类都是它的子类,所以所有的类都拥有他的方法,所以一般都要求使用之前重写Object中要使用的方法。3.如果Lambda表达式的方法体只有一行,(大括号,分号,return)(要省略必须一起省略)可以省略不写;Stream是一种工具类,借助Stream流可以让我们更方便的处理集合完成(筛选,排序等操作)中间方法的返回值为一个新的Stream流,旧的抛弃不用所以要用链式编程;Lambda表达式只能简化函数式接口的匿名内部类的接口.

2024-04-09 23:28:53 1327

原创 4.6java学习总结

注意:1.泛型中不能写基本类型数据.2.指定泛型的具体类型后,传递类型时可以传递该类型或其子类类型.3.如果不写泛型,类型默认为Object.我们在程序中加入泛型//创建链表//添加数据//遍历集合里的每一个元素运行结果。

2024-04-07 23:41:26 369

原创 bfs例题

爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在 x1,y1 处,车站在 x2,y2 处。现在给出一个 n×n(n≤1000) 的地图,00 表示马路,11 表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(每两个相邻坐标间距离为 11)。

2024-04-07 19:28:32 331

原创 4.4java学习总结

数组能保存基本数据类型和引用数据类型,集合比他广泛,集合能保存数据类型(对象),但不能保存引用数据类型,要注意的是当保存的是基本数据类型时会自动将它装箱变成对象.写在成员位置,属于外部类的成员,与成员内部类相似只是多了一个static进行修饰,可以说它是一种特殊的成员内部类.其中只有int和char的包装类需要特殊记一下其它的包装类都是对应的基本数据类型的首字母大写得出来的.当要用数组保存的数据的数量未知时,就可以用集合来保存,集合会自动增加内存所以不会出现内存不够用的情况.

2024-04-04 23:08:47 732

原创 4.2学习总结

final关键字用于修饰类,变量和方法,被final关键字修饰的类,变量和方法不可被改变,事实上被final修饰的变量一旦获得的初始值就不能被重新赋值,而被final修饰的方法不能被重写,但final修饰的方法可以被重载只是不能重写而已,final修饰的类不能有子类.''==''在对基本数据类型进行比较时比较的是变量所保存的值,当==对引用数据类型进行比较时也使用统一规则,但此时引用类型变量所保存的是地址值,所以此时==比较的是他们的地址值.remove():删除集合内的元素。ArrayList类。

2024-04-03 01:17:37 1083

原创 未来两周的学习计划

1.把java的面向对象和集合,接口全学完,对基本类库有了解,争取把泛型学完.3.每天最低写一道算法题,最好写两道算法题,打每周的cf.3.每天最低写一道算法题,最好写两道算法题,打每周的cf.2.每天记三十个单词,中午复习,周末复习.4.跟着学长,学姐的讲课把javafx学完。2.每天记三十个单词,中午复习,周末复习.1.学完异常处理,泛型,线程,网络编程.在这两周内学完java.

2024-04-01 00:26:37 164

原创 3.31学习总结

使用dfs,对蛋糕每层可能的高度和半径进行穷举.通过观察我们可以知道第一层的圆面积是它上面所有蛋糕层的圆面积之和,所以我们只要去求每层的侧面积就行了.因为题目要求Ri > Ri+1且Hi > Hi+1,所以我们可以求出每层的最小体积和侧面积,用两个数组分别储存起来.然后进入dfs我们从最上层开始对每层的高度和半径进行穷举,要注意的是这道题有很多的剪枝要做不然就会超时.剪枝1:如果接下来每一层都按照最小的来算,依然大于了总体积则可以剪去.

2024-03-31 22:50:53 1008

原创 3.28学习总结

封装体现了java的面向对象的特点,用户不用知道程序是如何运行的,只用按照所给的格式输入参数,便可得到对应的结果.一个完整的封装需要每个实例变量都用private来修饰并拥有相应的public getter和setter方法.

2024-03-28 21:51:56 555

原创 3.26学习总结

/实例变量//类变量int t;//局部变量elseSystem.out.println("错误");

2024-03-26 23:41:19 551

原创 学习总结3

利用dfs进行遍历,直到无法遍历就把此次遍历解出的题目与最大值进行比较,遍历完后输出最大值。初步了解了方法的定义与使用。

2024-03-25 00:30:15 234

原创 学习总结2

这道题用bfs就行了.以两个人为起点对全图进行搜索,用一个数组保存到每一个地方所用的最短的步数.最后比较两人到所有的kfc所用的步数的总和输出最小的就行了.用bfs进行搜索,标记A罐B罐所保存的水的出现情况,当再次出现的时候停止搜索,然后用数组模拟链表进行保存路径.最后输出.

2024-03-21 22:46:15 299

原创 学习总结1

这两天对搜索(主要是dfs)进行了复习,写了四道题目.

2024-03-19 23:07:12 219

空空如也

空空如也

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

TA关注的人

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