面试题总结

Mr.zh Lv3

面试题目总结

1. Java-算法

1.1 & 运算符

1
2
3
4
5
6
7
8
9
10
11
12
1. // &是是针对二进制的二目运算符。需要注意的是&&是java中判断条件之间表示“和”的标识符,&是一个二目运算符,
// 两个二进制数值如果在同一位上都是1,则结果中该位为1,否则为0,可以认为两个都是true(1),结果也为true(1),比如1011 & 0110 = 0010。

// &还有一个比较重要的地方,也是面试中经常出现的问题,即该运算符可以计算余数。我们知道四则运算中速度最慢的就是除,而取余操作更加慢,因此可以通过&来快速的求两个数的余数,来看例子:
// 想求45和12(45和8)的余数,只要求45 & 11(45 & 7)
public ModTest{
public static void main(String[] args){
System.out.println(45 & 11);
System.out.println(45 & 7);
}
}

2. mysql底层索引存储原理

3. 数据库-事务

  • 事务是一组操作的集合,这组操作,要么全部执行成功,要么全部执行失败。

  • mysql的事务默认是自动提交,一条语句执行之后就自动提交了

3.1 事务的四大特性

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

3.2 并发事务问题

多个并发事务在执行的过程当中出现的问题

  1. 脏读
  2. 不可重复读
  3. 幻读

3.2.1 如何解决

通过事务不同的隔离级别进行解决(级别越高数据越安全、但效率越低)

4. 数据库-存储引擎

4.1 mysql的四大体系结构

4.2 mysql的存储引擎

1
2
1. 存储引擎是基于表的,一个数据库下的不同表,可以有不同的存储引擎
2. mysql 5.5 之后,表的默认存储引擎是InnoDB
  1. 如何使用

4.3 存储引擎的主要特点

4. 4 面试题:InnoDB和MyISAM区别

问InnoDB和MyISAM的区别?(两个存储引擎的区别)

1
2
InnoDB:支持事务、行锁、支持外键
MyISAM: 表锁,不支持事务、不支持外键

4.5 存储引擎如何选择

1
根据系统应用特点,选择合适的存储引擎,一般用第一个,两外两个现在一般被MongoDB、redis代替

4.6 总结

5. 数据库-索引

5.1 索引概述

优缺点

5.2 索引结构-B+

  1. 二叉树(二叉搜索树)和红黑树(自平衡的二叉搜索树)

  1. B树(多路平衡搜索树)

  1. mysql中优化后的B+树

5.3 索引结构-Hash索引

5.4 面试题:存储引擎为啥B+树

5.5 索引分类

  1. 举例使用-回表查询

5.6 索引的使用

1. 创建索引
1
2
3
-- 创建索引 : 
create index 索引名称 on 表名(需要索引的字段)
CREATE index idx_user_email ON `user`(email)
2. 查看索引
1
2
3
-- 查看索引
show index from 表名;
show index from user;
3. 删除索引
1
2
3
-- 删除索引
drop index 需要删除的索引名称 on 该索引对应的表名;
drop index idx_user_email on user;
4. 索引小案例

5.7 Sql性能分析

1
2
3
4
5
6
-- 1. sql执行频率
show global status like 'Com_______'; -- 7个下划线哦
-- 2. 然后得到select执行频率比较高的sql语句,开始慢查询,设置时间,就可以得到执行时间比较慢的相关日志信息了
-- 3. 使用profile查看每一条sql的执行时间
-- 4. explain执行计划(主要使用这个)
-- 目的:就是尽可能将type进行优化

explain的相关使用和优化点

5.8 索引使用的特殊情况


索引失效的几种情况:


1. 面试真题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
5月28日-大数据开发
一、java基础部分
1.自我介绍
2.Java中==和equles的区别,方法重写、重载的区别
3.面型对象的三大特征、多态的体现
4.|和||的区别,使用
5.Java中的垃圾回收机制
6.
二、大数据部分(基础部分)
1.Hadoop架构、hdfs的上传原理、mr的执行原理
2.kafka原理,flume的三大核心组件,zookeeper的选举机制(半数原则)
3.hbase ---不会这个
4.spark和mr区别
5.hivesql的作用,以及他的执行过程

解析器(SQLParser):将 SQL 字符串转换成抽象语法树(AST)
语义分析(Semantic Analyzer):将 AST 进一步划分为 QeuryBlock
逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划
逻辑优化器(Logical Optimizer):对逻辑计划进行优化
物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划
物理优化器(Physical Optimizer):对物理计划进行优化
执行器(Execution):执行该计划,得到查询结果并返回给客户端

6.数据倾斜原因,如何解决
三、数据库相关(基础部分)
1.sql优化的方式有哪些?
2.事务是什么
3.事务的四大特性
4.


四、项目相关
1. 讲一下你写的你认为最好的项目,并且遇到的问题,和如何解决
结尾:
2. 有什么想问的。
  • Title: 面试题总结
  • Author: Mr.zh
  • Created at : 2024-04-19 11:01:58
  • Updated at : 2024-05-29 14:40:30
  • Link: https://redefine.ohevan.com/2024/04/19/面试题总结/
  • License: This work is licensed under CC BY-NC-SA 4.0.