自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java高频面试题—基础常见题总结

Java常见面试题—有关基础数据类型的所有高频面试题

2025-03-06 04:29:41 837

原创 【深入理解JWT】从认证授权到网关安全

当我们输入了用户名和密码,点击”登录“,网站服务器验证你的凭证.......账户登录成功背后的流程是怎样的?

2025-02-26 13:25:29 1362

原创 OAuth2协议的大致介绍【入门】

Spring Security支持OAuth2认证,并提供授权码模式,密码模式,简化模式,客户端模式等四种授权模式,前面微信扫码登录的例子就是基于授权码模式。传统方式存在密码共享风险,如果要跨平台登录,用户需将账号密码交给第三方应用,存在泄露风险,而密码一旦泄露,攻击者会访问用户的所有资源,另外,用户如果修改密码,已登录所有第三方密码便会失效,用户体验极度不好。简单理解是使用授权码去获取令牌,要想获取令牌先要获取授权码,授权码的获取需要资源拥有者亲自授权同意才可以获取(如用户点击允许登录)

2025-02-25 00:46:36 641

原创 Spring Security功能概述和相关介绍

Spring Security默认使用BCrypt加密算法,基于哈希的加密算法,这里演示使用BCryptPasswordEncoder加密器类进行加密,通过统一加密工厂PasswordEncoder-Factories获取加密器进行加密

2025-02-24 12:09:56 935

原创 【分布式事务】理解CAP定理及具体场景下的AP方案实践

最近遇到了要对系统中的新课程进行发布的操作,为了提高网站速度优化性能,需要将数据同步到多个不同的存储系统中

2025-02-21 13:30:47 916

原创 【分布式系统】幂等性

在计算机科学和数学领域中,” 幂等性 “虽然源于相同的概念,但其应用和具体含义有所不同。

2025-02-19 22:23:34 596

原创 分布式架构与XXL-JOB

通过这种XXL-JOB的分片机制,可以用于处理视频转码,视频审核,视频分发等任务,将大量视频处理任务均匀分配给多个执行器,保证任务的高效执行和不会重复处理

2025-02-19 09:58:38 1014

原创 Java-断点续传 【文件分块】

引用百度百科:对断点续传的定义个人理解:如果我们要在项目的媒资管理部分,上传视频文件(通常这类视频文件都比较大),http协议本身对上传文件大小没有限制,但是客户的网络环境质量,电脑硬件环境参差不齐,可能会导致一个大文件快上传完了出现断网的情况,从而导致文件没有上传成功,需要客户重新上传,用户体验非常差,所以对于大文件上传的要求是能做到断点续传1.前端上传完先把文件分成块2.一块一块的上传,上传中断后重新上传,已上传的分块则不用再上传3.各分块上传完成最后在服务端合并文件。

2025-02-14 14:44:15 1085

原创 分布式文件系统的概念和MinIO高性能对象存储服务

它能够提高高吞吐量的数据访问,非常适合在大规模数据集上应用,HDFS的文件分布在集群机器上,同时又提供了副本进行容错以及可靠性保证,例如客户端写入读取文件的直接操作都是分布在集群各个机器上的,没有单点性能压力。主要应用场景有设计大数据分析,和作为数据源的基础存储层,并且适合存储大量的日志数据,能够供后续分析使用,也可以用在存出训练数据和模型支持分布式的机器学习,尽管它在低延迟访问和小文件处理方面存在局限性,但高吞吐量,高容错性和低成本的优势能够在大数据领域占据高地位。

2025-02-10 16:07:41 886

原创 了解Spring Cloud Gateway让微服务API网关难题迎刃而解!

前端需要调用多个后端服务,但每个服务的地址、协议、路径各不相同,导致客户端代码复杂且难以维护?

2025-02-07 08:00:00 286

原创 Java的常用注解,自定义注解以及JSR-303标准介绍

而JCP官方除了在JDK中提供并实现@Override等基本注解和功能之外,还规范了一系列的注解标准,可以由其他容器或框架去实现,例如Java平台的公共注解标准(JSR-250),依赖注入的注解标准(JSR-330),和为Bean数据合法性校验提供的标准框架(JSR-303)@Target:指定注解可以应用的程序元素类型,例如类,方法,字段等,能通过ElementType枚举类型来指定,例如@Target(ElementType.METHOD)表示该注解只能应用于方法。

2025-02-05 15:13:43 282

原创 Maven问题全攻略:常见问题与应试技巧(持续更新)

