热门标签 | 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之间的奇偶数


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文简述了数据库的概念、作用及发展阶段的特点。数据管理技术的发展经历了人工管理阶段、文件系统阶段和数据库系统阶段,分别描述了各个阶段的特点。数据库、数据库管理系统和数据库系统的含义和联系也进行了简述。数据库是长期存储在计算机内、有组织、可共享的大量数据的集合,而数据库管理系统是整个数据库系统的核心部分,负责统一管理和控制用户对数据库的操作。数据库系统是以数据库为基础的应用系统。总结了数据库的保存方式、管理方式、共享性和独立性等特点。 ... [详细]
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
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社区 版权所有