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