java
文章平均质量分 70
Sword723
一个练习时长两年半的Java码农O(∩_∩)O
展开
-
SpringBoot中接受请求参数的注解 @RequestParam @PathVariable @PathVariable等等
这些参数注解可以用于控制器的处理方法中,用于接收和处理请求中的不同类型的数据。你可以根据请求的特点和需求选择合适的参数注解,进行参数的绑定和处理。需要注意的是,参数注解一般用于处理 HTTP 请求,对于其他类型的方法、非 Web 环境等场景,可能不适用或需要额外的处理。:用于将请求中的 Cookie 值绑定到方法的参数上。:用于将请求中的参数绑定到方法的参数上。:用于将 URL 中的路径参数绑定到方法的参数上。:用于将请求参数绑定到方法参数上,作为对象的属性。:用于将多部分请求中的数据绑定到方法的参数上。原创 2023-08-18 09:17:32 · 449 阅读 · 0 评论 -
共享模型之无锁——CAS
会让线程在没有获得锁的时候,发生上下文切换,进入阻塞。打个比喻线程就好像高速跑道上的赛车,高速运行时,速度超快,一旦发生上下文切换,就好比赛车要减速、熄火,等被唤醒又得重新打火、启动、加速... 恢复到高速运行,代价比较大。在这里就好比高速跑道,没有额外的跑道,线程想高速运行也无从谈起,虽然不会进入阻塞,但由于没有分到时间片,仍然会进入可运行状态,还是会导致上下文切换。它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作 volatile。..原创 2022-08-12 16:30:35 · 123 阅读 · 0 评论 -
Java 内存模型
它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作 volatile。寄存器、缓存、硬件内存、CPU 指令优化等。,它定义了主存、工作内存抽象概念,底层对应着。volatile(易变关键字)解决可见性。保证指令不会受到线程上下文切换的影响。volatile解决指令重排问题。修饰的变量,可以禁用指令重排。变量都是直接操作主存。...原创 2022-08-12 14:51:59 · 141 阅读 · 0 评论 -
lock实现——ReentrantLock
解决哲学家就餐问题 synchronized无法解决,是因为它是无限制的等待,而tryLock可以有时限的等待,没有获取到锁就不等待。可重入是指同一个线程如果首次获得了这把锁,那么因为它是这把锁的拥有者,因此有权利再次获取这把锁。支持多间休息室,有专门等烟的休息室、专门等早餐的休息室、唤醒时也是按休息室来唤醒。尝试获取锁,如果不成功,它就不会等待下去,也可以设置等待时间。如果是不可重入锁,那么第二次获得锁时,自己也会被锁挡住。强大之处在于,它是支持多个条件变量的,这就好比。执行后,会释放锁,进入。...原创 2022-08-12 14:11:34 · 110 阅读 · 0 评论 -
synchronized
synchronized的锁有三种,重量级锁,轻量级锁,偏向锁。下面先从重量级锁开始讲。原创 2022-08-11 21:40:35 · 290 阅读 · 0 评论 -
ArrayList
ArrayList简单介绍原创 2022-07-31 18:26:10 · 164 阅读 · 0 评论 -
HashMap
HashMap基本介绍原创 2022-07-27 16:59:51 · 216 阅读 · 0 评论 -
ThreadLocal
ThreadLocal基本介绍原创 2022-07-25 18:44:51 · 129 阅读 · 0 评论 -
Java多线程
进程:是正在运行的程序,是系统进行资源分配和调度的独立单位,每一个进程都有它自己 的内存空间和系统资源。线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一个执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序方法介绍void run() 在线程开启后,此方法将被调用,里面封装的是被线程执行的代码void start()启动线程,java虚拟机会执行run()方法run和start的区别直接调用run方法,相当于普通方法的调用调用start方法,启动线程,让ja原创 2022-06-04 12:51:35 · 118 阅读 · 0 评论