2024-07学习笔记
创始人
2024-11-20 16:33:48
0

1.${}取值

在这些属性源中,命令行参数和JVM系统属性拥有最高的优先级,它们可以覆盖在Properties文件中定义的属性。而操作系统环境变量和Properties文件的优先级相对较低,但是Spring会根据配置的不同情况进行属性的合并和覆盖,最终将这些属性加载到Environment对象中供应用程序使用。

源码 

先用${}作为key去enviroment对象中取,取不到,就看是否包含冒号:

包含的话,就截取冒号前边的再去取

还是取不到,就取冒号后边的默认值

2.循环依赖

 A引用了B,B引用了C,C又引用了A,这种情况会造成循环依赖

比如A引用了B,B又引用了A

加载的时候,如果先加载A,然后会去加载被A引用的bean,就会加载B

那加载B的时候,也会加载被B引用的B,就会加载A

然后又回到了A,A中又去加载B,然后B中又加载A,这就死循环了,没完没了

allowCircularReferences 是一个Spring的配置属性,默认为false。当设置为true时,Spring容器允许循环依赖的发生,这时就会启用三级缓存来解决循环依赖问题。

allowCircularReferences 属性为true时,Spring容器才会启用三级缓存来管理循环依赖的情况。这样可以确保Bean的初始化顺序和状态管理正确,避免循环依赖导致的初始化问题或死锁。
综上所述,三级缓存在 allowCircularReferences 为true时才发挥作用,用于解决Spring应用程序中复杂的循环依赖问题。 

 3.@PostConstruct和@PreDestroy

@PostConstruct实例初始化的时候执行

@PreDestroy程序正常退出的时候执行,如果是OOM这种异常情况,就来不及执行

4.自连接思想

比如下边算出连着的三个数字

就是把一个表看成三个表,分别建立连接

a表和b表id差1,且值相等

b表和c表id差2,且值相等

下边这个一样,算两个连续的,那就是看成两个表,a和b的Id差1,然后a和b的值相等 

5.ifnull和coalesce

 

6.group_concat

我知道group_concat可以对group by分组函数中的字段进行拼接

但是我刚知道它里边还可以进行distiinct和排序

如图

 

 7.union all中最后一个order by

 8.substring

substring只写第一个数字不写第二个数字,意思就是从这个数字截取到最后为止

9. 把val等于某个值的,从链表中移除

用递归方法,比较简洁

 10.线程池工作方式

任务进来,先去找核心线程,如果核心线程数已经达到最大,就去排队,如果队列已经满了,才会去找空闲线程

最大线程数=核心线程数+非核心线程数,与队列数无关

最大线程数定义了线程池能够同时存在的最大线程数量,包括了核心线程数在内,但可以根据负载情况动态增加非核心线程。

 

1.FixThreadPool 

 

2.CacheThreadPool 

3.jmm 

jmm java memory modle  java内存模型

4.因为from区到to区是复制算法,所以二者1:1

11.锁

1.锁的膨胀

当一把锁第一次被线程持有的时候 偏向锁

如果这个线程再次加锁还是偏向锁

如果别的线程来加锁(交替执行)轻量锁

如果是资源竞争 重量锁

 

2.ReentrantLock

ReentrantLock 的公平锁和 AbstractQueuedSynchronizer (AQS) 之间有密切的关联,因为 ReentrantLock 的实现正是基于 AQS 框架。

3.实例锁和class锁不一样

所以两者没有资源竞争

 

但是静态方法的锁和class的锁一样,都是锁class 

 

4.synchronized是可重入锁

 递归方法上使用 synchronized 通常不会导致死锁,因为Java中的 synchronized 是可重入的锁。这意味着同一个线程可以多次获得同一个锁,而不会被自己已经持有的锁所阻塞。

5.实例的同步方法和非同步方法可以一起调用,不互相阻塞

6.锁是对象头的一个标识,锁不同的对象,就不会发生竞争

 

7.为什么不要在代码中写sout

 

8.volatile不保证原子性

 

9.cas

 cas是cpu级别的指令,快

java中的AtomicInteger,AtomicBoolean就是利用CAS达到线程安全的

12.一段模拟多线程并发的代码

4个任务并发执行

latch减到0的时候,await的阻塞解除

 

相关内容

热门资讯

为了进一步!微信小程序免费黑科... 为了进一步!微信小程序免费黑科技透视,新道游app辅助器教材教程(有挂规律)1、玩家可以在微信小程序...
如何分辨真伪!新超凡软件辅助,... 【福星临门,好运相随】;如何分辨真伪!新超凡软件辅助,微乐陕西小程序脚本,新版2025教程(原来有开...
实测发现!微乐贵阳捉鸡麻将挂软... 您好:微乐贵阳捉鸡麻将挂软件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
带你了解!牛总管一定要牛辅助,... 带你了解!牛总管一定要牛辅助,雀友会潮汕图片辅助器,wepoke教程(原来有开挂辅助神器)是一款可以...
推荐十款!爱玩联盟辅助下载,悟... 推荐十款!爱玩联盟辅助下载,悟空大厅微信辅助,解说技巧(原来有开挂辅助黑科技);推荐十款!爱玩联盟辅...
最新技巧!雀友会辅助潮汕麻将脚... 最新技巧!雀友会辅助潮汕麻将脚本,微信小程序微乐怎么才能发好牌,2025版教程(原来有开挂辅助助手)...
玩家亲测!欢乐达人脚本,wep... 玩家亲测!欢乐达人脚本,wepoker插件下载,科技教程(原来有开挂辅助app);作为系统规律正版授...
推荐攻略!悟空大厅辅助助手下载... 推荐攻略!悟空大厅辅助助手下载安装,hhpoker是正规的吗,揭秘教程(原来有开挂辅助器);是一种具...
玩家必看!花花生活圈私人局辅助... 玩家必看!花花生活圈私人局辅助器,新青鸟辅助,高科技教程(原来有开挂辅助器);AI辅助机器人普及解说...
技术分享!兴动平台辅助下载,财... 技术分享!兴动平台辅助下载,财神十三张脚本辅助,wepoke教程(原来有开挂辅助挂);最新版2026...