后端面试题目总结

目录

【一面】

1. 关系型数据库和非关系型数据库

2. 关系型数据库的引擎

3. SQL语句

4. 数据库的锁

5. 数据库的隔离状态

6.怎么防止幻读

7. DNS的过程

8. 处理中断,恢复中断

9. 程序编译的过程

10. http的缓存机制

11. 乐观锁和悲观锁

12. 操作系统内存管理

13. 逻辑地址和物理地址的转化

14. http状态码

15. TCP怎么保证可靠性

16. TCP的拥塞控制

17. http1.0 1.1 1.2区别

18. 修课程问题,拓扑排序

【二面】

1. 固态硬盘和机械硬盘区别

2. C++多态

3. http请求的过程,keep-alive

4. https加密的过程,为什么不是非对称加密

5. 虚拟内存

6. 页式管理和段式管理

7. 数据库B+树

8. Pagecache

9. 数据库两种引擎,索引结构

10. DNS过程

11. 进程通信的方式,匿名管道,命名管道如何生成,信号怎么生成,头文件

12. 虚继承

13. 网关

14. http状态码,502,504?

15. http2.0,了解3.0吗

16. go对于c++的优势

17. 寻找第K大

【三面】

1. http报文格式

2. SQL两种引擎的区别

3. 聚簇索性和非聚簇索性

4. SQL语句查询前七天数据

5. 用户态和内核态

6. Get post还有什么方式

7. 登录的时候用什么保存状态session和cookie

8. 最小栈怎么实现

9. N叉树每层求最大值

10. 设计rpc框架考虑什么

11. 检查手机号是否存在于百万数据电话号中

12. C++多态

13. 智能指针

14. 构造函数可以是虚函数么

15. 数据库索引

16. Rand7生成rand10和链表删除重复元素



【一面】

1. 关系型数据库和非关系型数据库

1)关系型数据库

        关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向记录。

        SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。

2)非关系型数据库 

        NoSQL(NoSQL = Not Only SQL),意思是“不仅仅是SQL”,是非关系型数据库的总称。

        出来主流的关系型数据库外的数据库,都认为是非关系型,比较主流的NoSQL数据库有Redis、Hbase等。

3)两者差别 

  • 数据存储方式不同
  1. 关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据;
  2. 非关系型数据通常存储在数据集中·,就像文档、键值对或者图结构;
  3. 你的数据及其特性是选择数据存储和提取方式的首要影响因素;
  • 扩展方式不同
  1. 为了支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了,因为数据存储在关系表中,操作的性能瓶颈可能设计很多个表,这都需要通过提高计算机性能来克服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限;
  2. NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
  •  对事务性的支持不同
  1. SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择;
  2. 虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面;

2. 关系型数据库的引擎

        目前接触到的较多的关系型数据库当属Java开发中最常用的MySQL,而MySQL主要有两种存储引擎,分别是MyISAM和InnoDB;

1)MyISAM和InnoDB的区别

  • 事务处理方面:
  1. MyISAM强调性能,查询速度比InnoDB快,但不提供事务支持;
  2. InnoDB提供事务支持;
  • 外键:
  1. MyISAM不支持外键;
  2. InnoDB支持外键;
  • 锁:
  1. MyISAM只支持表级锁;
  2. InnoDB支持标记锁与行级锁,默认是行级锁;
  3. 因此InnoDB适合插入和更新比较多的情况,MyISAM适合频繁查询的情况;
  • 全文索引:
  1. MyISAM支持全文索引;
  2. InnoDB不支持全文索引(从MySQL5.6版本开始提供对全文索引的支持);
  • 表主键:
  1. MyISAM:允许没有主键的表存在;
  2. InnoDB:如果没有设定主键,就会自动生成一个6字节的主键(用户不可见);
  • 表的具体行数:
  1. MyISAM:select count(*) from table,MyISAM只需要独处保存好的函数,因为MyISAM内置了一个计数器;
  2. InnoDB:不保存具体的行数,执行select count(*) from table时,是扫描一遍整个表来计算有多少行;

3. SQL语句

  • 选择:select * from table1 where 范围
  • 插入:insert into table1(field1,field2) values(value1,value2)
  • 删除:delete from table1 where 范围
  • 更新:update table1 set field1=value1 where 范围
  • 查找:select * from table1 where field1 like ’%value1%’ --(like的语法很精妙)
  • 排序:select * from table1 order by field1,field2 [desc]
  • 总数:select count as totalcount from table1
  • 求和:select sum(field1) as sumvalue from table1
  • 平均:select avg(field1) as avgvalue from table1
  • 最大:select max(field1) as maxvalue from table1
  • 最小:select min(field1) as minvalue from table1

4. 数据库的锁


5. 数据库的隔离状态


6.怎么防止幻读


7. DNS的过程


8. 处理中断,恢复中断


9. 程序编译的过程


10. http的缓存机制


11. 乐观锁和悲观锁


12. 操作系统内存管理


13. 逻辑地址和物理地址的转化


14. http状态码


15. TCP怎么保证可靠性


16. TCP的拥塞控制


17. http1.0 1.1 1.2区别


18. 修课程问题,拓扑排序



【二面】

1. 固态硬盘和机械硬盘区别


2. C++多态


3. http请求的过程,keep-alive


4. https加密的过程,为什么不是非对称加密


5. 虚拟内存


6. 页式管理和段式管理


7. 数据库B+树


8. Pagecache


9. 数据库两种引擎,索引结构


10. DNS过程


11. 进程通信的方式,匿名管道,命名管道如何生成,信号怎么生成,头文件


12. 虚继承


13. 网关


14. http状态码,502,504?


15. http2.0,了解3.0吗


16. go对于c++的优势


17. 寻找第K大



【三面】

1. http报文格式


2. SQL两种引擎的区别


3. 聚簇索性和非聚簇索性


4. SQL语句查询前七天数据


5. 用户态和内核态


6. Get post还有什么方式


7. 登录的时候用什么保存状态session和cookie


8. 最小栈怎么实现


9. N叉树每层求最大值


10. 设计rpc框架考虑什么


11. 检查手机号是否存在于百万数据电话号中


12. C++多态


13. 智能指针


14. 构造函数可以是虚函数么


15. 数据库索引


16. Rand7生成rand10和链表删除重复元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hulake_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值