面试八股文杂谈(乱序,没有分类)

1、B树与B+树的区别?(mysql的索引使用的B+,为什么)

参考链接:(26条消息) B树和B+树详解_Xixw的博客-CSDN博客_数据库b树和b+树

2、TCP和UDP,TCP的三次握手和四次挥手?

参考链接:关于 TCP 三次握手和四次挥手,满分回答在此 (baidu.com)

seq为什么开始序号是乱序,不是从0开始?防止序号相同导致的数据冲突(每次建立连接前重新初始化一个序列号主要是为了通信双方能够根据序号将不属于本连接的报文段丢弃。),和降低来自TCP序列号预测的攻击。

如果TCP三次握手第三次失败了,是重发第二次握手哦。

3、进程,线程,协程?

参考链接:(26条消息) 进程与线程的区别和联系_快乐成长吧的博客-CSDN博客_进程和线程的区别和联系

参考链接:什么是协程? - 知乎 (zhihu.com)(可以配合评论)

4、Spring MVC 的执行流程和原理?

参考链接:(26条消息) Spring MVC执行流程及原理_java叶新东老师的博客-CSDN博客_springmvc 流程

5、Java的四种应用类型?

 参考文献:(26条消息) Java的四种引用类型_高冷小伙的博客-CSDN博客_java引用类型

6、操作系统是如何在单核CPU上进行调度的(就每个程序都是一条一条的机器码,那既然程序A在运行的时候,操作系统的程序没有在CPU上运行,那操作系统怎么让CPU做进程切换的呢?这个没答上)

参考:时间片轮转,操作系统那题是因为抢占式内核,中断机制中有时钟中断,即分配好的时间片耗尽以后,此时时钟中断,cpu捕捉到时钟中断,切换进内核态进行调度。

7、C++和python的区别,为什么C++效率高?

C++是编译型语言,python是解释型脚本语言(java,c#也是)。编译型语言在程序执行之前为进行编译,将程序翻译为机器码,后续无需编译,直接允许可执行文件。解释型语言会用专门的解释器吧源程序解释为机器码,编译与解释同时进行,每一次解释都需要重新编译,所以效率较低,但是跨平台容易。c++没有内存管理机制,Javah和python都有类似的垃圾回收机制。

8、什么是面向对象?(面向过程?)

1、面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

2、面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?

3、面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们我们使用的就是面向对象了们会用就可以了。

4、面向过程:效率好(不需要对类实例化);面向对象:容易维护,容易扩展,容易复用。

9、什么是客户端?

客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。

cs架构即Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。

C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。

主要特点是交互性强、具有安全的存取模式、响应速度快、利于处理大量数据。但是C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多,所以C/S结构只限于小型的局域网。

10、c++的多继承的坏处,c++的组合和继承?(java只能单继承,但是Java可以使用接口)

可能存在二义性,继承的两个父类具有相同的方法和对象,子类调用容易混肴。

参考文献:(26条消息) 继承和组合的区别_Howard_14的博客-CSDN博客_继承和组合

11、什么是设计模式?讲一下策略模式,可以用代码实现一下?

设计模式是解决问题的方案,学习现有的设计模式可以做到经验复用。拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。

参考文献:设计模式目录 | CS-Notes (cyc2018.xyz)

参考文献:(26条消息) 设计模式篇章三——策略模式_风起水涌的博客-CSDN博客_组成策略模式的三种角色分别是?

11、C++的内存,内存泄漏?

参考文献:(26条消息) c++中的内存知识汇总_永远的小白虾的博客-CSDN博客_c++内存

参考文献:(26条消息) C++ 内存泄漏究竟是什么_范吉民的博客-CSDN博客_c++内存泄漏是什么

12、HTTP的基础内容以及HTTPS(很重要哦)

参考文献:HTTP | CS-Notes (cyc2018.xyz)

13、c++客户端面经

参考文献:字节跳动客户端面试_笔经面经_牛客网 (nowcoder.com)

参考文献:字节跳动客户端一面凉经_笔经面经_牛客网 (nowcoder.com)

 

13、一个客户端同时和多个客户建立连接,使用什么机制来解决的(网络I/O方面)?

参考文献:(26条消息) 网络编程中的I/O复用模型_兽哥哥啊的博客-CSDN博客

14、虚拟内存了解吗,物理内存和虚拟内存的关系是什么?(页表,段表,页面置换算法等)

参考文献:计算机操作系统 - 内存管理 | CS-Notes (cyc2018.xyz)

15、new和malloc的区别?(C++动态数组?)

参考文献:(26条消息) C++经典面试题 | malloc和new的区别?_小贾-同志的博客-CSDN博客_c++ new和malloc的区别

参考文献:(26条消息) C++ | 动态分配内存 new和malloc的区别_大虎牙的博客-CSDN博客_c++ new和malloc的区别

15、多态?(C++与Java)

c++参考文献:(26条消息) c++之多态性,什么是多态?如何实现?_Loren灬的博客-CSDN博客_c++多态如何实现

java参考文献:(26条消息) 什么是Java多态?如何实现Java多态?_程序员的小傲娇的博客-CSDN博客_多态java

 

posted @   风曳  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示