自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2025恒生电子暑期Java实习

面试时间很短,问了项目的技术点是怎么实现的,我还说了说项目的优化方向,不到20min结束。3.19 来我们学校宣讲,感觉不错就随手投递了当时说4月中旬笔试。四道SQL,都挺简单的,把牛客SQL题刷一遍就会。感觉难道还好,比上次做的淘天的笔试简单多了。希望能拿offer,再过几天出结果,等着吧。计算机基础+软件工程+Java基础。全是不定项选择 一题4分。

2024-04-22 21:37:20 155 1

原创 Spring之AOP实现流程

2024-03-18 16:08:06 227

原创 基于JWT登录思维导图

2024-03-18 16:07:12 87

原创 Java之NIO思维导图

2024-03-17 22:55:00 330

原创 JVM之垃圾收集思维导图

2024-03-17 21:44:38 92

原创 Java之CompletableFuture思维导图

2024-03-17 21:43:58 532

原创 Java之JMM思维导图

2024-03-16 15:10:19 107

原创 Java之AQS思维导图

2024-03-16 15:09:43 185

原创 计算机网络Day03----数据链路层

数据链路层在物理层提供服务的基础上为网络层提供服务,其主要作用是,将物理层提供的可能出错的物理连接改造为,使之对网络层表现为一条无差错的链路。

2024-02-25 19:19:27 667

原创 计算机网络---物理层疑难点总结

在计算机内部或在相邻设备之间近距离传输时,可以不经过调制就在信道上直接进行的传输方式称为基带传输。它通常用于局域网。数字基带传输就是在信道中直接传输数字信号,且传输媒体的整个带宽都被基带信号占用,双向地传输信息。最简单的方法是用两个高低电平来表示二进制数字,常用的编码方法有不归零编码和曼彻斯特编码。例如,要传输1010,低电平代表0,高电平代表1,那么在基带传输下,1010需要向通信线路传输(高、低、高、低电平)。

2024-02-22 15:16:31 1256 1

原创 计算机网络Day03--物理层

频分复用 时分复用 统计时分复用。

2024-02-22 11:30:39 733

原创 计算机网络--物理层练习题

QAM是一种用模拟信号传输数字数据的编码方式,曼彻斯特编码和差分曼彻斯特编码都是用数字信号传输数字数据的方式。信道不等于通信电路,一条可双向通信的电路往往包含两个信道:一个是发送信道,一条是接收信道。依据香农定理,最大数据率=Wlog2(1+S/N )=28000b/s,根据奈氏定理,最大数据传输速率=2Wlog2N=8000b/s。属于同一条虚电路的分组,根据该分组的相同虚电路标识,按照同一路由转发,保证分组的有序到达。,分组交换中要将传送的长报文分割为多个固定的有限长度的分组,因此传输时延小。

2024-02-21 23:02:09 617

原创 计算机网络Day02--物理层(一)

物理层考虑的是怎么才能在连接各种计算机的传输媒体上传输比特流,而不是具体的传输媒体作用:尽可能屏蔽掉不同传输媒体和通信手段的差异用于物流层的协议也称为物流层规程:解决计算机比特传输的问题,即透明的传输比特流,关心的是点到点的问题透明传输:指不管所传输的数据是怎么样的比特组合,都能在链路上传输要尽可能屏蔽掉不同的传输媒体和通信手段的差异铜缆:基于电平光纤:基于光脉冲无线:基于微波。

2024-02-21 18:32:29 1550

原创 第一章计算机网络体系结构疑难点总结

虽然汽车在高速公路上行驶的速率无变化, 但在同样的时间内,进入高速公路的汽车总数却增多了(每隔1 分钟进入高速公路的汽车现在增加到10辆), 因而吞吐量也就增大了。端到端通信建立在点到点通信的基础上, 它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式, 以完成应用程序(进程) 之间的通信。计算机网络则与之不同,用户必须先登录欲运行程序的计算机,然后按照计算机的地址,将程序通过计算机网络传送到该计算机中运行,最后根据用户的命令将结果传送到指定的计算机中。二者的区别主要是软件的不同。

2024-02-20 21:51:11 491

原创 计算机网络Day1--计算机网络体系