作用是执行项目中的单元测试,Maven会在src/test/java目录下查找测试代码(通常是使用JUnit等测试框架编写的测试类),并运行这些测试,测试结果会在控制台输出,并且Maven还会生成详细的测试报告,存储在target/surefire - reports目录中。比如我们只需要依赖B的1.0版本,但是我们的项目去依赖C的时候,C却依赖了B的2.0版本,这时候如果我们项目依赖了C,就间接依赖了B的2.0版本,这时我们就可以在依赖C的时候使用exclusions这个标签把B的2.0版本排除掉。

2025-01-20 09:15:00 851

原创 Java中的Servlet

Servlet是Java编程语言中用于开发服务器应用程序的一个重要技术,它是运行在支持Java的 Web服务器或应用服务器上的小型Java程序,Servlet主要用于处理客户端的请求并生成响应,是Java企业级开发的核心组件之一,尤其在构建动态Web应用程序时发挥着重要作用。以下是一个简单的 Servlet 示例,展示了如何接收用户的登录请求,验证登录信息,并根据结果生成相应的响应。的结果,输出不同的 HTML 内容,若登录成功,显示欢迎信息,若失败,显示错误信息。

2025-01-03 17:10:05 369

原创 DOM&BOM-制作网页特效

在以上代码添加了循环,并定义了颜色值,颜色值与用于保存信息的doms值下标一样,所以设置循环,每次循环,将颜色赋给doms里的值。可以看出以上也是一个类数组对象,用于表示文档树中的节点集合,NodeList对象包含了一组节点,这些节点通过DOM方法获取的,这个图显示的是p标签详细的细节,但只显示了一小部分,还有很多很多没显示出,它的结构是非常常复杂的,我们只需要掌握一部分。节点:网页中所有内容,在文档树中都是节点(标签,属性,文本,注释),使用node表示。我们现在找百战成诗标签。

2024-12-16 13:19:41 645

原创 [ JAVA]介绍JavaScript

一定不能用 .k,因为 .k的k是固定的名字,而这里的k是固定的变量,第二次循环将age保存到k里面,然后输出star[k]就是18,....ECMAScript:JS基础语法(比方js中如何声明变量常量,定义对象,包括流程控制里的分支,然后循环如何去写,都是由ECMAScript定义的)在ECMAScript基础之上,还分为DOM(文档对象 )和 BOM(浏览器对象)在JavaScript中,对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串,数值,数组,函数等。

2024-12-15 17:08:55 973

原创 [JAVA] MyBatis日志管理与动态SQL

比如我在这里搜索笔记本电脑,在默认情况下淘宝能搜出不同规格的笔记本电脑,搜索框下面还有很多子搜索项,比如按显卡型号和品牌进行筛选,这些子筛选就是在原始笔记本电脑这个SQL条件上再额外增加对应的筛选条件,对于这种在指定场景下进行动态组织条件的SQL语句我们称为动态SQL,在MyBatis中,对于动态SQL,有着良好的支持,使用起来也很简单。日志在我们任何一个系统中都必不可少,MyBatis在我们系统运行过程中,在后台也产生了各种各样的运行日志,本章我们来学习MyBatis中如何进行日志的处理。

2024-11-27 19:23:25 962

原创 [JAVA]MyBatis框架—获取SqlSession对象

假设我们要查询数据库的用户信息,在MyBatis框架中,首先需要通过SqlSessionFactory创建SqlSession,然后才能使用SqlSession获取对应的Mapper接口,进而执行查询操作

2024-11-16 17:20:29 1608

原创 [JAVA]MyBatis环境配置介绍

什么是MyBatis环境配置?MyBatis是基于JDBC对数据库进行操作,在我们进行数据操作时,我们需要告诉MyBatis我们连接哪个数据库,ip地址,数据库名称,用户名密码等。以此来进行环境配置

2024-11-15 17:06:17 598

原创 [JAVA]Maven项目标准结构介绍

Maven是一个强大的项目管理和构建自动化工具,主要用于Java项目,也可以用于其他基于JVM(Java虚拟机)的语言项目,它的作用介绍如下

2024-11-08 15:38:22 1301

原创 [JAVA]JDBC的手动事务开发技巧—实现批量增加员工

对于这个需求,目前我们的数据库是无能为力的,因为我们在代码编写的过程中,我们并没有设置JDBC的事务模式,在默认的情况下,JDBC 会使用自动提交的方式,自动提交的含义是前面执行的过程中,每执行一次Update,立马对数据进行提交,所以即便是循环在了1005次时,抛出了异常,因为前面的五条数据已经完成了提交的工作,因此在我们数据表中。在我们的for循环完整执行以后,我们需要手动的调用conn.commit (),才可以对我们的事务区的数据进行提交,真正的写入到表中。

2024-11-02 20:07:22 1057

原创 [JAVA]JDBC事务管理方式

