超全!2025 年小米 Java 面经汇总,大厂面经总结+答案整理

小米一面面经

1,JVM 由哪些部分组成

JVM 的主要组成部分包括 类加载器子系统(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine) 以及 本地方法接口(Native Interface,JNI)

2,JVM 的内存结构

Java 虚拟机运行时数据区分为方法区、堆、虚拟机栈、本地方法栈、程序计数器。

3,你知道有哪些垃圾收回器吗?

常见的垃圾收集器包括:Serial 收集器ParNew 收集器Parallel Scavenge 收集器Serial Old 收集器Parallel Old 收集器CMS(Concurrent Mark-Sweep)收集器G1(Garbage First)收集器ZGC(Z Garbage Collector)收集器等。

4,能细聊一下G1吗?

G1 从大局上看分为两大阶段,分别是并发标记对象拷贝

5,知道mysql的范式吗?

  • 1219 数据库的三大范式是什么?

6,mysql的索引有哪些?

  • 591 MySQL 的索引类型有哪些?
  • 597 在 MySQL 中建索引时需要注意哪些事项?
  • 599 MySQL 中的索引数量是否越多越好?为什么?

7,树的高度跟磁盘IO操作有什么关联?为什么高度越高IO次数就越多?

  • 601 为什么 MySQL 选择使用 B+ 树作为索引结构?

8,HTTPS 握手过程

  • 672 HTTP 和 HTTPS 有什么区别?

9,非对称加密时客户端是用私钥加密还是公钥?

公钥加密,私钥解密。

  • 2797 请解释常见的加密算法及其应用场景。

10,算法题:回文串

  • 5410 判断回文串

11,算法题:反转链表

  • 5534 反转链表

alt

小米一面面经

12,如何平滑迁移数据库?

  • 3179 如何实现数据库的不停服迁移?

13,Redis 用在哪些场景?

  • 634 Redis 通常应用于哪些场景?

14,缓存击穿、缓存穿透和缓存雪崩

  • 659 Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?

15,读写锁的原理是什么?为什么这里要加写锁?

  • 499 你了解 Java 中的读写锁吗?

16,Redis 的底层数据结构有哪些?

  • 637 Redis 中常见的数据类型有哪些?

17,HashMap 的工作原理是什么?

  • 6319 说说 Java 中 HashMap 的原理?

18,ConcurrentHashMap 的原理是什么?

  • 9806 ConcurrentHashMap 和 Hashtable 的区别是什么?
  • 461 Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?

19,一条 URL 在网页输入的过程中会发生什么?

  • 5619 从网络角度来看,用户从输入网址到网页显示,期间发生了什么?

20,进程和线程有什么区别?

  • 467 线程和进程有什么区别?

21,MySQL 的底层索引结构是什么?

  • 591 MySQL 的索引类型有哪些?
  • 601 为什么 MySQL 选择使用 B+ 树作为索引结构?

22,实习期间你负责的内容是什么?

23,实习中遇到了什么问题?你是如何解决的?

24,算法

  • 3186 2023B-寻找符合要求的最长子串

二面

25,算法题:找第 K 大元素如何实现?

  • 5523 找到第 k 大的元素

26,算法题:如何检测环形链表?

  • 5535 判断链表中是否有环

27,主线程等待子线程执行完毕有哪些方法?

  • 487 如何在 Java 中控制多个线程的执行顺序?

28,线程池拒绝策略有哪些,能细说一下吗?

  • 475 Java 线程池有哪些拒绝策略?

29,索引失效的情况有哪些?

  • 598 MySQL 中使用索引一定有效吗?如何排查索引效果?

30,意向锁有什么作用?

  • 112 MySQL 中的意向锁是什么?作用是什么?它是表级锁还是行级锁?

31,意向锁的互斥怎么理解?

mysql 锁的其他问题可在面试鸭这个问题下查看:

  • 609 MySQL 中有哪些锁类型?