采用存储转发,但解决了报文交换中大报文传输的问题,分组交换限制了每一次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息构成分组。:存在一个能为用户自动管理资源的网络操作系统,它能调用用户所需要的资源,而整个网络就像一个大的计算机系统一样对用户是透明的,描述了一个分布式系统,它是未来网络发展。服务是指下层为紧密的上层提供的功能调用,它是垂直的。换言之,计算机网络的体系结构就是这个计算机网络及其所完成的功能的精确定义,它是计算机网络中的层次、各层协议及层间接口的集合。

2024-02-20 21:36:40 1448

原创 ConcurrentHashMap详解

Java 7 中的存储结构如上图,由很多个Segment组合,而每一个Segment是一个类似于HashMap的结构,所以每一个HashMap的内部可以进行扩容。但是Segment的个数一旦,默认Segment的个数是 16 个,你也可以认为默认支持最多 16 个线程并发。不难看出,ConcurrentHashMap采用了的方式,,而。为什么要用二次hash,主要原因是为了构造分离锁,使得对于map的修改不会锁住整个容器,提高并发能力。

2024-02-16 18:22:08 1114

原创 SpringBoot之delete语句的优化

当我们需要进行批量删除的时候,可以通过遍历方式执行多条SQL逐一进行删除也可以选择批量删除只进行一条SQL。

2024-01-29 23:21:42 462

原创 SpringBoot之@RequestParam注解

RequestParam (org.springframework.web.bind.annotation.RequestParam)用于将指定的请求参数赋值给方法中的形参。有三个属性:(1)value:请求参数名(必须配置)(2)required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)(3)defaultValue:默认值,如果设置了该值,required 将自动设为。

2024-01-29 23:14:08 541

原创 SpringBoot之二维码登录实现

二维码登录本质上也是一种登录认证方式。既然是登录认证,要做的也就两件事情!比如账号密码登录,账号就是告诉系统我是谁, 密码就是向系统证明我是谁;比如手机验证码登录,手机号就是告诉系统我是谁,验证码就是向系统证明我是谁;那么扫码登录是怎么做到这两件事情的呢?我们一起来考虑一下手机端应用扫 PC 端二维码,手机端确认后,账号就在 PC 端登录成功了!这里,PC 端登录的账号肯定与手机端是同一个账号。不可能手机端登录的是账号 A,而扫码登录以后,PC 端登录的是账号 B。

2024-01-28 22:33:59 798

原创 SpringBoot中实现阿里云OSS对象存储

在业务中我们往往需要上传文件如图片,文件上传,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发抖音、发朋友圈都用到了文件上传功能。实现文件上传服务,需要有存储的支持,那么我们的解决方案将以下几种:1).定义OSS相关配置application-dev.ymlapplication.yml2). 读取OSS配置在sky-common模块中,已定义3). 生成OSS工具类对象在sky-server模块其中,AliOssUtil

2024-01-27 22:48:03 455

原创 SpringBoot AOP应用(公共字段填充)

在很多场景下,我们对需要对一些公共字段进行赋值操作,如果我们每一个公共字段都进行代码赋值那无疑会增加很多重复无用代码,都会导致我们的 代码臃肿,所以我们使用AOP切面编程,实现功能增强,来完成公共字段自动填充功能。1). 在新增数据时, 将createTime、updateTime 设置为当前时间, createUser、updateUser设置为当前登录用户ID。2). 在更新数据时, 将updateTime 设置为当前时间, updateUser设置为当前登录用户ID。

2024-01-27 22:42:35 415

原创 SpringBoot之时间数据前端显示格式化

在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对日期类型进行格式处理。在实际我们通常需要在前端显示对数据操作的时间或者最近的更新时间,如果我们只是简单的使用。但这种方式,需要在每个时间属性上都要加上该注解,使用较麻烦,不能全局处理。来传入数据不进行任何处理那么我们就会得到非常难看的数据。在属性上加上注解,对日期进行格式化。

2024-01-26 22:56:07 495

原创 SpringBoot之分页查询的使用

在业务中我们在前端总是需要展示数据,将后端得到的数据进行分页处理,通过pagehelper实现动态的分页查询,将查询页数和分页数通过前端发送到后端,后端使用pagehelper,底层是封装threadlocal得到页数和分页数并动态的拼接到sql中完成分页的查询。将封装好的需要查询的页面和页面大小传给PageHelper,由它为我们动态的拼接到SQL语句中实现分页查询的效果。controller层。