事务是以一种可靠的,一致的方式,访问和操作数据库的程序单元(说人话:要么把事情做完,要么什么都不做,不要做一半)。事务是依赖于数据库实现,MySQL通过事务区作为数据缓冲地带。事务的提交操作以上图是Java中的JDBC应用程序 远程操作 数据表,在MySQL中因为有事务区的存在,所以JDBC应用程序写入数据时,并不是直接把数据放到数据表中,而是先把它放到事务区里。如果数据很小的情况下,这个事务区中的数据放在内存中加快处理数据,但如果事务区比较大的时候,它往往会写入到硬盘。

2024-10-29 19:13:46 1006

原创 [JAVA]JDBC如何实现写数据?——利用Java更新与删除MySQL中存储的数据(下)

在日常工作中,如果需要更改公司员工信息数据,或者需要删除一些离职员工信息数据,在这种场景下,我们如何实现对员工数据库的一些更新删除操作呢?4.根据executeUpdate()方法将受影响的行数赋给cnt变量,例cnt值为1则代表数据更新成功,反之,更新不成功。4.根据executeUpdate()方法将受影响的行数赋给cnt变量,例cnt值为1则代表数据删除成功,反之,删除不成功。方法用于执行SQL的插入,更新或删除操作,并返回受影响的行数,将返回值赋给cnt变量,这样可以知道有多少行数据被更新了。

2024-10-28 20:46:41 491

原创 [JAVA]JDBC如何实现写数据?——利用Java新增MySQL中存储的员工字段信息(上)

是一个用于操作数据库的工具类,它提供了一些便捷的方式来执行SQL语句,获取数据库连接等。设置SQL语句中的参数,第一个参数是参数的位置索引,从1开始。通过这些方法,可以将Java变量的值绑定到SQL语句中的参数,确保SQL语句的动态性和安全性。如果插入成功,通常返回值为1。得到的是一个Connection对象,他会抛出俩个异常,故用try—catch进行捕获,同时将Connection对象在try块外面进行声明。输出一条提示信息,表明员工的入职手续已办理完成,使用了参数ename来显示员工的名字。

2024-10-24 00:13:19 594

原创 [JAVA]IDEA演示使用PreparedStatement预编译接口防止SQL注入攻击

PreparedStatement 预编译Statement是Statement的子接口,作为这个对象它可以对SQL进行参数化,预防SQL注入攻击,而且PreparedStatement比Statement执行效率更高。这段代码创建了一个SQL查询语句字符串,该语句的目的是从名为“employee”的表中查询所有满足特定部门名称(dname)条件的记录。参数的索引从1开始,这是java中处理预编译语句参数的方式。这段代码执行预编译的SQL查询语句,并返回一个结果集rs,其中包含了满足查询条件的所有记录。

2024-10-20 13:41:28 1094