32,查询语句时使用 order by 进行排序要不要对排序字段建立索引?

  • 617 MySQL 中的数据排序是怎么实现的?

33,在 Spring Boot 核心特性有哪些?

  • 742 Spring Boot 的核心特性有哪些?

34,有使用过哪些 JVM 的命令?

  • 427 你使用过哪些 JDK 提供的工具?
  • 559 常用的 JVM 配置参数有哪些?

35,有没有对内存进行过分析?

  • 561 如何在 Java 中进行内存泄漏分析?

36,对 Redis 有什么了解,在项目中用它做了什么功能?

  • 634 Redis 通常应用于哪些场景?
全部评论
鱼皮哥咋被限流了😕
点赞 回复 分享
发布于 04-23 14:35 湖南

相关推荐

今天在工作中碰到了一个问题,用easypoi导出excel的时候,实体中BigDecimal类型的属性设置了对应的格式为saleAmount.setNumFormat("#.00");,同时设置类型为double,但是导出时excel还是显示单元格格式为文本,我想问如何设置单元格格式为数值或者日期等类型呢?代码如下:```public class Main {    public static void main(String[] args) {        File file = new File("D:\\kake_work\\excel\\excel_test1.xlsx");        mkdir(file);        int size = 10;        try (OutputStream outputStream = Files.newOutputStream(file.toPath())) {            ExportParams params = new ExportParams();            params.setSheetName("订单页");            params.setType(ExcelType.XSSF);            List<OrderReport> list = new ArrayList<>();            OrderReport report = new OrderReport();            report.setBaseAmountRmb(BigDecimal.valueOf(99.13));            report.setSaleAmount(BigDecimal.valueOf(100.45));            report.setCheckindate(new Date());            OrderReportReq request = new OrderReportReq();            for (int i = 0; i < size; i++) {                list.add(report);            }            List<ExcelExportEntity> dynamicExportColumnSetting = getExcelExportEntities();            Workbook sheets = ExcelExportUtil.exportBigExcel(params, dynamicExportColumnSetting, (queryParams, page) -> {                OrderReportReq req = (OrderReportReq) queryParams;                int listIndex = page - 1;                if (listIndex < size) {                    List<OrderReport> rows = list;                    for (OrderReport row : rows) {                        row.setAdults(1);                    }                    return new ArrayList<>(rows);                }                return null;            }, request);            sheets.write(outputStream);        } catch (Exception e) {            System.out.println("excel导出发生异常");            e.printStackTrace();        } finally {            //remove(file);        }        System.out.println("excel导出成功!");    }    private static List<ExcelExportEntity> getExcelExportEntities() {        List<ExcelExportEntity> dynamicExportColumnSetting = new ArrayList<>();        ExcelExportEntity baseAmountRmb = new ExcelExportEntity("底价CNY", "baseAmountRmb");        baseAmountRmb.setType(BaseEntityTypeConstants.DOUBLE_TYPE);        baseAmountRmb.setNumFormat("#.00");        dynamicExportColumnSetting.add(baseAmountRmb);        ExcelExportEntity saleAmount = new ExcelExportEntity("售价CNY", "saleAmount");        saleAmount.setNumFormat("#.00");        saleAmount.setType(BaseEntityTypeConstants.DOUBLE_TYPE);        dynamicExportColumnSetting.add(saleAmount);        ExcelExportEntity checkInDate = new ExcelExportEntity("入住日期", "checkindate");        checkInDate.setFormat("yyyy/MM/dd");        //checkInDate.setType(BaseEntityTypeConstants.DATE_TYPE);        dynamicExportColumnSetting.add(checkInDate);        return dynamicExportColumnSetting;    }    private static void mkdir(File file) {        if (!file.exists()) {            if (!file.getParentFile().exists()) {                file.getParentFile().mkdirs();            }        }    }    private static void remove(File file) {        if (file != null && file.exists()) {            file.delete();        }    }}```
投递太古地产等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
15
分享

创作者周榜

更多
牛客网
牛客企业服务