2024-01-26 22:45:54 603

原创 SpringBoot之ThreadLocal使用

在用户每一次发起请求都会在tomcat服务器请求一个新的线程,我们在生成JWT token的时候将登录的用户信息注入到threadlocal中,那么这个线程进行其他请求都会携带着用户信息,我们可以在其他功能中得到当前的登录的用户信息,比如得到当前登录的用户信息。3.在进行数据修改时需要提供当前进行修改的用户ID,使用存放在ThreadLocal中的ID,这里使用AOP完成对公共字段的填充。2.在生成JWT令牌时将登录的用户信息使用工具类存放在当前线程的ThreadLocal中。

2024-01-25 15:06:31 868

原创 SpringBoot之JWT登录

是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。3.前端接收到返回结果进行响应并将JWT保存,前端可以将返回的结果保存在localStorage(浏览器本地缓存)或sessionStorage(session缓存)上,退出登录时前端删除保存的JWT即可。4.后续前端每次请求携带JWT进行,后端检查JWT 的合法性存在验证JWT的有效性。5.验证通过后后端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果。2.登录成功后,生成jwt令牌。

2024-01-25 14:59:54 794

原创 SpringBoot之二维码登录实现流程

二维码登录本质上也是一种登录认证方式。既然是登录认证,要做的也就两件事情!比如账号密码登录,账号就是告诉系统我是谁, 密码就是向系统证明我是谁;比如手机验证码登录,手机号就是告诉系统我是谁,验证码就是向系统证明我是谁;那么扫码登录是怎么做到这两件事情的呢?我们一起来考虑一下手机端应用扫 PC 端二维码,手机端确认后,账号就在 PC 端登录成功了!这里,PC 端登录的账号肯定与手机端是同一个账号。不可能手机端登录的是账号 A,而扫码登录以后,PC 端登录的是账号 B。

2024-01-24 10:52:10 558

原创 Java序列化

比较常用的序列化协议有 Hessian、Kryo、Protobuf、ProtoStuff,这些都是基于二进制的序列化协议。另外,Kryo 已经是一种非常成熟的序列化实现了,已经在 Twitter、Groupon、Yahoo 以及多个著名开源项目(如 Hive、Storm)中广泛的使用。Kryo 是一个高性能的序列化/反序列化工具,由于其变长存储特性并使用了字节码生成机制,拥有较高的运行速度和较小的字节码体积。Java对象是运行在JVM的堆内存中的,如果JVM停止后,它的生命也就戛然而止。

2024-01-24 10:50:46 447

原创 Java NIO

在传统的 Java I/O 模型(BIO)中,I/O 操作是以阻塞的方式进行的。也就是说,当一个线程执行一个 I/O 操作时,它会被阻塞直到操作完成。这种阻塞模型在处理多个并发连接时可能会导致性能瓶颈,因为需要为每个连接创建一个线程,而线程的创建和切换都是有开销的。为了解决这个问题,在 Java1.4 版本引入了一种新的 I/O 模型 —NIO(New IO,也称为 Non-blocking IO)。NIO 弥补了同步阻塞 I/O 的不足,它在标准 Java 代码中提供了。

2024-01-23 09:31:54 1008

原创 Java动态代理

提到代理我们会想到设计模式中有代理模式,我们先了解代理模式是什么?

2024-01-23 09:31:03 875

原创 Java反射机制

• 在 Java 的日常应用程序开发中,类的加载几乎是由上述 3 种类加载器相互配合执行的。在必要时,我们还可以自定义类加载器,来定制类的加载方式。• 体现 Java 语言强大生命力和巨大魅力的关键因素之一便是,Java 开发者可以自定义类加载器来实现类库的动态加载,加载源可以是本地的 JAR 包,也可以是网络上的远程资源。• 同时,自定义加载器能够实现应用隔离,例如 Tomcat,Spring 等中间件和组件框架都在内部实现了自定义的加载器,并通过自定义加载器隔离不同的组件模块。

2024-01-22 15:10:36 453

原创 ZooKeeper介绍

ZAB(ZooKeeper Atomic Broadcast 原子广播) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

2024-01-22 11:03:24 1317

原创 RPC框架简介