原创 [JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入

File类是java.io包下代表与平台无关的文件和目录,程序中操作文件和目录,都可以通过File类来完成。通过这个File对象,可以进行一系列与文件相关的操作,比如判断文件是否存在,获取文件属性,读取文件内容,写入文件内容,新建,删除,重命名文件和目录。运行结果显示:运行结果显示:通过File对象对文件本身的操作,比如实现了对于文件的创建,文件的删除等等,但是对文件的内容,作为File对象它是无能为力不能进行操作的,我们只能通过字节字符流实现文件读取与写入1.字节输入流读取二进制文件。

2024-09-16 18:42:01 1754

原创 [JAVA]初识线程池及其基本应用

在Java并发包中一个最核心的组件是线程池 ,在了解线程池之前,我们需要知道Runnable接口的弊端。

2024-08-24 17:39:40 664

原创 [JAVA] 什么是Java线程同步机制?

我们能够发现,无论多少人在下面等待抢绣球,但最终,只有一个人能拿到这个绣球,成为唯一的幸运儿。在这个例子中,就是一个典型的同步机制。

2024-08-24 17:13:19 924

原创 [JAVA]创建多线程的三种方式与区别

创建一个ThreadSample2类,再定义内部类Runner ,这里不再像上面方法继承Thread类,而是实现一个Runnable接口,Runnable接口它提供了一种定义可执行任务的方式,用来实现多线程处理程序,在Runnable接口中必须要实现一个方法(run方法),此run方法与以上run方法体类似,这里只需注意在打印语句中对于当前线程名字的描述。这段代码在run方法中调用了Random用于生成随机数的类,然后使用nextInt(10)方法,生成0 — 9的随机数,这个生成随机数将作为速度的数组。

2024-08-21 09:57:54 821 1

原创 [JAVA]什么是泛型?泛型在Java中的应用

所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型

2024-08-21 09:31:08 1388

原创 [JAVA] 应用Collections实现集合List排序

按照默认情况下,list中的数据按照我们插入数据顺序排序,但在实际开发中,我们时常需要对数据进行排序操作,这里我们就可以学习利用Collections接口实现排序操作。ArrayList是List接口的一个实现类,通过使用new ArrayList()来创建一个具体的ArrayList对象,并赋值给List类型的引用变量list。针对sort方法,默认实现的是升序排列,如果要实现降序排列 ,则在以上代码的基础上新加一个内部类SampleComparator。在Java中创建了一个整数类型的列表对象。

2024-08-19 14:51:29 502

原创 [JAVA] Java中如何使用throws语句声明异常类型

在程序编写的过程中,我们编写捕获和处理异常的代码块去规避可能出现的风险,同时也可以利用它去完成一些程序的逻辑和项目当中需要某些特殊需求和特定任务处理。可以看出,利用throws在方法体中抛出可能出现的异常,然后调用时用try—catch就可以捕获出用户可能输入错误的数值。如果我们预测这段方法体代码可能出现多种不同类型的异常,我们可以通过多异常抛出的方法,通过逗号,间隔多种异常的类型。当方法抛出异常列表中的异常时,方法将不对这些类型及其子类类型的异常作处理,而抛向调用该方法的方法,由他去处理。

2024-08-17 18:05:04 1348

原创 [JAVA] Java中有关代码异常的处理和语法

所谓异常,指的是程序上的错,我们在编写程序的过程中时常会发生代码出现错误的行为

2024-08-16 10:37:28 903

原创 [JAVA] 有关Java内部类介绍

在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类,当我们进行实例操作时,内部类的信息获取需要通过外部类才能获取访问

2024-08-16 09:51:35 1115

原创 [JAVA] 什么是多态?多态的使用和代码实现(超详细版)

在JAVA中,多态是面向对象编程的重要特征之一

2024-08-13 14:48:05 1805

原创 [JAVA] 有关Super关键字

我们知道,子类既可以继承父类的方法,同时也可以重写具有自己特色的方法,那么,该如何判断在子类中调用的是方法是继承自父类还是自己重写的方法呢通过代码测试,我们可以写定义一个动物类Animal及它的子类,并在其子类中重写父类的相关方法既在父类和子类中都定义run()方法,最后调用,看是哪个类中的run()方法被实现。然后我们一样在子类Cat 中同样写一个run()方法,然后将run()方法写入eat()方法里,在Test类中调用eat()方法。

2024-08-07 17:34:23 811

原创 [JAVA] 实现继承与继承的重写

通过extends实现继承方法

2024-08-06 15:28:04 639

原创 [JAVA] 编写学生信息表,并通过方法实现学生与专业关联

首先需要新建项目,在项目中建立两个包,分别存放学生信息,学科信息和测试信息,在项目中建立包主要是为了避免项目中有很多类时,产生命名冲突,包也有助于将相关的类分组在一起,使项目结构更清晰,也可以控制访问权限,便于模块划分和复用等。在学习了封装和无参构造,多参构造方法和各种方法调用后,编写了以下如图所示的一个简单的学生信息管理,下面将一步步分析如何实现利用多类之间的方法调用来实现表。在这里我建立了两个包,分别有Student,Subject类和SchoolTest类。分别存放相关专业学生信息类和测试类。

2024-08-05 23:30:00 467

原创 C语言—冒泡排序算法

【代码】C语言—冒泡排序算法 有序数组升序排序。

2024-07-25 01:02:23 123

原创 C语言练习-从字符串中删除出现的所有字符c

定义squeeze函数(操作字符串,删除的字符c),定义i,j,for循环字符串s[i] 不等于结束符为循环条件,然后 if 判断语句s[i]!=c ,将满足要求的字符串赋值给s[j],s[j]++首先,需要写主函数main,定义删除操作的字符“c”,再定义执行的字符串“abcd”,调用将要写的自定义函数squeeze,输出打印操作后的字符n。重新编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除。最后手动添加字符串结束符。

2024-07-16 23:28:10 270

原创 c程序设计语言 —基础知识概括

1-1 变量与算术表达式编写程序,使用公式打印华氏温度与摄氏温度对照表以上printf中的转换说明%3.0f表明待打印的浮点数(既fah)至少占3个字符宽,且不带小数点和小数部分;%6.1f表明另一个待打印的数(cel)至少占6个字符宽,且小数点后面有1位数字。%d 按照十进制整型数打印%6d 按照十进制整型数打印,至少6个字符宽%f 按照浮点数打印%6f 按照浮点数打印 至少6个字符宽%.2f 按照浮点数打印,小数点后有两位小数。

2024-07-07 23:54:10 780

空空如也

空空如也

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

TA关注的人

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