自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(306)
  • 收藏
  • 关注

原创 面经整理——操作系统

2025-12-09 22:10:14 212

原创 面经整理——AI

模型上下文协议(Model Context Protocol)旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源。客户端负责发送请求给 MCP 服务器,服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限。

2025-12-09 21:59:44 730

原创 面经整理——Go

模块化设计:将复杂系统拆分为多个独立进程(如 Web 服务器的 “主进程 + 工作进程” 架构);资源共享:多个进程共享文件、数据库连接、硬件设备(如打印机);负载均衡:将任务分发到多个进程并行处理(如分布式计算);故障隔离:单个进程崩溃不影响整个系统(如微服务架构)。cap是append后的大小。

2025-12-08 18:37:53 866

原创 面经整理——数据库

2025-12-08 18:00:36 189

原创 面经整理——算法

采用分治的思想,对于一组数据,选择一个基准元素(哨兵),通常选择第一个或最后一个元素,通过第一轮扫描,比base小的元素都在base左边,比base大的元素都在base右边,再有同样的方法递归排序这两部分,直到序列中所有数据均有序为止。如,选取下标为0的元素作为哨兵,r=num.size()-1, 首先移动r找到比哨兵小的元素,将r当前指向的元素放到l所在位置。然后移动l找到大于等于哨兵的位置,替换r所在的位置。依次交替,知道l与r相遇,将相遇位置赋予哨兵的值。

2025-12-08 17:54:32 176

原创 面经整理——计算机网络

数字签名:用来让客户端验证服务器身份。服务器用自己的私钥利用摘要(最好是不可逆转的,因为每个人都可以利用公钥获得摘要,所以最好无法通过摘要推断出原始数据)生成数字签名,客户端用公钥进行解密验证服务器身份。数字证书:为了防止公钥不被篡改,在通信建立之初,由证书持有者(如服务器、客户端)主动向对方发送。提取 CA 的公钥:若当前证书是 “服务器终端证书”,其颁发者是 “中间 CA”,需先找到中间 CA 的证书(由服务器一起传递的证书链中获取);若当前证书是 “中间 CA 证书”,其颁发者是 “根 CA

2025-12-08 17:54:09 1112

原创 Java集合相关面试题

BlockingQueue (阻塞队列)是一个接口,继承自 Queue。BlockingQueue阻塞的原因是其支持当队列没有元素时一直阻塞,直到有元素;还支持如果队列已满,一直等到队列可以放入新元素时再放入。取模操作可以变为&操作分布较为均匀方便扩容。

2025-11-04 16:10:48 808

原创 Java基础面试题

Java核心概念摘要: Java通过JVM实现跨平台,将源码编译为字节码后由JVM翻译执行。JDK包含开发工具(如编译器),JRE提供运行时环境,JVM负责执行。数据类型转换包括自动、强制和字符串转换,BigDecimal用于精确计算而double可能丢失精度。自动装箱/拆箱方便基本类型与包装类转换,Integer缓存优化了-128至127的对象复用。 面向对象特性中,多态通过重载、重写、接口实现提高扩展性;抽象类定义通用结构但不可实例化;接口规范行为契约,支持多重继承。这些特性构成了Java强大的面向对象

2025-09-01 16:47:22 825

原创 java基础面试题

JVM java虚拟机我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。

2025-08-06 10:29:51 995

原创 7.15 腾讯云智面经整理

服务端重传第二次握手。

2025-07-15 20:57:54 781

原创 java IO流

属于字符流。

2025-06-19 22:05:16 341

原创 6.19 redis面试场景题

QPS(每秒查询率)集中在特定的Key、带宽使用率集中在特定的Key、CPU使用时间占比集中在特定的Key。在查询商品库存时加排他锁分布式锁利用分布式锁+分段缓存利用redis的incr、decr的原子性 + 异步队列。

2025-06-19 11:18:54 1208

原创 6.18 redis面试题 日志 缓存淘汰过期删除 集群

Redis 的重写 AOF 过程是由来完成的。

2025-06-18 16:42:08 1150

原创 java 多线程

【代码】java 多线程。

2025-06-17 20:05:51 199

原创 6.17 Redis面试题 数据结构 线程模型 事务

在 Redis 6.0 版本之后,也采用了多个 I/O 线程来处理网络请求,这是因为随着网络硬件的性能提升,Redis 的性能瓶颈有时会出现在网络 I/O 的处理上。到 Redis 6.0 之后,就将网络IO的处理改成多线程的方式了,因为随着网络硬件的性能提升,Redis 的性能瓶颈有时会出现在网络 I/O 的处理上。虽然压缩列表紧凑型的内存布局能节省内存开销,但是如果保存的元素数量增加了,或是元素变大了,会导致内存重新分配,最糟糕的是会有**「连锁更新」**的问题。

2025-06-17 11:34:43 1116

原创 6.16 操作系统面试题 中断 网络io

CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务。中断事件来自于CPU外部的被称为外部中断,来自于CPU内部的则为内部中断。内部中断来自于处理器内部,其中,常被用于系统调用;而异常则是引起的。异常也和不可屏蔽中断一样不受eflags寄存器的IF位影响,区别在于不可屏蔽中断发生的事件会导致处理器无法运行(如断电、电源故障等),而异常则是影响系统正常运行的中断(如除0、越界访问等)。

2025-06-16 16:05:32 701

原创 java 集合 泛型

可以通过remove删除元素。匿名内部类(重写方法)

2025-06-15 18:09:00 210

原创 6.15 操作系统面试题 锁 内存管理

操作系统设计了虚拟内存,每个进程都有自己的独立的虚拟内存,我们所写的程序不会直接与物理内打交道。分页是把整个虚拟和物理内存空间切成一段段固定尺寸的大小。虚拟地址与物理地址之间通过页表来映射。页表是存储在内存里的,内存管理单元 (MMU)就做将虚拟内存地址转换成物理地址的工作。访问的虚拟地址在页表中查不到时,系统会产生一个缺页异常,进入系统内核空间分配物理内存、更新进程页表,最后再返回用户空间,恢复进程的运行。分页不会有外部碎片,但会有内部碎片页号+偏移量。

2025-06-15 15:56:22 640

原创 java枚举 注解 异常 常用类

map.put()map.remove()map.get()map.containsKey()

2025-06-12 16:46:08 231

原创 6.12 操作系统面试题 进程管理

主要区别在于权限和可执行的操作内核态:CPU可以执行所有的指令和访问所有的硬件资源。内存管理、进程管理、设备驱动程序管理、系统调用等。用户态:CPU只能执行部分指令集,无法直接访问硬件资源。安全性:避免恶意程序对系统资源进行破坏稳定性:用户态程序出问题不会影响系统隔离性:使得操作系统内核与用户程序之间有了明确的边界,有利于系统的模块化和维护。

2025-06-12 10:47:06 994

原创 java面向对象高级部分

2025-06-11 19:52:37 217

原创 6.11 MySQL面试题 日志 性能 架构

binlog 是追加写,写满一个文件,就创建一个新的文件继续写,不会覆盖以前的日志,保存的是全量的日志,用于备份恢复、主从复制;binlog 有 3 种格式类型,分别是 STATEMENT(默认格式)、ROW、 MIXED。

2025-06-11 12:10:24 1037

原创 6.10 Mysql 事务 锁 面试题

是通过行级锁来实现的,序列化隔离级别下,普通的 select 查询是会对记录加 S 型的 next-key 锁,其他事务就没没办法对这些已经加锁的记录进行增删改操作了,从而避免了脏读、不可重复读和幻读现象。尽量在开启事务之后,马上执行 select …执行 update 的时候,会加行级别锁,保证了一个事务更新一条记录的时候,不会被其他事务干扰。执行 update 的时候,会加行级别锁,保证了一个事务更新一条记录的时候,不会被其他事务干扰。是原子性,主要通过锁+undolog 日志保证原子性的。

2025-06-10 17:28:19 637

原创 java 面向对象编程

访问构造器语法:this(参数列表);注意只能在构造器中使用(即只能在构造器中访问另外一个构造器,必须放在第一条语句)引用数据类型:引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参。构造时需验证数据有效性的话可以在构造器中使用setXX方法。super代表父类的引用,用于访问父类的属性、方法、构造器。extend 子类自动拥有父类定义的属性和方法。方法的多态PloyMethod.java。基本数据类型:值拷贝、形参不影响实参。重写和重载就体现多态。

2025-06-10 16:53:51 353

原创 微服务商城-订单微服务

mr 包提供了一个在 Go 语言中执行 MapReduce 操作的框架。它支持并发执行映射和归约函数,并且可以自定义设置。创建订单时首先检查用户、商品、收货地址是否存在(并行)利用dtm创建订单 保证订单和商品库存的数据一致性。修改订单状态为已关闭。

2025-06-10 09:53:08 400

原创 6.9 Mysql面试题 索引相关

页目录就是由多个槽组成的,槽相当于分组记录的索引。我们通过槽查找记录时,可以使用二分法快速定位要查询的记录在哪个槽(哪个记录分组),定位到槽后,再遍历槽内的所有记录,找到对应的记录。建立联合索引时,要把区分度大的字段排在前面,这样区分度大的字段越有可能被更多的 SQL 使用到。使用前缀索引是为了减小索引字段大小,可以增加一个索引页中存储的索引值,有效提高索引的查询速度。在一些大字符串的字段作为索引时,使用前缀索引可以帮助我们减小索引项的大小。(a, b, c) a是全局有序的,bc是全局无序局部有序的。

2025-06-09 17:43:41 1229

原创 Day1 java基础知识

二维数组:inta[][]=newint[2][3]表达式1:表达式2;

2025-06-09 15:04:21 242

原创 微服务商城-商品微服务

