logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

开灯问题 c++

问题:有n盏灯,编号为1~n,第一个人把所有的灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(期中关掉的将被打开,打开的将被关掉)依此类推,一共有k个人,问最后有哪些灯开着,输入n和k,输出开着的灯的编号。k样例输入:7 3样例输出:1 5 6 7【分析】:用数组flag[],flag[0],flag[1],flag

#c语言
JAVA:环链表(判断单链表是否存在环)

【题目描述】Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?给定单链表,判断是否存在环?不适用额外空间【知识点】:环链表:从判断一个单链表是否存在循环而扩展衍生的问题,有则称之为有环链表问题。【解决

#java
秒杀系统设计方案

接入Nginx+Lua脚本实现限流(单IP秒级并发控制)热点数据预加载至Redis集群,设置本地缓存二级兜底。通过Sentinel监控系统QPS,动态调整流量阈值。请求进入rocketMQ削峰填谷,异步通知秒杀结果。采用Redis+Lua原子操作校验库存,防止超卖。设置熔断降级机制(如库存服务失败时返回默认售罄)增加验证码/答题环节分散请求峰值,避免脚本抢购。数据库采用分库分表(用户ID维度拆分)

#java
mysql数据存储以及查找过程浅析

B+树的每个节点都是一个数据页。从根节点开始,通过二分法快速定位到所要查找记录的页,定位到页以后,在该页内进行二分法,快速定位到数据所在的分组(槽),最后在分组内进行遍历查找。页中存储数据行、页目录,还有页头,文件头,文件尾等。聚簇索引的叶子节点,存放的是实际数据,所有完整的用户记录都存放在聚簇索引的叶子节点。因为如果不分组,每条记录都放1个槽,那么槽也会很多,所以就进行分组放到1个槽里。因为链表

#mysql#数据库
java poi写文件报错:SXSSFWorkbook java.io.IOException:权限不够

使用SXSSFWorkbook.write(bos)写excel文件时,无法生成文件,报错permission denied。报错的具体位置是SXSSFWorkbook类的write方法,line 515。File tmpFile;tmpFile = tmpFile.createTempFile("poi-sxssf-template",".xlsx");就是Apache POI利用SXSSF写文

虚拟线程浅析

虚拟线程是 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
    共 14 条
  • 1
  • 2
  • 请选择