- 博客(90)
- 收藏
- 关注
原创 算法之旅:LeetCode 拓扑排序由简入繁完全攻略
解决依赖问题,如课程安排(207, 210)。处理图中状态分类的问题,如安全状态(802)。分析关键点或入度特性,如找到最小的起点集合(1557)。拓扑排序不仅是一种算法,更是一种理解图结构的思维方式。在面试中,遇到类似依赖关系的题目,尝试从有向图的角度切入往往是一个很好的突破点。
2024-11-30 11:45:19 675
原创 深度解析:掌握LeetCode高频前缀和问题的关键技巧
希望本次题目的解析能够加深您对前缀和技巧的理解,并激发您解决更多复杂问题的兴趣。如果您渴望探索更多精心挑选的高频LeetCode面试题,以及它们背后的巧妙解法,欢迎您访问我的博客,那里有我精心准备的一系列文章,旨在帮助技术爱好者们提升算法能力与编程技巧。👉更多高频有趣LeetCode算法题在我的博客中,每一篇文章都是我对算法世界的一次深入挖掘,不仅包含详尽的题目解析,还有我个人的心得体会、优化思路及实战经验分享。无论是准备面试还是追求技术成长,我相信这些内容都能为您提供宝贵的参考与启发。
2024-11-27 22:45:59 951
原创 几道高频面试中的有趣LeetCode链表算法题(进阶版)
首先拿到这道题直观的感受就是可以将链表转换为其它类型来进行对数据排序,然后重新生成链表的方法得到结果,但是这样不够优雅,要面临一定的时间复杂度和空间复杂度的开销,有没有一种别的进阶方法能在 `O(Nlog n)` 时间复杂度和常数级空间复杂度下,对链表进行排序呢?
2024-11-20 21:28:18 980
原创 FreeMarker模版引擎入门及实战
模板引擎是一种用于生成**动态内容**的库或框架,它通过将预定义的模板和特定数据结合,生成最终的输出内容。模板引擎的使用有许多优点。首先,它提供了模板文件的语法和解析功能。开发者只需按照特定格式(例如 `${参数}` 的语法)编写模板文件,模板引擎就能自动将数据注入模板,生成完整的文件,而不需要手动编写解析逻辑。
2024-11-05 23:49:14 969
原创 面试必备:RabbitMQ与Kafka核心知识点总结
在无数次的复习巩固中,我逐渐意识到一个问题:面对同样的面试题目,不同的资料来源往往给出了五花八门的解释,这不仅增加了学习的难度,还容易导致概念上的混淆。特别是当这些信息来自不同博主的文章或是视频教程时,它们之间可能存在的差异性使得原本清晰的概念变得模糊不清。更糟糕的是,许多总结性的面试经验谈要么过于繁复难以记忆,要么就是过于简略,对关键知识点一带而过,常常在提及某项技术时,又引出了更多未经解释的相关术语和实例,例如,在讨论ReentrantLock时,经常会提到这是一个可重入锁,并存在公平与非公平两种实现方
2024-10-24 11:06:36 965
原创 面试中的JVM:结合经典书籍的深度解读
(源自《深入理解Java虚拟机》第三版 2.2.1节)1)程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器⼯作时通过改变这个计数器的值来选取下⼀条需要执⾏的字节码指令,分⽀、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。2)另外,为了线程切换后能恢复到正确的执⾏位置,每条线程都需要有⼀个独⽴的程序计数器,各线程之间计数器互不影响,独⽴存储,我们称这类内存区域为“线程私有”的内存。
2024-10-21 17:01:16 954
原创 算法搭积木:一起来拼装 LRU!!!
LRU 缓存机制(Least Recently Used Cache)是力扣(LeetCode)上一道非常重要的题目,在技术面试中具有很高的出现频率。它结合了链表的插入删除操作和哈希表的快速查找特性。LRU 缓存问题是许多软件公司(小中大厂均有所涉猎)面试中的经典题目,几乎每一位软件工程师都可能在面试过程中遇到。
2024-10-16 22:51:40 699
原创 速通买卖股票的最佳时机(动态规划一网打尽!)
👊虽然在处理某些股票相关的问题时,直接使用简单的方法可能看起来更直接也更容易实现,但我希望通过采用一种更为通用的方法——比如来解决问题,即便这在开始时可能会让人觉得有些复杂或繁琐。实际上,使用如等方法可能在解决这类问题时更加直观且效率更高。然而,我们的目标是通过动态规划这种更具普遍性的策略,帮助大家建立起解决这类问题的能力,使得在未来面对更多类似挑战时可以更加从容不迫,并且能够用。这样做是为了长远考虑,帮助积累解决问题的通用技巧,而不是仅仅针对单一问题寻找捷径。
2024-10-08 23:44:47 869
原创 大师级GC调优:剖析高并发系统的垃圾回收优化实战
一般的调优步骤大体上分为以下几个部分:1. **熟悉业务场景**2. **(发现问题)性能监控:**GC 频繁、CPU load过高、OOM、内存泄漏、死锁、程序响应时间较长等。3. **(排查问题)性能分析:**打印GC日志,通过GCviewer或者[http://gceasy.io](http://gceasy.io)来分析日志信息;运用命令行工具,jstack,jmap,jinfo等;dump出堆文件,使用内存分析工具分析文件使用阿里Arthas,或jconsole,VisuaIVM来实时查
2024-10-03 20:08:26 760
原创 「轻盈」之旅:OOM故障重现与解决
本项目均采用 `VisualVM 2.1.10` 进行dump文件的分析。JDK1.8及之前所在目录的`bin`目录下有自带的VisualVM,JDK1.8以后需要自行手动安装下载。下载地址:[https://visualvm.github.io/download.html](https://visualvm.github.io/download.html)
2024-10-01 23:12:13 984
原创 二刷LeetCode:“51.N皇后 & 37.解数独”题解心得(简单易懂)
🍏我第一次尝试这两道回溯算法题是在2023年的冬天。那一年,西安的冬天冷得让人直哆嗦,而在暖和得几乎让人犯困的图书馆里,这两道题却让我的心情比外面的天气还要凉快几分,简直是雪上加霜,冷到心坎里去了。之前跟着刷题时,前面几道关于子集、组合和排列的问题简直就像是小菜一碟,让我一度觉得自己又行了。结果呢?这两道‘困难’级别的题目直接给我来了个下马威。如果你第一次就能把解析从头到尾捋个差不多,那你的水平就很NB了!(反正我当时是直接懵圈,只能尴尬而不失礼貌地保持沉默)
2024-09-24 11:59:23 1121
原创 MySQL面试不翻车指南:轻松掌握数据库秘籍
在无数次的复习巩固中,我逐渐意识到一个问题:面对同样的面试题目,不同的资料来源往往给出了五花八门的解释,这不仅增加了学习的难度,还容易导致概念上的混淆。特别是当这些信息来自不同博主的文章或是视频教程时,它们之间可能存在的差异性使得原本清晰的概念变得模糊不清。更糟糕的是,许多总结性的面试经验谈要么过于繁复难以记忆,要么就是过于简略,对关键知识点一带而过,常常在提及某项技术时,又引出了更多未经解释的相关术语和实例,例如,在讨论ReentrantLock时,经常会提到这是一个可重入锁,并存在公平与非公平两种实现方
2024-09-22 10:56:33 1662
原创 Java集合必知必会:热门面试题汇编与核心源码(ArrayList、HashMap)剖析
正是基于这样的困扰与思考,我决定亲自上阵,撰写一份与众不同的面试指南。这份指南不仅仅是对现有资源的简单汇总,更重要的是,它融入了我的个人理解和解读。我力求回归技术书籍本身,以一种层层递进的方式剖析复杂的技术概念,让那些看似枯燥乏味的知识点变得生动起来,并在我的脑海中构建起一套完整的知识体系。我希望通过这种方式,不仅能帮助自己在未来的技术面试中更加从容不迫,也能为同行们提供一份有价值的参考资料,使大家都能在这个过程中有所收获。
2024-09-21 09:40:02 1369
原创 Java SE基础知识详解:源于技术书籍的深度解读
正是基于这样的困扰与思考,我决定亲自上阵,撰写一份与众不同的面试指南。这份指南不仅仅是对现有资源的简单汇总,更重要的是,它融入了我的个人理解和解读。我力求回归技术书籍本身,以一种层层递进的方式剖析复杂的技术概念,让那些看似枯燥乏味的知识点变得生动起来,并在我的脑海中构建起一套完整的知识体系。我希望通过这种方式,不仅能帮助自己在未来的技术面试中更加从容不迫,也能为同行们提供一份有价值的参考资料,使大家都能在这个过程中有所收获。
2024-09-18 22:00:17 1243
原创 Java多线程面试精讲:源于技术书籍的深度解读
正是基于这样的困扰与思考,我决定亲自上阵,撰写一份与众不同的面试指南。这份指南不仅仅是对现有资源的简单汇总,更重要的是,它融入了我的个人理解和解读。我力求`回归技术书籍本身`,以一种层层递进的方式剖析复杂的技术概念,让那些看似枯燥乏味的知识点变得生动起来,并在我的脑海中构建起一套完整的知识体系。我希望通过这种方式,不仅能帮助自己在未来的技术面试中更加从容不迫,也能为同行们提供一份有价值的参考资料,使大家都能在这个过程中有所收获。
2024-09-15 01:09:30 1436
原创 都2024年了,你还在手动敲SQL吗?试试这款开源免费的AI数据库!
就在为这些问题苦恼之际,我不禁想,是否有一款工具能够同时简化这一系列的操作,并且最好还能集成AI能力,以减轻手动编写SQL的压力?带着这样的需求,我在GitHub上搜索相关项目时,偶然发现了一个名为Chat2DB的智能数据库客户端。这款工具已经获得了接近15K的Star,并且成功跻身GitHub的开源项目TOP100榜单之中。
2024-08-24 15:30:17 1729 2
原创 从零开始掌握限流技术:计数器、滑动窗口、漏桶与令牌桶详解
随着互联网业务的发展,如`秒杀活动`、`双十一促销`等场景,系统经常会面临高并发流量的挑战。在这种情况下,如果不加以限制,系统可能会因为流量过大而崩溃。为了避免这种情况发生,就需要采取限流措施来保护系统。
2024-08-19 17:17:50 1192
原创 MongoDB & Redis 快速上手:NoSQL数据库操作精要
☘️随着大数据时代的到来,非关系型数据库因其灵活性和扩展性逐渐受到开发者的青睐。 和 作为两种非常流行的 数据库,各自拥有独特的特性和应用场景。 是一款的数据库,适用于需要存储复杂数据结构的应用;而 则以其卓越的速度和内存存储能力著称,非常适合和。✍️本文旨在为初学者提供一份简洁明了的手册,帮助大家快速掌握 和 的基本语法及常用操作。通过本指南的学习,读者将能够迅速上手这两种数据库,为实际项目开发奠定坚实的基础。🤲本文内容均基于撰写,并附带了相应的 SQL 语法链接。我希望在为大家提供正确语法规
2024-08-17 19:17:45 1208
原创 从零开始:MySQL、Oracle、PostgreSQL、SQL Server 快速上手
余撰此文,乃为导引初窥数据库之学人,俾其明了`表、视图、函数、存储过程及触发器之义理,及其于诸般平台之上`创建`、`修改`与`废弃`之法式。盖初学之人,常陷于迷雾之中,难辨东西,故须详述而明之。谨记,学者务须多览`官方文档!本文皆基于官方文档撰写,以求精准无误。盖官方文档乃权威之所出,详实可信,为学者之必备良伴。
2024-08-02 19:25:16 1166
原创 DBMotion x Chat2DB:高效迁移,优雅同步,数据腾飞不再愁
数据传输服务DBMotion是一款轻量、绿色的数据库迁移同步校验工具。支持国产化数据迁移、支持容灾演练、支持两地三中心和异地多活;源库无感知、简单易集成、丝滑高性能。助您在多云之间随心迁移、自由容灾。v1.0.0 DBMotion插件支持的对象迁移、全量数据迁移、增量同步;目前支持 5.6、5.7、8.0 三个版本的同版本迁移或向高版本迁移。目标数据库中存在相同名字的对象将会被重建,所以在迁移前请仔细检查目标数据库以避免覆盖和损坏数据。建议在非高峰时段进行数据迁移,以减少数据更新和DDL变更的影响。
2024-07-25 16:39:34 1158
原创 破解网络奥秘:一图胜千言,TCP重传、滑动窗口、流量与拥塞控制全解析
TCP 是一个且伟大的协议,它通过许多机制来确保传输的可靠性。为了实现这一目标,TCP需要处理各种问题,比如数据损坏、丢包、重复数据以及分片顺序混乱等。如果这些问题得不到解决,可靠传输就无从谈起。众所周知,TCP 是一个可靠传输的协议,那么它是如何实现这种可靠性的呢?为了实现可靠传输,需要考虑许多方面的问题,例如数据的破坏、丢包、重复传输以及分片顺序的混乱等。如果这些问题得不到解决,可靠传输就无从谈起。TCP 是通过以下机制来实现可靠传输的:序列号、确认应答、重传控制、连接管理以及窗口控制。
2024-07-24 11:38:09 814
原创 绕过 Accept 的秘密通道:探索建立 TCP 连接的另类法则
如果没有这个accept方法,TCP连接还能建立起来吗?其实只要在执行`accept()` 之前执行一个 `sleep(20)`,然后立刻执行客户端相关的方法,同时抓个包,就能得出结论。
2024-07-23 15:27:57 636
原创 驯龙高手:Kubernetes,那条驾驭容器云的巨龙
作为一个程序员,假设我写了一个博客应用服务,并把它部署在了云平台上。结果,没想到这个应用服务居然太受欢迎了,访问量大到让服务器直接崩溃!一开始,我只能眼睁睁看着它像多米诺骨牌一样倒下,心里崩溃程度不亚于它。于是,我赶紧祭出一些工具,自动重启那些挂掉的应用服务,简直就像给它们打了强心针。然而,这还不够,我决定将应用服务部署在好几个服务器上,让它们来个集体作战。这次总算扛住了访问量的冲击,博客应用服务终于不再频繁崩溃了。后来我增加了商城应用服务和语音应用服务,随着应用服务数量的增加,需求也变得多种多样。
2024-07-20 23:37:35 787
原创 网络世界的神奇插座:揭秘 Socket 如何让程序跨越千里对话
想象一下,互联网就像一片无边无际的海洋,而 Socket 就是那艘能够带你航行至任何角落的神奇海盗船。初次接触 Socket 的你,或许正像一位刚刚登陆神秘岛屿的探险者,面对浩瀚的数据海洋,心中充满了好奇与困惑。但在本文中,我们将一起揭开 Socket 的神秘面纱,从一个网络新手的角度出发,逐步探索 Socket 的工作原理及其在操作系统内核中的实现方式。你将学会如何驾驭这艘数据之舟,如何在互联网的波涛中自由穿梭,最终成为一名能够征服数据风暴的海盗王。准备好了吗?
2024-07-18 15:11:12 883
原创 云端之上,数据之下:CDN,塑造未来信息生态
对于开发同学来说,CDN这个词,既熟悉又陌生。平时搞开发的时候很少需要碰这个,但却总能听别人提起。我们都听过它能加速,也大概知道个原因,但是往深了问就感觉有些懵了。没关系,今天我们换个角度重新认识下CDN。
2024-07-17 22:31:06 809
原创 “快”乐使者UDP与“稳”重先生TCP:网络世界的双雄争霸
试想一下,UDP就像是数字世界里的那位自由奔放的冲浪者,他驾着数据包的“浪板”,一头扎进互联网的浩瀚海洋,追逐着速度与激情的梦。他不拘泥于规则,也不在意每一次跳跃是否会被完美捕捉——毕竟,他是那个敢于冒险、享受过程的探险家。UDP的口号是:“我传递,我自由!”他特别擅长那些对的场合,比如视频会议上的欢声笑语、在线游戏中的紧张刺激,还有那场你期待已久的现场直播。在这些时刻,UDP就是那位让欢乐无缝衔接、让心跳同步加速的幕后英雄。
2024-07-15 16:49:34 542
原创 揭秘!MySQL索引背后的秘密武器:B+树为何力压跳表,独领风骚?
如果MySQL使用跳表,那么它的性能特征会有所不同。MySQL是为大规模数据存储和复杂事务设计的。它处理的数据量可能达到TB甚至PB级别,这些数据主要存储在**磁盘**上,由于跳表主要针对内存优化,MySQL可能无法充分利用跳表的优势,反而会因为频繁的磁盘I/O而降低性能。此外,跳表的多级索引需要额外的内存空间,这在磁盘存储环境中可能会导致更大的存储开销。
2024-07-13 16:52:48 1069
原创 懒人福音:Java版Webhook机器人,一键开启‘躺赢’模式
在当今快速发展的数字化时代,自动化和即时通讯成为了提升工作效率的关键因素。企业微信、飞书、钉钉等协作平台凭借其强大的沟通和管理功能,已经成为许多企业和组织日常运营的基石。然而,随着业务需求的日益复杂,仅仅依赖平台的基础功能已无法满足定制化和自动化的高级需求。
2024-07-13 10:38:44 2481
原创 校招全程指南:解密招聘批次与时间节点
在以上这些批次中,暑期实习,提前批,正式批,春招一般是独立的机会,你可以多次投递。所以要早做准备,尽早投递,能参与的尽量要参与,早拿 offer,多拿 offer。当然,这些批次并不是完全独立的,大公司都会有面评记录,如果面评糟糕的话,对你之后的应聘有很大的影响。当然,不是每一家公司和每一个岗位都有那么多批次,一般说来,还是那个大原则,一个萝卜一个坑,招满即止。之前认识很多同学,既无升学打算,又无明确职业规划,最后错过了秋招,只能春招随便捡个不甚满意的工作。
2024-07-05 15:56:12 569
原创 解读招聘过程术语:从 Offer 到池子的那些事儿
HR:Human Resource。即人事,最广泛定义是指人力资源管理工作,包含六大模块:人力资源规划、招聘、培训、绩效、薪酬和劳动关系等。多用于公司的人事部门。也是公司的一个重要的职位。公司的人员招聘,培训,职员的考核,职员的薪酬,职员调动都和人事有关。即,招人的。
2024-07-05 15:49:19 614
原创 秒拿AI模型API Key!Chat2DB AI模型切换实用秘籍
智谱 AI 是由清华大学计算机系技术成果转化而来的公司,致力于打造新一代认知智能通用模型。
2024-07-04 15:36:58 724
原创 揭秘HTTPS:数字世界的隐形守护者,为何公钥加密后的秘密,唯有私钥能解开?
HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。
2024-06-30 19:23:02 557
原创 Java登录管理功能的自我理解(尚庭公寓)
假设一个电商网站使用了一个由三台服务器组成的集群来处理用户请求。当用户在浏览商品、添加购物车和结账时,这些请求可能会被负载均衡器分配到不同的服务器上。
2024-06-26 16:56:37 1115
原创 项目中MySQL数据库设计(尚庭公寓)
数据库设计中最常采用的模型为,简称ER模型。其核心思想是将现实世界中的复杂数据表示为一组实体,并描述这些实体之间的关系。通常对应现实世界中的一个,例如:学生、班级、教师、课程。每个实体都包含一组,这些属性用于描述实体,例如学生实体包含姓名、年龄、性别等属性。用于描述各实体之间的联系,例如学生和班级之间存在从属关系。其中可分为三种,例如学生和班级之间的关系为、学生和课程之间的关系为。实体关系模型通常使用实体关系图(ER diagram)进行表示。
2024-06-02 19:28:20 1257 3
原创 「Mac上的数据库狂欢」:Docker开箱,秒变数据大神!
虽然说用命令行会显得我们更加专业一些,但对于我英语水平不怎么好的人来说,毕竟命令多又长,还不好记。我个人是喜欢复杂问题简单化,踩了很多的坑,摸索着探出一条更适合处于初期或是过渡期的小伙伴,后期咱们可以试着去对付命令行。其实没什么好尴尬的,只要你会用自己喜欢的方式,无论高不高级,你一样优秀!!!只要你的电脑有,就能操作!本次我们要下载的数据库(准确来说是镜像)有Mysql、Postgres sql、Mongo db、Redis、Clickhouse、DM(达梦)、Presto、Mariadb…后面还会继续推出
2024-05-29 15:45:15 1911 1
原创 如何在go项目中实现发送邮箱验证码、邮箱+验证码登录
基本操作流程:1. 用户提交邮箱(email) 以请求 验证码(code)。2. 服务器生成验证码并发送到用户邮箱。3. 用户输入收到的验证码和邮箱进行登录(login)。4. 服务器验证验证码和邮箱。5. 如果验证成功,用户登录成功(sucess);否则,返回错误信息(error)。
2024-05-23 22:10:11 2073 2
原创 IntelliJ IDEA常用快捷键 + 动图演示!
本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA (Windows 版) 的所有快捷键。并在此基础上,为 90% 以上的快捷键提供了动图演示,能够直观的看到操作效果。该快捷键共分 11 种,可以方便的按各类查找自己需要的快捷键~~
2024-05-18 15:24:19 1261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人