我们使用Sorted Set来存储,member为商品的id,即我们只在Sorted Set中存储缓存索引,查出缓存索引后,因为我们自动生成了以主键id索引为key的缓存,所以查出索引列表后我们再查询行记录缓存即可获取商品的详情,Sorted Set的score为商品的创建时间。果是在单体架构的业务当中,是不需要用到分布式事务的.单体架构中,涉及到需要保证多个事务同时成功的场景,只需要创建一个全局的事务对象 如:tx := db.Begin(),然后统一用这一个tx去管理接下来的业务逻辑即可。

2025-06-09 10:42:11 1303

原创 6.8 MySql面试题 基础、存储引擎

第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码在1NF基础上消除非主属性对主码的部分函数依赖)第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。字符, ascii一个字符占一个字节,utf-8一个字符占四个字节。错误:(订单号,产品号) 订单时间 只依赖于订单号。

2025-06-08 11:30:13 916

原创 6.6 计算机网络面试题

2025-06-06 10:09:39 249

原创 6.5 计算机网络面试题

序列号:解决网络包乱序问题确认应答号:解决丢包问题控制位:ACK确认应答 RST强制断开连接 SYN建立连接 FIN断开连接。

2025-06-05 11:15:59 482

原创 微服务商城-用户微服务

将输入的password md5加密后与库中的数据进行比对。根据username查询用户表中的信息。通过uid查询列表 分页 返回总条数。软删除 更新 isdelete。

2025-06-04 21:02:33 247

原创 6.4 计算机网络面试题

及时失效令牌,使用黑名单等C/S 架构是指客户端和服务器端之间的通信模式,客户端通常是一个安装在用户计算机上的应用程序,而服务器则提供数据和服务。B/S 架构是指通过浏览器访问服务器的模式,用户通过浏览器与服务器交互,而不需要安装特定的客户端软件。C/S 架构:适合需要高性能、复杂交互和大量数据处理的场景,但维护和更新成本较高。B/S 架构:适合需要广泛访问、易于维护的应用,用户体验良好,更新简单。

2025-06-04 10:06:33 717

原创 6.3 计算机网络面试题

Socket 使用 TCP: 当使用流式 Socket 时,实际上是通过 TCP 协议进行数据传输。Socket 提供了一个简单的接口,使得开发者可以方便地使用 TCP 协议进行网络通信。Socket 是一种网络通信的抽象,提供了一种用于在网络上进行数据交换的接口。它是应用程序与网络协议之间的中介。在 Go 语言中,利用接口和直接为结构体编写函数之间有几个重要区别。DNS的全称是Domain Name System(域名系统)通过"Content-Length"头字段来进行。

2025-06-03 16:28:52 974

原创 百度golang研发一面面经

观察者模式是一种强大且灵活的设计模式,适用于需要实现对象间动态交互的场景。通过定义清晰的接口和方法,观察者模式能够有效地管理对象之间的关系,提高代码的可维护性和可扩展性。

2025-06-02 11:07:22 925

原创 字节golang后端二面

是一个强大的工具,适用于需要线程隔离的数据存储场景。合理使用可以提高性能和简化代码,但也需要注意内存管理和线程安全问题。

2025-06-01 12:36:40 1348

原创 5.28 后端面经

参考:https://blog.csdn.net/weixin_45565886/article/details/136098371客户端 → 服务器:发起请求,支持哪些加密算法?服务器 → 客户端:返回证书和选定的算法。客户端验证证书 → 生成随机密钥用公钥加密 → 发送给服务器。服务器用私钥解密 → 双方生成对称密钥。后续通信全部使用对称密钥加密。机密性(对称加密数据)身份认证(数字证书验证)完整性(散列算法防篡改)这使得 HTTPS 成为保护隐私(如密码、支付信息)的核心技术。

2025-05-28 13:56:56 923

原创 贝壳后端golang面经

gRPC是Google开源软件,gRPC是基于HTTP2.0协议,而HTTP2.0是基于二进制的HTTP协议升级版本,底层使用Netty框架支持。微服务化,跨平台的服务之间远程调用;protobuf – 跨平台多语言使用协议缓冲区(Protocol Buffers)

2025-05-27 19:42:02 1433 2

原创 5.26 面经整理 360共有云 golang

参考:https://www.cnblogs.com/goloving/p/13590955.htmlselect for update是一种常用的加锁机制,它可以在查询数据的同时对所选的数据行进行锁定,避免其他事务对这些数据行进行修改。比如涉及到金钱、库存等。一般这些操作都是很长一串并且是开启事务的。如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将错的数据一直执行下去,就会有问题。所以需要for upate 进行数据加锁防止高并发时候数据出错。 

2025-05-26 19:52:26 1273

原创 5.22 面经整理

代码段:代码段是用来存放可执行文件的操作指令,可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,它是不可写的。数据段:存放程序静态分配的变量和全局变量。BSS段:包含了程序中未初始化的全局变量,在内存中 bss 段全部置零。堆 heap:当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)

2025-05-22 14:46:04 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除