跳至主要內容
Dubbo 面试之应用

Dubbo 面试之应用

简介

【简单】Dubbo 是什么?为什么使用 Dubbo?

Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。

Dubbo 提供了三大核心能力:

  • 面向接口的远程过程调用(RPC):提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
  • 智能容错和负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
  • 服务自动注册和发现:支持多种注册中心服务,服务实例上下线实时感知。

钝悟...大约 16 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试
Dubbo 面试之服务治理

Dubbo 面试之服务治理

服务注册和发现

【中等】什么是服务注册与发现?Dubbo 如何实现?

什么是服务注册与发现?

服务注册与发现是微服务的核心基础设施,通过解耦服务地址硬编码,实现动态扩缩容故障自动恢复

  • 服务注册(Registration):服务提供者(Provider)启动时,将自己的 IP、端口、接口名 等信息上报到注册中心(如 Zookeeper/Nacos)。举例订单服务启动后,向注册中心注册:"order-service: 192.168.1.100:8080"
  • 服务发现(Discovery):服务消费者(Consumer)从注册中心 拉取可用服务列表,并基于负载均衡策略选择目标实例。举例支付服务需要调用订单服务时,从注册中心获取所有可用的order-service节点列表。

钝悟...大约 34 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试服务治理
Java 虚拟机面试二

Java 虚拟机面试二

垃圾收集

【困难】如何判断 Java 对象是否可以被回收?

判断 Java 对象是否可以被回收有两种方法:

  • 引用计数法
  • 可达性分析法

引用计数法

引用计数算法(Reference Counting)的原理是:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。

引用计数算法简单高效,但是存在循环引用问题——两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。


钝悟...大约 22 分钟JavaJavaCore面试JavaJavaCore面试JVM
MyBatis 面试

MyBatis 面试

【简单】MyBatis 中 #{} 和 ${} 的区别是什么?

MyBatis 中 #{}${} 的区别对比

特性 #{}(预编译占位符) ${}(字符串拼接)
底层原理 使用 PreparedStatement,生成带 ? 的 SQL,预编译防止注入。 直接拼接字符串到 SQL 中,无参数化处理。
SQL 注入风险 ❌ 安全(自动转义特殊字符)。 ✔️ 高风险(需手动过滤参数)。
适用场景 动态条件值(如 WHERE id = #{value})。 动态表名、列名(如 ORDER BY ${column})。
数据类型处理 自动识别 Java 类型,匹配 JDBC 类型(如 DateTIMESTAMP)。 原样替换,可能导致语法错误(如字符串未加引号)。
性能 预编译 SQL 可复用,高效。 每次生成新 SQL,效率较低。
示例 xml SELECT * FROM user WHERE name = #{name} xml SELECT * FROM ${tableName}

钝悟...大约 7 分钟Java框架ORMJava框架ORMMyBatis
MySQL 面试之事务和锁篇

MySQL 面试之事务和锁篇

MySQL 事务

扩展阅读:

【简单】什么是事务,什么是 ACID?

事务指的是满足 ACID 特性的一组操作。事务内的 SQL 语句,要么全执行成功,要么全执行失败。可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。通俗来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败


钝悟...大约 26 分钟数据库关系型数据库mysql数据库关系型数据库mysql面试
MySQL 面试之索引篇

MySQL 面试之索引篇

综合

【简单】什么是索引?为什么要使用索引?

“索引”是数据库为了提高查找效率的一种数据结构

日常生活中,我们可以通过检索目录,来快速定位书本中的内容。索引和数据表,就好比目录和书,想要高效查询数据表,索引至关重要。在数据量小且负载较低时,不恰当的索引对于性能的影响可能还不明显;但随着数据量逐渐增大,性能则会急剧下降。因此,设置合理的索引是数据库查询性能优化的最有效手段

【简单】索引的优点和缺点是什么?


钝悟...大约 21 分钟数据库关系型数据库mysql数据库关系型数据库mysql面试
MySQL CRUD

MySQL CRUD

概述

CRUD 由英文单词 Create, Read, Update, Delete 的首字母组成,即增删改查

本文通过介绍基本的 MySQL CRUD 方法,向读者呈现如何访问 MySQL 数据。

扩展阅读:SQL 语法必知必会


钝悟...大约 3 分钟数据库关系型数据库mysql数据库关系型数据库mysqlcrud
2
3
4
5
...
60