热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[面试]0.导航初中级后端工程师面试题目总结(提供参考答案)

前言这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章&

前言

    这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章,感谢~

  1. 本文仅包括目录,查看答案请点击超链接。
  2. 每个题目的答案我都会上传文章供各位参考,但完成需要一点时间,请耐心等待。
  3. 如出现任何错误之处,请指出~

注明

    本文中的题目多参考于网络,如果侵犯了您的权利或您有注明来源的要求,请给我留言,谢谢。

    答案均为个人整理发布,转载请注明来源:https://blog.csdn.net/sc_lilei/article/details/87098343

正文

    1、语言基础方面 

          Python基础(已发布)

          Golang:着重于(接口,chan,sync.map ,并行并发区别,协程,锁)

    2、数据库

          Mysql(已发布)

            1、谈谈mysql字符集和排序规则? 

            2、varchar与char的区别是什么?大小限制?utf8字符集下varchar较多能存多少个字符

            3、primary key和unique key区别?

            4、外键有什么用,是否该用外键?外键一定需要索引吗?

            5、myisam与innodb的区别?innodb的两阶段锁定协议是什么情况?

            6、索引有什么用,大致原理是什么?设计索引有什么注意点?

            7、如何存储IPv4?-- 使用int配合自带函数inet_aton和inet_ntoa

            8、哪些情况索引不生效?

            9、什么是最左匹配原则?

            10、说说悲观锁和乐观锁

            11、关于join

            12、MySQL为什么使用B+树?

            13、什么是幻读?什么情况会发生?怎么解决呢?

         Mongo(已发布)

           1、mongo的适用场景和不适用的场景

           2、mongo的简单查询、聚合查询使用

           3、如何执行事务/加锁?

           4、mongodb中的(namespace)是什么?

         Redis(已发布)

           1、什么场景用redis,为什么mysql不适合?

           2、谈谈redis的事务?用事务模拟原子+1操作?原子操作还有其它解决方案吗?

           3、redis内存满了会怎么样?

           4、和memcache的区别?

           5、为什么是单线程的?

           6、redis的aof太大如何优化

 

   3、分布式相关

           1、什么是分布式,为什么需要分布式? 和集群的区别是什么?

           2、谈谈分布式通信协议

           3、说说分布式事务(产生原因,业务背景,解决方案)

           4、如何解决最终一致性问题?

           5、分布式锁有哪些方案,如何选择?

           6、扩展:主流的负载均衡算法原理了解一下

 

   4、网络协议相关(已发布)

           1. GET和POST区别,HTTP状态码了解哪些?

           2. Session和COOKIE的区别?Session如何管理?

           3. HTTPS的解释?

           4. 简述HTTPS密钥协商过程

           5. 简述跨域产生背景以及常见的解决方案

           6. 解释一下socket长连接

           7. 谈谈select和epoll

           8. TCP与UDP区别;简述三次握手和四次挥手过程

           9. time_wait过多的原因?

         10. close wait什么出现?

         11. 一个http请求由哪几部分组成?

         12. 谈谈http长连接和短连接

 

   5、操作系统相关(已发布)

           1、进程与线程的区别(资源、调度、开销、通信 4个方面来对比)?

           2、进程间通信(对应python、golang如何实现的)

           3、线程间通信(对应python、golang(协程)如何通信的)

           4、Linux常用的监控资源使用率的命令?(top,free)

           5、Linux其他常用命令

           6、了解协程么,轻量体现在哪儿?

           7、结合OSI七层模型解释一下数据从一台计算机到另一台计算机的过程?

           8、描述一下Socket?

   6、其他

          1、谈谈乐观锁与悲观锁

          2、并发的解释、产生原因、几种实现方式、实现并发时的同步

          3、websocket协议的解释,应用场景

          4、NIO的原理和,连接切换方式

          5、线程池的实现原理

          6、消息队列同时消费问题

 

   7、非理论题目

          1、遍历一个内部位置的文件夹有几种方式?

          2、手写快排,快排的平均时间复杂度是多少,最坏情况如何优化?

          3、【手写】:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来

          4、【手写】:用一行python写出1+2+3+…+10**8  答案:s = sum([x for x in range(1,10**8+1)])

          5、【手写】:用递归方式判断回文

          6、【手写】LFU,要求get和put都为O(1)

          7、两支不均匀香,烧完每根都只需1小时,如何测出15分钟?

          8、你会怎样设计秒杀场景的后台?秒杀时如果机器资源有限怎么办呢(别看答案,先自己尝试下)?

          9、【上机】用两个线程分别打印0-100之间的奇偶数


推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
author-avatar
houxue
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有