
2025/8/23小于 1 分钟
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | ()、[]、 . |
从左到右 |
| 2 | ! 、+(正)、 -(负)、 ~、 ++ 、— |
从右向左 |
| 3 | * 、/ 、% |
从左向右 |
| 4 | +(加) 、-(减) |
从左向右 |
| 5 | << 、>>、 >>> |
从左向右 |
| 6 | < 、<= 、> 、>= 、 instanceof |
从左向右 |
| 7 | == 、!= |
从左向右 |
| 8 | & |
从左向右 |
| 9 | ^ |
从左向右 |
| 10 | | |
从左向右 |
| 11 | && |
从左向右 |
| 12 | || |
从左向右 |
| 13 | ?: |
从右向左 |
| 14 | = 、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>= |
从右向左 |
线程共享区:
线程独占区:
新建mavn项目导入jar包:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.1</version>
</dependency>
源码流程图:https://www.processon.com/embed/640ec2155476aa23907484f0
Zookeeper 服务的启动命令是 zkServer.sh start
作用:CountDownLatch类能够使一个线程等待其他线程完成各自的工作后再执行。
使用场景:Zookeeper分布式锁,Jmeter模拟高并发等。
工作原理:CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,通过调用``countDown();`方法使计数器的值就会减1,当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。
public class CountDownLatchTest {
private static CountDownLatch countDownLatsh = new CountDownLatch(5);
private static class Player implements Runnable{
private Integer index;
public Player(Integer index){
this.index = index;
}
@Override
public void run() {
System.out.println("玩家"+index+"准备完成");
countDownLatsh.countDown();
}
}
public static void main(String[] args) throws InterruptedException {
for(int i = 0; i < 5; i++){
new Thread(new Player(i)).start();
}
countDownLatsh.await();
System.out.println("玩家准备完毕,开始游戏");
}
}
volatile是Java虚拟机提供的轻量级的同步机制。volatile关键字有如下两个作用
关于volatile的可见性作用,我们必须意识到被volatile修饰的变量对所有线程总数立即 可见的,对volatile变量的所有写操作总是能立刻反应到其他线程中。
装饰者模式上指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式
模式结构成员构成:
| 配置项 | 说明 |
|---|---|
| 资源名:resource | 限流规则的作用对象,最常用的资源是我们代码中的 Java 方法,一段代码,或者一个接口 |
| 针对来源: limitApp | 流控针对的调用来源,填写微服务名,default代表不区分调用来源 |
| 阀值类型: grade | - QPS:每秒请求数,当前调用该api的QPS到达阈值的时候进行限流 - 线程数: 当调用该api的并发线程数到达阈值的时候,进行限流 |
| 单机/均摊/总体阀值:count | 阀值类型是QPS表示每秒的请求数;阀值类型是线程数表示并发线程数 |
| 流控模式:strategy | 直接; 关联; 链路 |
| 流控效果: controlBehavior | 直接拒绝; 排队等待; 慢启动模式 |
| 注意:同一个资源可以设置多个流控规则,我们可以通过代码定义流量控制规则也可以通过在sentinel控制台进行配置,一般我们都是使用控制台进行配置,下面是一个代码配置的方式: |