远程过程调用(Remote Procedure Call)。RPC的目的就是让构建分布式计算(应用)更加简单,在提供强大的调用远程调用的同时不失去简单的本地调用的语义简洁性。

2024-01-21 21:31:11 673

原创 计算机网络第一章思维导图

2024-01-21 09:43:17 461

原创 操作系统期末复习 (南昌大学)

本人一名大三学生,最近要期末考试了自己整理一下操作系统需要复习的重点希望对大家的期末复习有帮助带!!的是老师着重强调的。

2024-01-09 18:19:12 369

原创 操作系统期末重点复习 (南昌大学)

1.线代操作系统的特点和主要功能并发:指两个或多个事件在同一时间间隔内发生共享:指系统中的资源可供多个并发执行的进程使用虚拟:虚拟是指把物理上的实体变为若干逻辑上的对应物异步:多道程序环境下由于资源有限,进程的执行并不是贯彻到底的,而是走走停停,以不可预知的速度向前执行功能:a.操作系统作为计算机资源的管理者:处理机管理、存储器管理、文件管理、设备管理b.操作系统作为用户和计算机硬件系统之间的接口:命令接口(联机命令和脱机命令)、程序接口c.操作系统实现了对计算机资源的扩充a.批处理。

2024-01-08 18:23:25 893

原创 分布式数据之复制(Replication)

此外,在书中将要结束《复制》这一章时,也详细介绍了如何进行冲突的处理,这里也简单进行介绍。这里我们可以思考一个问题,为什么会发生冲突?通过阅读具体的处理手段后,我们可以尝试这样理解,

2024-01-05 16:16:32 1285

原创 MySQL之基于代价的慢查询优化建议

一条 SQL 在 MySQL 服务器中执行流程主要包含:SQL 解析、基于语法树的准备工作、优化器的逻辑变化、优化器的代价准备工作、基于代价模型的优化、进行额外的优化和运行执行计划等部分。而对于优化器来说,执行一条 SQL 有各种各样的方案可供选择,如表是否用索引、选择哪个索引、是否使用范围扫描、多表 Join 的连接顺序和子查询的执行方式等。如何从这些可选方案中选出耗时最短的方案呢?这就需要定义一个量化数值指标,这个指标就是代价 (Cost),我们分别计算出可选方案的操作耗时,从中选出最小值。

2024-01-04 21:17:07 785

原创 CompletableFuture超详解与实践

Future类是异步思想的典型运用,主要用在一些需要执行耗时任务的场景避免程序一直原地等待耗时任务执行完成,执行效率太低。具体来说是这样的:当我们执行某一耗时的任务时,可以将这个耗时任务交给一个子线程去异步执行,同时我们可以干点其他事情,不用傻傻等待耗时任务执行完成。等我们的事情干完后,我们再通过Future类获取到耗时任务的执行结果。这样一来,程序的执行效率就明显提高了。这其实就是多线程中经典的Future 模式,你可以将其看作是一种设计模式,核心思想是异步调用。

2024-01-04 18:52:38 1402

原创 Redis哨兵sentinel

哨兵巡查监控后台master主机是否故障,如果故障根据投票数自动将某一个slave库变为master,就行对外服务,称为无人值守运维。

2023-12-28 22:24:09 1117

原创 Redis管道

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤:1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。2 服务端处理命令,并将结果返回给客户端。上述两步称为:Round Trip Time(简称RTT,数据包往返于两端的时间)

2023-12-28 22:22:57 573

Javaweb+mybatis学生信息管理系统实验报告

开发一个学生信息管理系统的部分功能,系统需要完成的功能有: 1、系统管理(包括系统用户登录、退出系统等) 2、班级管理(对班级基本信息的录入、更新、删除) 3、学生管理(对学生信息的录入、更新、删除)注:每个学生属于一个班级 4、学生课程成绩管理(对课程成绩的录入、更新、删除、查询) 使用java语言开发一个具有登录,退出,增,删,改,查的学生信息管理系统 使用到的技术有: 前端负责页面展示部分:HTML,JSP,Java Web 负责数据存储交互部分:MySQL,JDBC,MyBatis框架,maven 负责业务逻辑处理:Java SE 适合交实验报告

2023-09-23

空空如也

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

TA关注的人

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