- 博客(62)
- 资源 (2)
- 收藏
- 关注
原创 谢飞机面Java大厂:音视频场景下的Spring Boot + Kafka + Redis实战三连问
以幽默面试故事形式,带小白掌握音视频场景中Spring Boot集成Kafka消息队列与Redis缓存的典型架构设计、技术选型依据及避坑要点。含3轮递进式真题+逐题深度解析。
2026-03-26 23:18:55
927
原创 谢飞机面Java大厂:音视频场景下的Spring Boot + Kafka + Redis实战三连问
面试官:张工,某一线大厂音视频中台资深架构师(黑眼圈深、咖啡杯不离手)求职者:谢飞机,三年Java经验,简历写着“精通Spring全家桶”,实际靠Ctrl+C/V活到今天 🛩️。
2026-03-26 23:14:53
494
原创 璋㈤鏈虹殑Java澶у巶闈㈣瘯璁帮細浠嶴pring Boot鍒癒ubernetes锛�3杞湡棰樺叏瑙f瀽锛�
浠ュ菇榛樻晠浜嬪舰寮忚繕鍘熷ぇ鍘侸ava闈㈣瘯3杞湡棰橈紝瑕嗙洊鐢靛晢绉掓潃銆佷簯鍘熺敓鍙娴嬫�с�丄IGC椋庢帶涓夊ぇ涓氬姟鍦烘櫙锛屾瘡棰橀檮璇︾粏鎶�鏈В鏋愪笌灏忕櫧瀹炴搷鎸囧崡銆�
2026-03-25 21:05:26
380
原创 互联网大厂Java面试:严肃面试官与搞笑程序员的对决
在互联网大厂的面试中,严肃的面试官与搞笑的程序员上演了一场精彩的对话。面试官提出Java核心知识、HashMap、Spring等问题,程序员则用幽默的方式作答。本文不仅展现了轻松的面试氛围,还附上了详细的技术问题答案解析,帮助读者更好地理解相关知识。
2026-03-24 21:53:23
30
原创 互联网大厂Java面试:严肃面试官与搞笑程序员的对决
在互联网大厂的面试中,严肃的面试官与搞笑的程序员上演了一场精彩的对话。面试官提出Java核心知识、HashMap、Spring等问题,程序员则用幽默的方式作答。本文不仅展现了轻松的面试氛围,还附上了详细的技术问题答案解析,帮助读者更好地理解相关知识。
2026-03-24 21:52:45
35
原创 leetcode 226. 翻转二叉树 java解法
递归函数在递归过程中使用的栈空间的最大深度等于树的高度,最坏情况下,树是一个链表结构,高度为 n,因此空间复杂度为 O(n)。翻转一棵二叉树意味着交换每个节点的左右子树。递归函数需要访问每个节点恰好一次,因此时间复杂度为 O(n),其中 n 是树中节点的数量。给你一棵二叉树的根节点 root,翻转这棵二叉树,并返回其根节点。递归的终止条件是当前节点为 null,即叶子节点。
2024-03-08 13:33:16
860
原创 leetcode 148. 排序链表 java解法
这是一个链表排序的问题,由于要求时间复杂度为 O(nlogn),适合使用归并排序(Merge Sort)来解决。空间复杂度: O(logn)(递归调用栈的深度)时间复杂度: O(nlogn)
2024-02-20 16:29:23
860
原创 LeetCode 24: 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。只能进行节点交换,不允许修改节点内部的值。
2024-01-29 15:47:45
604
原创 leetcode 2. 两数相加
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。遍历两个链表,同时将对应位的数字相加,并考虑进位。使用一个额外的节点作为头节点,依次生成新的节点。这个解法通过一次遍历即可完成整个加法过程,实现了高效的相加操作。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。请你将两个数相加,并以相同形式返回一个表示和的链表。
2024-01-22 14:33:39
488
原创 leetcode 21. 合并两个有序链表
给定两个有序链表list1和list2,将它们合并成一个有序链表。合并后的链表应由两个输入链表的节点组成。返回合并后链表的头。你不能修改列表。请输出结果为新链表的头部。
2024-01-22 13:56:58
607
原创 leetcode 141 判断链表中是否存在环
给定一个单链表的头节点head,判断链表中是否存在环。如果链表中存在环,则返回true,否则返回false。
2024-01-17 21:23:24
582
原创 LeetCode 160: 两个链表的相交节点 - 优雅解法
给定两个单链表headA和headB的头节点,返回它们相交的节点。如果两个链表没有相交,返回null。
2024-01-15 21:44:11
1222
原创 LeetCode 240: Efficient Search in a 2D Sorted Matrix / LeetCode 240:二维有序矩阵中的高效搜索
在这篇文章中,我们将讨论如何高效地在一个二维有序矩阵中搜索特定的目标值。这种矩阵具有特定的属性,即每一行都按升序排列,并且每一列也按升序排列。我们将从理解问题、解题过程到优化方案一步步展开。
2024-01-11 14:39:44
452
原创 旋转图像(Rotate Image)- LeetCode 48
这是一个经典的二维矩阵操作题。理解转置和水平翻转的基本概念,以及正确的执行顺序,将帮助我们高效地解决这个问题。通过这篇文章,希望你能够更深入地理解如何在Java中实现这一算法。
2024-01-10 14:59:17
771
原创 LeetCode算法题解:螺旋矩阵
通过上述方法和代码实现,我们可以按照螺旋顺序遍历给定的矩阵,并将其所有元素存储在结果列表中。通过合理的边界控制和条件判断,我们确保了遍历的正确性和高效性。
2024-01-10 14:29:28
709
原创 总结一下最近工作中遇到的线程池相关问题
总结一下最近工作中遇到的线程池相关问题背景:在业务代码中,新建线程池的代码如下:ThreadPoolExecutor myThreadPool = new ThreadPoolExecutor(0, 100, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>());我们的配置是corePoolSize=0;maximumPoolSize=100;keepAliveTime,=0L;使用LinkedBlocking
2022-01-24 21:45:05
514
原创 WEB安全知识学习 - day01 --Burp Suite工具的使用
Burp Suite是一个集合了多种渗透测试组件的渗透工具,使我们自动化地或手工地能更好的 完成对web应用的渗透测试和攻击。Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。启动BurpSuite后,默认拦截的是本地的8080端口.同时,需要在浏览器中...
2021-10-20 13:48:09
2932
1
原创 WEB安全知识学习 - day01 --信息搜集
一、信息搜集–IP内容分发网络(content delivery network或content distribution network,缩写作CDN)指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。CDN节点会在多个地点,不同的网络上摆放。这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳
2021-10-19 17:24:52
3099
原创 JVM虚拟机学习02-运行时数据区
运行时数据区(内存结构)在类加载器系统将class文件加载到JVM中后,JVM会用一段存储空间来存储执行过程中用到的数据和相关信息,这个数据段被叫做Runtime data area(运行时数据区),运行时数据区分为程序计数器、java方法栈,本地方法栈、堆和方法区五个部分。程序计数器(PC)PC是一段较小的内存,用来存放java程序下一条指令所在的地址(如果正在执行的是native方法,则该区域的值为undefined),程序计数器的空间大小不会随着程序的运行而变化,所以该区域不存在内存.
2021-08-05 09:21:52
200
原创 JAVA虚拟机学习总结01-类加载机制
JVM虚拟机java虚拟机(java virtual machine,JVM),一种能够运行java字节码的虚拟机。作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。比如kotlin、scala等。JVM的基本结构JVM由三个主要的子系统构成类加载子系统 运行时数据区(内存结构) 执行引擎类加载机制类的生命周期一个java类的完整的生命周期会经历加载、连接、初始化、使用、和卸载五
2021-08-02 23:45:19
294
原创 springboot+springcloud 项目实战-实现权限管理系统(idea实现)01数据库设计&实现
新手菜鸟一枚,一直苦于没有趁手的项目。最近在gitee上看到了一个前后端分离的权限管理系统-kitty(mongo),感觉很不错,但是项目本身是通过eclipse实现的。所以希望能够带来一个idea实现的教程,希望能和大家一同进步。一、数据库设计当前项目大多采用领域驱动模型(DDD)进行项目设计,因此第一步需要完成对项目数据库的设计。项目主要包含以下表:sys_config:配置表sys_debt:机构表sys_dict:数据字典表sys_log:日志表sys_login_log:登录日志
2021-04-07 14:52:43
1347
1
原创 CICD实践01 jenkins环境搭建
一、CI/CD持续集成(CI)持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。目的:快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。持续交付(Continuous delivery)持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量
2021-03-05 17:17:47
348
2
原创 从零开始刷Leetcode day19 896. 单调数列
单调数列如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,5,4,4]输出:true示例 3:输入:[1,3,2]输出:false示例 4:输入
2021-02-28 15:30:23
199
原创 从零开始刷Leetcode day18 832. 翻转图像
832. 翻转图像标签:数组难度:简单给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入:[[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]解
2021-02-26 13:56:45
166
原创 从零开始刷Leetcode day17 转置矩阵
867. 转置矩阵难度:简单给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:m == matrix.lengthn == m
2021-02-26 13:54:04
191
原创 类加载器子系统与SPI机制
类加载器加载过程检测此Class是否载入过,即在缓冲区中是否有此Class,如果有直接进入第8步,否则进入第2步。如果没有父类加载器,则要么Parent是根类加载器,要么本身就是根类加载器,则跳到第4步,如果父类加载器存在,则进入第3步。请求使用父类加载器去载入目标类,如果载入成功则跳至第8步,否则接着执行第5步。请求使用根类加载器去载入目标类,如果载入成功则跳至第8步,否则跳至第7步。当前类加载器尝试寻找Class文件,如果找到则执行第6步,如果找不到则执行第7步。从
2020-12-26 16:30:26
269
原创 软件设计师-2018年下-上午-知识点总结
1、 CPU 在执行指令的过程中,会自动修改( )的内容,以使其保存的总是将要执行的下一条指令的地址。A.指令寄存器B.程序计数器C.地址寄存器D.指令译码器解析:指令寄存器(IR,Instruction Register),用于暂存当前正在执行的指令。程序计数器(Program Counter Register),用于存放下一条指令所在单元的地址的地方。地址寄存器(Adress Register,AR),用来保存当前CPU所访问的内存单元的地址指令译码器(Instruction Deco
2020-10-10 16:18:19
1380
1
原创 《码农翻身》--知识点总结--01我是一个线程---线程生命周期、线程池、缓存、锁
一.线程的生命周期当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。 在线程的生命周期中,它要经过 新建(New)、就绪(Runnable)、运行(Running)、阻塞 (Blocked)和死亡(Dead) 5种状态。尤其是当线程启动以后,它不可能一直"霸占"着CPU独自 运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换 。1.新建状态(NEW)当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由JVM为其分配内存,
2020-09-27 19:56:48
652
原创 从零开始刷Leetcode day15 109 有序链表转换二叉搜索树(Convert Sorted List to Binary Search Tree )
有序链表转换二叉搜索树-java解法给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5Given the hea
2020-08-18 17:47:00
191
原创 软考--软件设计师--知识点01
对于如下所示的有向图,其邻接矩阵是一个 5*5 的矩阵,采用邻接链表存储时顶点1 的表结点个数为2,定点5的表结点个数为0,顶点2和3的表结点个数分别为 2,2知识点:邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn} [1] 。G的邻接矩阵是一个具有下列性质的n阶方阵:①对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0,有向图则不一定如此。②在无向图.
2020-08-13 14:15:48
2434
2
Xmind思维导图模板,并非软件.7z
2020-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