会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
SevenCoding
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
3
4
5
6
7
8
9
10
11
···
16
下一页
2025年6月19日
JVM内存结构33连问
摘要: JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地方法栈、堆、方法区。 程序计数器是什么? 特点: 线程私有 CPU会为每个线程分配时间片,当当前线程的时间片使用完以后,CPU就会去执行另一个线程中的代码 程序计数器是每个线程所私有的,当另一个线程的时间片用完,又返回来执行当前线程的代码时,通过
阅读全文
posted @ 2025-06-19 09:00 程序员Seven
阅读(411)
评论(0)
推荐(3)
2025年6月17日
剑指offer-3、从尾到头打印链表
摘要: 题目描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 <= 链表长度 <= 10000 示例1 输入: {1,2,3} 返回值: [3,2,1] 示例2 输入: {67,0,24,58} 返回值:
阅读全文
posted @ 2025-06-17 09:00 程序员Seven
阅读(29)
评论(0)
推荐(0)
2025年6月16日
你了解CAS吗?有什么问题吗?如何解决?
摘要: 什么是CAS? CAS全称Compare And Swap,比较与交换,是乐观锁的主要实现方式。CAS在不使用锁的情况下实现多线程之间的变量同步。ReentrantLock内部的AQS和原子类内部都使用了CAS。 CAS算法涉及到三个操作数: 需要读写的内存值V。 进行比较的值A。 要写入的新值B。
阅读全文
posted @ 2025-06-16 09:00 程序员Seven
阅读(396)
评论(1)
推荐(1)
2025年6月13日
剑指offer-2、替换空格
摘要: 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为"We Are Happy",则经过替换之后的字符串为"We%20Are%20Happy"。 思路及解答 调⽤API函数 java ⾥⾯有可以直接使⽤的函数replace() ,直接写成下⾯这样即可通过。 public
阅读全文
posted @ 2025-06-13 09:00 程序员Seven
阅读(61)
评论(0)
推荐(0)
2025年6月12日
线程池中execute和submit的区别?
摘要: 简要回答 execute只能提交Runnable类型的任务,无返回值。submit既可以提交Runnable类型的任务,也可以提交Callable类型的任务,会有一个类型为Future的返回值,但当任务类型为Runnable时,返回值为null。 execute在执行任务时,如果遇到异常会直接抛出,
阅读全文
posted @ 2025-06-12 09:00 程序员Seven
阅读(397)
评论(0)
推荐(1)
2025年6月10日
AI大模型入门知识
摘要: 这段时间各种AI名词一波接一波的冲击着我的屏幕,Agent,MCP,FunctionCalling,RAG,它们都是什么东西 有人说Agent是智能体,那智能体又是什么呢? 有人说MCP是AI时代的USB协议,那么它可以接U盘吗? 它们到底都是什么意思? Prompt 2023年,OpenAI则刚发
阅读全文
posted @ 2025-06-10 09:00 程序员Seven
阅读(249)
评论(0)
推荐(1)
2025年6月9日
你了解Java线程池原理吗?
摘要: 简要回答 线程池是一种池化技术,用于预先创建并管理一组线程,避免频繁创建和销毁线程的开销,提高性能和响应速度 它几个关键的配置包括:核心线程数、最大线程数、空闲存活时间、工作队列、拒绝策略 主要工作原理如下: 当线程池里存活的线程数小于核心线程数corePoolSize时,这时对于一个新提交的任务,
阅读全文
posted @ 2025-06-09 09:00 程序员Seven
阅读(506)
评论(2)
推荐(4)
2025年6月6日
剑指offer-1、⼆维数组中的查找
摘要: 题目描述 在⼀个⼆维数组中(每个⼀维数组的⻓度相同),每⼀⾏都按照从左到右递增的顺序排序,每⼀列都按照从上到下递增的顺序排序。请完成⼀个函数,输⼊这样的⼀个⼆维数组和⼀个整数,判断数组中是否含有该整数。 例⼦,输⼊⼀个数组: num[3][4] = [ 1 , 4 , 6 , 28 , 2 , 7
阅读全文
posted @ 2025-06-06 09:00 程序员Seven
阅读(70)
评论(0)
推荐(0)
2025年6月5日
算法题:数组中的第k个最大元素
摘要: 力扣链接 题意 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k = 2 输出:
阅读全文
posted @ 2025-06-05 09:00 程序员Seven
阅读(92)
评论(0)
推荐(0)
2025年6月4日
Synchronized是怎么实现的?
摘要: 回答重点 synchronized 实现原理依赖于JVM 的 Monitor(监视器锁)和对象头(Object Header) synchronized 修饰代码块:会在代码块的前后插入 monitorenter 和 monitorexit 指令。可以把 monitorenter理解为加锁,moni
阅读全文
posted @ 2025-06-04 09:00 程序员Seven
阅读(389)
评论(0)
推荐(2)
2025年6月3日
Linux常用命令介绍-系统管理
摘要: find命令 - 根据路径和条件搜索指定文件 ind命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员必须掌握的命令之一。 find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、wh
阅读全文
posted @ 2025-06-03 09:00 程序员Seven
阅读(640)
评论(1)
推荐(2)
2025年5月30日
你了解ConcurrentHashMap吗?ConcurrentHashMap九连问
摘要: 多线程环境下,使用Hashmap进行put操作会造成数据覆盖,应该使用支持多线程的 ConcurrentHashMap。 HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进行put操作,调用了HashMap的putVal(),具体原因: 假设两个线程A、B都在进行put操作
阅读全文
posted @ 2025-05-30 09:00 程序员Seven
阅读(371)
评论(0)
推荐(1)
2025年5月29日
从尾到头打印链表
摘要: 题目描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 <= 链表长度 <= 10000 示例1 输入: {1,2,3} 返回值: [3,2,1] 示例2 输入: {67,0,24,58} 返回值:
阅读全文
posted @ 2025-05-29 09:00 程序员Seven
阅读(66)
评论(0)
推荐(0)
2025年5月27日
Linux常用命令介绍-文档编辑
摘要: cat命令 - 在终端设备上显示文件内容 cat命令来自英文词组concatenate files and print的缩写,其功能是在终端设备上显示文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head等,每个命令都有各自的特点。cat命令适合查看内容较少的纯文
阅读全文
posted @ 2025-05-27 09:00 程序员Seven
阅读(487)
评论(0)
推荐(0)
2025年5月26日
Linux常用命令介绍-文件管理
摘要: MV命令 - 移动或改名文件 mv命令来自英文单词move的缩写,中文译为“移动”,其功能与英文含义相同,能够对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作
阅读全文
posted @ 2025-05-26 09:00 程序员Seven
阅读(215)
评论(0)
推荐(0)
2025年5月23日
如果让你改造下 HashMap 的扩容实现,你会怎样优化?
摘要: 假设有一个 1G 大的 HashMap,此时用户请求过来刚好触发它的扩容.那么当前用户请求会被阻塞,因为 HashMap的底层是基于数组+链表(红黑树)来实现的,一旦它发生扩容,就需要新增一个比之前大2倍的数组,然后将元素copy到新的数组上 那么如何优化呢? 简要回答 此时可以借鉴 Redis 的
阅读全文
posted @ 2025-05-23 09:00 程序员Seven
阅读(127)
评论(0)
推荐(0)
2025年5月22日
假设有一个 1G 大的 HashMap,此时用户请求过来刚好触发它的扩容,会怎样?
摘要: 简要回答 如果刚好触发扩容,那么当前用户请求会被阻塞,因为 HashMap的底层是基于数组+链表(红黑树)来实现的,一旦它发生扩容,就需要新增一个比之前大2倍的数组,然后将元素copy到新的数组上 而 1G 的 HashMap 够大,所以扩容需要一定的时间,而扩容使用的又是当前的线程,所以用户此时会
阅读全文
posted @ 2025-05-22 09:00 程序员Seven
阅读(659)
评论(5)
推荐(0)
2025年5月21日
反转链表(花式反转)
摘要: 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目
阅读全文
posted @ 2025-05-21 09:00 程序员Seven
阅读(333)
评论(0)
推荐(1)
2025年5月20日
RocketMQ源码详解(消息存储、Consumer)
摘要: 消息存储 消息存储核心类 private final MessageStoreConfig messageStoreConfig; //消息配置属性 private final CommitLog commitLog; //CommitLog文件存储的实现类 private final Concur
阅读全文
posted @ 2025-05-20 09:00 程序员Seven
阅读(290)
评论(0)
推荐(0)
2025年5月19日
RocketMQ源码详解(NameServer、Producer)
摘要: NameServer 架构设计 消息中间件的设计思路一般是基于主题订阅发布的机制,消息生产者(Producer)发送某一个主题到消息服务器,消息服务器负责将消息持久化存储,消息消费者(Consumer)订阅该兴趣的主题,消息服务器根据订阅信息(路由信息)将消息推送到消费者(Push模式)或者消费者主
阅读全文
posted @ 2025-05-19 09:00 程序员Seven
阅读(487)
评论(0)
推荐(0)
上一页
1
···
3
4
5
6
7
8
9
10
11
···
16
下一页
公告