- 博客(17)
- 收藏
- 关注
原创 JUC并发编程
进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间线程更轻量,线程上下文切换成本一般上要比进程上下文切换低(上下文切换指的是从一个线程切换到另一个线程)并行和并发区别并发(concurrent)是同一时间应对(dealing with)多件事情的能力并行(parallel)是同一时间动手做(doing)多件事情的能力。
2024-05-27 21:08:44 1163
原创 Spring+SpringBoot面试总结(近两万字)
A依赖B B依赖A(A里面有属性B,B里面有属性A)先创建A对象,实例化A对象,此时A对象的b属性为空,填充属性b从容器中查找B对象,如果找到了就不存在循环依赖问题(因为可以直接赋值可)找不到就需要创建B对象实例化B对象此时B对象中的a属性为空 ,需要填充a属性所以再又从容器中找A对象,但是找不到(因为上面创建的A对象还是在实例化阶段,)这就是完整的循环依赖问题。
2024-05-25 13:08:10 1201
原创 Spring常用注解
在Controller层映射web请求,包括访问路径和参数允许request的参数在request体中,而不是在直接连接的地址后面。(放在参数前)用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值,通常作为Restful的接口实现方法。key=value传参 在路径中将特定的请求头信息注入到控制器方法参数中value:指定要映射的请求头的名称。required:指定该请求头是否是必需的,默认为true。
2024-05-25 13:07:54 923
原创 SpringSecurity登录和校验流程简述
第一步:验证用户名和密码正确性实现UserDetailsService接口重写其中的loadUserByUsername方法,从数据库查询用户名和密码,查询成功就返回一个UserDetails对象(因为重写的这个方法需要返回这个对象)如果要测试,需要往用户表中写入用户数据,并且如果你想让用户的密码是明文存储,需要在密码前加{noop}第二步 有了上面的准备工作后,就设置SpringSecurity拦截除了登陆接口的一系列接口了。
2024-05-20 22:22:36 1078
原创 基于JWT+拦截器+ThreadLocal的登陆拦截实现
导入依赖后创建JWT工具类创建JWT对象重点是工具类的和方法如何实现参数是一个用于签名和验证 JWT 的密钥,它是一个字符串类型的值。在使用 JWT 进行签名和验证时,需要使用相同的密钥来确保生成 JWT 和验证 JWT 的一致性。过期时间Map claims) 用户信息最后就是通过**Jwts.builder()**开始设置过期时间 签名算法密钥 可能还有用户信息然后就返回这个jwt对象。
2024-05-19 16:21:52 804 1
原创 Atomic原子类总结
Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。原子类存放在。
2024-05-18 13:38:10 447
原创 操作系统的内存管理和进程调度
本文内存管理部分整理自链接: JavaGuide进程调度算法整理自链接: aiguangyuan权当笔记使用内存的分配与回收:对进程所需的内存进行分配和释放,malloc 函数:申请内存,free 函数:释放内存。地址转换:将程序中的虚拟地址转换成内存中的物理地址。内存扩充:当系统没有足够的内存时,利用虚拟内存技术或自动覆盖技术,从逻辑上扩充内存。内存映射:将一个文件直接映射到进程的进程空间中,这样可以通过内存指针用读写内存的办法直接存取文件内容,速度更快。内存优化:通过调整内存分配策略和回收算
2024-05-18 10:48:43 799
原创 计算机网络(面试必看)
证书内容签名算法和签名1数字签名如何获得使用签名算法对证书内容进行hash运算,对hash后的值进行私钥加密,得到数字签名是一种基于 TCP 连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据。用于弥补 HTTP 协议在持久通信能力上的不足。客户端和服务器仅需一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。使用在实时消息。
2024-05-15 22:03:49 1369 2
原创 MVCC原理
InnoDB存储引擎的聚簇索引包含下面两个必要的隐藏列事务每次对某条聚簇索引进行更改都会把事务的id赋值给该隐藏列每次对某条聚簇索引进行改动都会把旧的版本写入到undo日志,这个隐藏列就相当于指针,通过他可以找到这个修改前的信息。
2024-05-08 17:12:48 604 1
原创 MySQL的锁
则其他Session没 法在这个范围所包含的所有行记录(包括间隙行记录)以及行记录所在的间隙 里插入或修改任何数据,即id在 (3,20]区间都无法修改数据,注意最后那个20也是包含在内的。如果一个事务需要添加表级别的共享锁,如果没有意向锁的存在,该事务就需要检查各个页或行上是否存在锁,但是如果存在意向锁,该事务就不用逐一检查了,而是只需要检查表上是否有意向锁。意向锁是由存储引擎自己维护的,用户无法手动操作意向锁,在为数据行加共享排他锁之前,InooDB 会先获取该数据行所在数据表的对应意向锁。
2024-05-07 22:51:54 824 2
原创 jdbc基础详解(超详细)
JDBC(Java Database Connectivity)是Java语言访问关系型数据库的一种标准接口。它提供了一组用于访问和操作数据库的类和方法。全称(Java DataBase Connectivity) Java 数据库连接同一套java代码无法操作不同关系型数据库,我们要做到的是同一套Java代码操作不同的关系型数据库,而sun公司就指定了一套标准接口(JDBC),JDBC中定义了所有操作关系型数据库的规则。
2023-09-16 22:14:28 507 1
原创 java类(基础详解)内存原理
类的定义自定义类构造器(重点理解)无参构造器有参构造器this关键字构造器创建及初始化对象1 使用无参构造器创建对象2 使用有参构造器创建对象预定义类静态工厂方法类创建对象流程分析:流程
2023-09-15 19:57:18 244
原创 如何在Mac中找到jdk的安装路径
由于在mac中默认jdk安装路径是无法指定的,其安装在资料库(Library)这个文件夹,而此文件夹是隐藏文件夹。下面介绍如何找到jdk安装位 直接在搜索栏中如下路径,即可直接找到此文件夹。
2023-05-07 22:16:52 5275 2
空空如也
人工智能本科找后端开发
2023-12-06
comparator 集合’ sort
2023-12-02
个人用户有哪些发送彩信的API可以用
2023-05-17
关于#java#的问题,如何解决?
2023-05-11
关于人工智能本科本科就业
2023-03-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人