MyBrtis面试题
发表于|更新于|面试题MyBatis面试题
|总字数:4|阅读时长:1分钟|浏览量:
MyBrtis面试题
文章作者: bbiao
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 片叶不沾身的花园!
相关推荐

2025-08-06
JVM面试题
JVM 面试题Java 内存模型中堆(Heap)和栈(Stack)的区别? 对比维度 堆(Heap) 栈(Stack,通常指虚拟机栈) 存储内容 所有对象实例(new创建的对象)、数组 局部变量(方法内定义的变量)、方法调用信息(栈帧,包含操作数栈、局部变量表等) 线程共享性 所有线程共享,是线程不安全的(需同步机制保障) 线程私有,每个线程有独立的栈,线程间不共享 生命周期 与 JVM 进程一致(随 JVM 启动而创建,退出而销毁) 与线程 / 方法调用绑定:线程启动时创建栈,方法调用时创建栈帧,方法结束时栈帧销毁 内存管理 由 JVM 自动管理,依赖垃圾回收器(GC)回收内存 无需 GC,随方法调用 / 线程结束自动释放内存(栈帧出栈) 大小与调整 内存空间较大(通常几 GB),可通过-Xms(初始)、-Xmx(最大)参数调整 内存空间较小(通常几 MB),可通过-Xss参数调整单个线程的栈大小 异常类型 内存不足时触发OutOfMemoryError: Java heap space 栈深度超限触发StackOverflow...

2025-07-09
Java并发面试题
Java 并发面试题基础什么是 java 中的线程安全查看答案在 Java 中,线程安全是指一个类或对象在多线程环境下能够正确执行,不会出现数据不一致或其他异常。其核心在于处理共享可变状态的访问。 说说线程的几种创建方式查看答案 继承Thread类: 重写 run() 方法。 创建子类对象并调用 start() 方法启动线程。 实现Runnable接口 实现 run() 方法。 将实现类对象作为参数传递给 Thread 构造器,调用 start() 启动线程。 实现 Callable 接口 + FutureTask 实现 Callable<V> 接口,指定返回值类型。 实现 call() 方法,该方法有返回值。 使用 FutureTask<V> 包装 Callable 对象。 将 FutureTask 对象作为参数传递给 Thread 构造器,调用 start() 启动线程。 通过 FutureTask.get() 获取线程执行结果(可能阻塞)。 使用线程池(ExecutorService) 创建线程池(如 Executor...

2025-07-03
Java面试题
Java 面试题Java 语法基础练习题翻转整数给定一个 32 位有符号整数,将整数中的数字进行反转。如果反转后整数溢出那么就返回 0。 示例 1: 12输入: 123输出: 321 示例 2: 12输入: -123输出: -321 查看答案12345678910111213141516171819private static int reverse(int num) { int result = 0; while (num != 0){ // 获取末尾数字 int pop = num % 10;//123 % 10 = 3; 12 % 10 = 2; 1 % 10 = 1; 0 % 10 = 0 // 获取数字 num /= 10;// 123 / 10 = 12; 12 / 10 = 1; 1 / 10 = 0; // 判断是否越界 if (result > Integer.MAX_VALUE / 10 ...

2025-06-23
MySQL面试题
MySQL面试题 此笔记为本人备考面试时整理,内容多源于网络搜集,仅作后续查阅之用,无盈利意图。若有侵权,请联系删除。 参考资料: https://javaguide.cn/ https://www.xiaolincoding.com/ https://pdai.tech https://javabetter.cn/ 一、MySQL基础1、数据库三大范式查看答案 1NF 要求字段值必须是不可再分的原子值。 反例:用户信息表中地址字段存储 “北京市海淀区”,未拆分为省、市、区,违反 1NF;正例:拆分为province、city、district,每个字段独立存储。 2NF 1NF的基础上,要求非主属性完全依赖主键,避免部分依赖(如订单明细拆分)。 场景:订单明细表((订单号+商品ID为主键)+ 金额 ),若字段订单金额仅依赖订单号,则存在部分依赖(非主属性订单金额不依赖商品ID),违反 2NF;优化:拆分为订单表(订单号、金额)和订单明细表(订单号、商品 ID、数量)。 3NF 2NF的基础上,非主键字段之间不能有依赖关系,消除传递依赖,如学生表与班级表分离。 反例:学生表...

2025-07-02
SpringBoot面试题
SpringBoot面试题什么是Spring Boot?有哪些优点?Spring Boot 是基于 Spring 框架的快速开发脚手架,它的核心目标是 “简化 Spring 应用的开发、配置和部署流程”。它并非替代 Spring,而是通过 “约定大于配置” 的设计理念,整合 Spring 生态的底层能力(如 IOC、AOP),解决传统 Spring 开发中 “配置繁琐、依赖冲突、部署复杂” 等痛点,让开发者能更专注于业务逻辑,快速搭建可直接运行的生产级应用。 自动配置,减少冗余配置 传统 Spring 开发需要手动写大量 XML 或注解配置(比如配置数据源、MVC 映射等),而 Spring Boot 会根据引入的依赖(如引入spring-boot-starter-web)自动推断并配置相关组件(如 Tomcat、DispatcherServlet),无需手动干预,大幅减少配置工作量。 起步依赖,解决依赖管理难题 传统开发中,需要手动引入多个相关依赖(如 Web 开发需手动加spring-web、tomcat等),还可能因版本不兼容导致冲突。Spring Boot 将常用依赖...

2025-07-02
Spring面试题
Spring面试题Ioc说一说什么是 IoC?IoC(Inversion of Control)控制反转,不是什么技术,而是一种设计思想。将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 谁控制谁,控制什么? 传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。 为何是反转,哪些方面反转了? 有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。 传统程序设计下,都是主动去创建相关对象然后再组合起来: 当有了IoC/DI的容器后,在客户端类中不再主动去创建这些对象了,如图 说一说什么是DI?DI (Dependency ...
公告
This is my Blog