logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

虚拟线程浅析

虚拟线程是 JDK 21+ 正式提供的轻量级用户态线程,由 JVM 调度,不直接绑定 OS 线程。◦ 内核线程:OS 管理,重量级,数量有限。◦ 平台线程:绑定内核线程,Java 传统线程。每个线程对应操作系统的真实线程,创建成本高,占用内存大◦ 虚拟线程:依附平台线程。很小、动态扩容,不绑定 OS 线程,调度在用户态,资源消耗极低,所以能轻松创建百万• 传统平台线程:线程一阻塞,内核线程直接被占

#java
MySQL in查询,exists,join对比

没有银弹。常量IN输在列表长度和两次查询的一致性;原生IN子查询输在优化器黑盒;EXISTS输在外层全表扫和索引依赖;JOIN输在数据膨胀和驱动表选择。选哪个取决于数据量级、索引设计和业务容忍度,底线是:绝对不用原生IN子查询,其他三种按场景选,但必须先用EXPLAIN看执行计划。

#mysql
Spring boot启动和Spring启动

根据 @SpringBootApplication 中的设置,加载应用的配置文件(如 application.properties 或 application.yml),系统变量,命令行参数,将其转化为配置属性(最终封装成configureableEnvironment ),这一步就是把配置全准备好。3)启动应用上下文:启动 ApplicationContext,加载配置类,componentSc

#spring boot#spring
分布式系统考察重点

实现原理:获取锁成功后,开启一个后台定时任务,默认每隔 lock过期时间/3 (默认30s锁,10s执行一次),给锁重置过期时长;Synchronized是基于操作系统内核的阻塞锁,虚拟线程被它阻塞时,载体线程会被占用无法复用,丧失虚拟线程轻量调度优势;- 底层实现:Redis的Hash结构,key=锁名称,field=线程唯一标识,value=重入次数;Redis主从异步复制,主节点加锁成功后宕

#mysql#面试#rocketmq
JAVA内存模型

你不用关心底层 CPU 是 x86 还是 ARM,也不用管内存屏障具体插在哪,只要遵循 JMM 的规范(比如加个volatile或synchronized ),JMM 就会帮你抹平硬件差异,保证并发安全。不同架构的CPU在缓存,重排序,内存模型上会有巨大的物理差异,如果程序员直接用汇编或C/C++写并发代码,换一台电脑可能就会出现诡异的Bug。Spring 的兜底:底层复杂的反射机制、CGLIB

#java#jvm
hadoop学习时遇到的问题:启动ZooKeeper报错,--main class information unavailable

启动ZooKeeper报错,--main class information unavailable找了很多办法,都是说因为非正常关机引起的,删除zoo.cfg中dataDir指定目录下的文件就可以了。但是我屡试多遍,就是不行。再看了一篇博客,据说可以看一下ZooKeeper的日志文件,我看了一下,报错信息是java.io.IOException: No snapshot found, but .

hadoop学习中遇到的问题:hadoop拒绝连接

hadoop学习中遇到的问题:hadoop拒绝连接hadoop安装好之后,在本地浏览器输入地址http://192.168.29.134:9870,提示拒绝连接。在网上找了很多相关资料,有很多原因导致,一个是防火墙没关闭,一个是namenode没有启动起来,一个是因为namenode启动后journalnode还没有启动,还有就是namenode和datanode的clusterID不一致、没有.

利用oracle闪回,将修改的字段还原

问题公司的表被清空了,重新恢复的时候导致中文的字段乱码了。想要把乱码的字段修改回来,想到了回闪,出问题的时间之前的数据。然后通过回闪的数据去更新现在乱码的字段具体实现数据表:personidnamecreate_time1灏忛緳濂?2018-01-13 09:00:002?1y2018-01-03 09:00:001.回闪select id,name,create_time from person

WebService报错javax.xml.ws.soap.SOAPFaultException:Internal Error

公司项目有遇到这个问题,调用别人的接口。真是神tm Internal Error。这个问题百度都查不到。我可能是历史上唯一出现这个问题的女纸。其实一般遇到这个问题,Internal Error内部错误,就是服务端那边接收你的参数,然后判断你的参数,不给通过,但是具体什么原因也没告诉你。【解决办法】对方给的示例代码中的参数写死的,运行没问题的,到项目上跑起来就报错了。于是我拿写死的参数和项目发送的参

到底了