logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

一文掌握JUC常见八股

因为有些线程可以抢占到锁,而有些线程无法抢占到锁,此时没有竞争到锁的线程就会被打包成一个 Node 节点,按照顺序组成一个双向链表。在 JDK 1.6 中,考虑到不同竞争场景和不同竞争强度的场景,对 synchronized 进行了优化,经历了从无锁到偏向锁,再到轻量级锁,最后到重量级锁的过程。需要执行任务时,直接从池中复用线程,从而避免频繁的创建和销毁。synchronized,由于涉及到操作系

文章图片
#python#java#开发语言
DeepSeek V4 Flash 0731 开源,登顶开源模型前三

前两天大清早,我刚揉着惺忪的睡眼打开手机,刷推特的时候突然看到 Artificial Analysis 弹了一条推送。当时我整个人直接就愣住了。DeepSeek 又搞事情了。它们悄无声息地开源了全新的 DeepSeek V4 Flash 0731。这玩意儿在 Artificial Analysis 智能指数上直接考出了 50 分的高分,瞬间杀进全球开源模型的前三名。

文章图片
#开源
Java八股:String、StringBuffer、StringBuilder的区别和联系,Lambda 表达式

本文比较了Java中String、StringBuffer和StringBuilder的特性与使用场景。String不可变且线程安全,适合少量操作;StringBuffer可变且线程安全,性能中等;StringBuilder可变且非线程安全,性能最优。文章还解释了"不可变"概念,分析了StringBuffer和StringBuilder的性能差异,并提供了各类型的使用建议。此外

文章图片
#java#python#jvm +2
《Redis 高可用架构详解:哨兵与集群机制全面解析》

本质:一个“监控 + 自动故障转移”的系统实现了哪些效果监控 Redis自动切换主节点通知客户端Redis 哨兵机制的核心就是:自动监控 + 自动选举 + 自动切换。如果你的 Redis 数据量越来越大:一台机器还能撑住吗?内存成本高单点风险大性能瓶颈明显于是我们的Redis 集群模式就出现了(Redis Cluster)把数据拆分到多台 Redis 上存储。

文章图片
#redis#架构#java +2
【从零开始学习Redis|第七篇】Redis 进阶原理篇:消息队列、分布式锁、缓存击穿与事务实现

场景:某个热点数据:有 10万请求/秒。突然:缓存过期瞬间:10万请求 → 数据库数据库会被打爆。这就是:缓存击穿。

文章图片
#缓存#学习#redis +1
【从你按下登录按钮开始:服务器究竟是怎么知道“你是谁”的?——Session 与 JWT 认证机制解析 】

然后服务器用 密钥签名(HS256和RS256)如下超链接是HS256和RS256的区分。这样所有服务器都能访问 Session。server2 没有 Session。└ sessionId → 用户信息。Session 在 server1。sessionId → 用户信息。Session = 有状态认证。JWT + Redis 黑名单。但在互联网架构里会出现问题。传统的方式:Session。Se

文章图片
#java#http#网络协议 +2
【Java八股锁机制的认识】synchronized和reentrantlock区分,锁升级机制

特性类型JVM关键字Java类加锁方式自动手动释放锁自动必须unlock可重入支持支持公平锁不支持支持tryLock不支持支持中断锁不支持支持复杂控制弱强。

文章图片
#java#开发语言#后端
MySQL:事务机制

事务是在MySQL引擎层实现的,常见的innodb是支持事务的,事务的四大特性是原子性,一致性,隔离性,持久性。当事务并发执行时,会引发脏读,不可重复读,幻读这些问题,为了避免这些问题,SQL提出了四种隔离级别,分别是读未提交,读已提交,可重复读,串行化,隔离级别一次递增,性能越差。要解决脏读问题,就要将隔离级别上升为读已提交以上级别。要解决不可重复读问题,就要将隔离级别升级到可重复读以上级别对于

文章图片
#mysql#数据库
[HashMap]模拟put/get操作流程助你理解高频考点HashMap

put流程需要注意的点一共有两种:链表切换成红黑树以及扩容的触发时机,两者时机要进行区分:一个是链表长度,一个是数组长度。以及扩容逻辑与具体操作上面我们了解了put/get的具体流程,接下来讲述的是上述流程的一些具体细节。

文章图片
#java
JUC:锁机制/关键字

可重入锁:同一个线程能重复获取同一把锁,而不会死锁直观理解就是以嵌套为例,当线程第一次调用a获取到锁时,第二次调用时发现a已经被锁,只能阻塞等待锁释放。锁永远无法释放。这就是死锁所以可重入锁的产生背景就是Java方法调用经常嵌套。synchronized 和 ReentrantLock 都是可重入锁。底层通过:记录当前持有锁线程(owner)和计数器(count)实现两者区分的本质时:多个线程抢锁

文章图片
#开发语言#java
    共 21 条
  • 1
  • 2
  • 3
  • 请选择