面试-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
日常工作中怎么优化SQL
问:日常工作中怎么优化SQL
答:加索引
减少返回的数据列
避免走全表扫描、避免子查询
分库分表
# 创建索引语句
CREATE INDEX 索引名 ON 表名(列名1, 列名2...);
# 创建表的时候加索引
CREATE TABLE 表名 (
列名1 数据类型,
列名2 数据类型,
列名3 数据类型,
-- 唯一索引
UNIQUE KEY 索引名 (列名2),
-- 普通索引(KEY和INDEX 等价,KEY更简洁)
KEY 索引名 (列名2)
);
面试-Redis
介绍一下Redis
问:介绍一下Redis
答:Redis是一个基于Key-Value结构存储的非关系型数据库。数据类型有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实例创建、挂载、更新、销毁到最终回收的完整过程中不同阶段所能调用的不同函数。
面试-多线程
谈谈线程和进程
问:谈谈线程和进程
答:进程是操作系统分配资源的最小独立单位,相当于一个独立运行的程序(比如打开的微信、IDEA),每个进程都有自己专属的内存空间,进程之间相互隔离、互不干扰。而线程是操作系统调度执行的最小单位,它不能独立存在,必须依附于进程,一个进程可以包含多个线程,这些线程共享所属进程的全部资源。

