面试-Java
基础
Java八大基本类型
问:Java八大基本类型
答:Byte(1) Short(2) Int(4) Long(8) Float(4) Double(8) Char(2) Boolean(1)
String类中常用的方法
问:String类中常用的方法
答:indexof()从指定字符提取索引位置
replace()替换
subString()截取字符串
equals()比较
split()把字符串分割成字符串数组
面试-JVM
JVM内存分析,解释下堆和栈
问:JVM内存分析,解释下堆和栈
答:JVM内存结构主要分为堆内存、方法区和栈。堆内存时JVM中最大的一块内存地址。所有new出来的对象都存储在该区域。栈就是暂存数据的地方,栈中只保存基础数据类型的对象和自定义对象的引用,每个栈中的数据都是私有的,其它栈不能访问。方法区存放了要加载的类的信息如类名、修饰符、静态变量、构造函数等
面试-Mybatis
Mybatis缓存机制
问:Mybatis缓存机制
答:一级缓存是MyBatis默认开启的缓存机制,它是指在同一个SqlSession内的缓存。当进行相同的查询时,如果该查询的结果已经在当前SqlSession的本地缓存中存在,则直接从缓存中获取结果,而不再去数据库查询。本地缓存的作用域是SqlSession,当SqlSession关闭时,本地缓存也会被清空。
二级缓存是指在SqlSessionFactory层面的缓存,它可以被多个SqlSession共享。当多个SqlSession执行相同的查询时,如果查询结果已经存在于二级缓存中,则直接从缓存中获取结果,而不会再去数据库查询。二级缓存的作用域是SqlSessionFactory,在整个应用的生命周期内有效。需要注意的是,二级缓存需要在MyBatis的配置文件中明确地配置开启。
面试-MySQL
面试-Redis
介绍一下Redis
问:介绍一下Redis
答:Redis是一个非关系型数据库。数据类型有String、List、Set、Hash、SortedSte有序集合。项目中主要用它来存储热点数据,减轻数据库的压力。有很多地方都用到了Redis,比如商品的秒杀,首页热点数据的显示等等。
面试-Spring
对Spring的理解
问:对Spring的理解
答:Spring核心思想为IOC、DI、AOP。Spring框架使用了Java里面的反射机制。IOC就是把对象的创建控制权转移到IOC容器并且负责对象的创建、初始化等一系列工作。被创建的对象在IOC容器中称为Bean。在容器中建立Bean与Bean之间的关系就称为依赖注入。AOP底层是代理模式,可以在不改变原有代码结构的情况下增强功能。
面试-SpringBoot
说一下SpringBoot
问:说一下SpringBoot
答:SpringBoot一个重要的思想是约定大于配置,其整合了所有的后端框架。优点有能快速创建独立运行的Spring项目以及与主流框架集成。大量的自动配置,简化开发。无需配置大量的XML文件,开箱即用。
面试-Vue
谈谈Vue生命周期
问:谈谈Vue生命周期
答:Vue的生命周期是指从Vue实例创建、挂载、更新、销毁到最终回收的整个完整过程,核心分为创建(beforeCreate/created)、挂载(beforeMount/mounted)、更新(beforeUpdate/updated)、销毁(beforeUnmount/unmounted)四个阶段:创建阶段完成实例初始化与数据观测,此时el未挂载、DOM不可访问;挂载阶段将实例挂载到指定DOM节点,mounted 钩子中可访问并操作DOM,是发起异步请求、初始化第三方插件的常用时机;更新阶段在响应式数据变化触发重新渲染时执行,可在 beforeUpdate 中获取更新前的 DOM 状态,updated 中获取更新后的 DOM;销毁阶段在实例被销毁时执行,beforeUnmount 中可清理定时器、解绑事件监听等避免内存泄漏,unmounted 时实例与 DOM 完全解绑,所有指令和事件监听失效,整个生命周期由Vue自动驱动,开发者可通过对应钩子函数在不同阶段插入自定义逻辑,且 Vue3 组合式 API 中可通过 setup 结合 onMounted、onUpdated 等函数替代传统选项式钩子,核心生命周期逻辑保持一致
面试-多线程
谈谈线程和进程
问:谈谈线程和进程
答:进程是操作系统分配资源的最小独立单位,相当于一个独立运行的程序(比如打开的微信、IDEA),每个进程都有自己专属的内存空间,进程之间相互隔离、互不干扰。而线程是操作系统调度执行的最小单位,它不能独立存在,必须依附于进程,一个进程可以包含多个线程,这些线程共享所属进程的全部资源。

