跳至主要內容
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 进行回滚。通俗来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败

ACID 是数据库事务正确执行的四个基本要素。

  • 原子性(Atomicity)
    • 事务被视为不可分割的最小单元,事务中的所有操作要么全部提交成功,要么全部失败回滚。
    • 回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
  • 一致性(Consistency)
    • 数据库在事务执行前后都保持一致性状态。
    • 在一致性状态下,所有事务对一个数据的读取结果都是相同的。
  • 隔离性(Isolation)
    • 一个事务所做的修改在最终提交以前,对其它事务是不可见的。
  • 持久性(Durability)
    • 一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。
    • 可以通过数据库备份和恢复来实现,在系统发生奔溃时,使用备份的数据库进行数据恢复。

一个支持事务(Transaction)中的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性。


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

MySQL 面试之索引篇

综合

【基础】什么是索引?为什么要使用索引?

要点

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

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


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

MySQL CRUD

概述

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

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

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


钝悟...大约 3 分钟数据库关系型数据库mysql数据库关系型数据库mysqlcrud
MySQL 数据类型

MySQL 数据类型

概述

数据类型在 MySQL 中扮演着至关重要的角色,它定义了表中每个字段可以存储的数据种类和格式。

MySQL 支持多种类型,大致可以分为三类:数值、时间和字符串类型。


钝悟...大约 9 分钟数据库关系型数据库mysql数据库关系型数据库mysql数据类型
MySQL 简介

MySQL 简介

概述

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS 应用软件之一。

本文简单介绍了 MySQL 的功能、特性、发行版本、简史、概念,可以让读者在短时间内对于 MySQL 有一个初步的认识。


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