面试(架构,网络)

2023-09-17 15:23:04

java八股

treemap和linkdedhashmap区别,实现原理
https://blog.csdn.net/shidebin/article/details/126814905

架构

  1. https://www.cnblogs.com/crazymakercircle/p/17197091.htmlhttps://www.cnblogs.com/crazymakercircle/p/17197091.html

  2. 羊了个羊https://www.cnblogs.com/crazymakercircle/p/17059585.html

操作系统与计算机原理面试题

进程通信方式

io多路复用:一个线程处理多个io流

零拷贝

python基础面试题

  1. list,字典,元组的优缺点
    list 可存储各种类型的元素,并且长度可变,tuple长度不可变,访问速度上元祖比列表稍块,字典存储k,value类型的键值对,字典的key应为不可变对象,像元祖,字符串,int,float类型的数据。访问dict中的元素可以达到常量的时间复杂度,dict一般用于聚合统计,时间换空间的辅助结构

以下链接有关于几种数据结构更详细的解释

https://blog.csdn.net/weixin_41245276/article/details/87485867
2. init函数,init.py的区别

init 函数在实例化对象时调用,用于初始化类的成员变量

https://www.syrr.cn/news/34246.html?action=onClick

init py 用于控制包的导入行为,当导入一个包使实际上是会去执行他的init文件,通过包名可以访问init中 导入的各个变量

还有一种导入包的方式from . import *,这样使用的时候就不用加包名调用了,只会导入__init__.py 中__all__ = [module1, module2] 中的模块

实际中用的比较多的还是from package import module

https://blog.csdn.net/xuzhexing/article/details/91043393

  1. range和xrange的区别

xrange 存在于python2,xrange是一个生成器,好处主要是省内存,不需要占用整个序列的空间。

  1. 迭代器和生成器的区别

迭代器:如果一个对象同时实现了__iter__()和__next()__()方法,那么它就是迭代器。for 循环遍历list,str,tuple时,首先调用iter方法,接着一次次调用next方法,当取不到元素时,会抛出stopiteration异常,for会自动捕获这种异常,循环结束

生成器:生成器用于简便创建的迭代器,只需要在函数中返回数据的地方使用yield关键字,或者还可以使用生成器推导式,spark,mapPartitions算子中处理函数需要传递一个迭代器。

  1. 设计模式
    单例设计模式
    可以通过import,装饰器,new, 元类实现装饰器

https://blog.csdn.net/weixin_43673156/article/details/124319437

 2. 工厂设计模式

一个类有多个子类,可以创建一个工厂,传递一些参数,来动态决定使用哪个子类

 3. 建造者模式

建造者模式用于将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

算法相关面试题汇总

阿里4月7日开发岗笔试题

题目描述:
一个仅包含小写字母的字符串,希望删除其中一个非空连续子串,使得剩下的字符串至少有k种不同字母。
问有多少种不同的删除方案?注:若删除的子串位置不同,则视为两种不同的方案。
输入描述:
第一行输入两个正整数 n 和k,代表字符串的长度以及最终字符串的字母种类最小值。
一个长度为n的只包含小写字母的字符串s。(保证至少k种字符)
1<n<200000
1 <= k <= 26
输出描述:
一个整数,代表删除子串的方案数。

答案链接 https://zhuanlan.zhihu.com/p/494770906

网络相关面试题整理

1.请说一下OSI七层网络模型

首先请参考百度百科osi七层网络模型https://baike.baidu.com/item/%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B/1441391?fr=aladdin

  七层模型通常包括,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,在五层模型中表示层和会话层都被合并到了应用层。

在应用层通常由http,https,dns,ftp,sftp等协议

传输层通常有tcp和udp协议

网络层有ip协议

  1. 请说一下三次握手和四次挥手
    在这里插入图片描述
    三次握手是指建立tcp链接之前,双方需要先发送三个报文来同步一些信息,之后双方便可以正常的发送消息。

客户端和服务端开始都处于close的状态,服务器端调用socket的监听方法之后,此时服务端处于listen状态

首先由客户端发送一个seq=x的syn报文,此时客户端处于syn_send的状态。这是第一次握手。

服务器端收到这个报文之后,便发送一个 syn_ack的报文,其中ack=x+1,syn=y,

此时服务器端处于syn_rcvd 状态,这是第二次握手。

客户端收到第二个报文之后,就处于一个链接建立的状态。之后客户端会发送第三个ack报文,其中seq=x+1,ack=y+1

三次握手的目的

用于确定双方的数据可以被正常传输

用于同步自身序号

三次握手的形象解释

第一次客户端发出信息“听不听得见啊”;第二次服务器端回“听得见,你能不能听得见啊”,那么客户端就认为自己发出去的消息对方可以收到,对方发的消息自己也能收到,客户端就认为这个传输没有问题,客户端之后再回一个听得见,那么客户端就认为客户端就认为自己发出去的消息对方可以收到,对方发的消息自己也能收到,那么服务器端就认为这个连接就是可以被正常建立的。

基于以上的逻辑,两次握手是不够的,四次握手是多余的

在这里插入图片描述
https://leetcode.cn/circle/discuss/Vb3nJ1/

MySQL

MyISAM 和 InnoDB 的区别有哪些?

InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,InnoDB支持外键,而MyISAM不支持

  聚簇索引和非聚簇索引

聚簇索引是按照主键构建一棵b+树,行数据存在叶子结点中

非聚簇索引叶子结点存储的是主键的值

redis

单线程redis的qps多少

10w

  1. 怎么统计一亿用户的日活,hyperloglog有什么缺点,bitmap不行么

https://www.cnblogs.com/crazymakercircle/p/17396091.html#%E6%96%B9%E5%BC%8F1%E9%80%9A%E8%BF%87-redis-%E7%9A%84-set-%E9%9B%86%E5%90%88%E6%9D%A5%E5%AE%9E%E7%8E%B0

更多推荐

《银河麒麟高级服务器操作系统V10》使用

一言而论:讲了麒麟服务器V10的基本使用,包括终端、VNC文章目录前言基本架构环境硬件环境软件环境麒麟安装步骤1.在宿主机上安装好VM,并且激活2.使用VM创建虚拟机3.启动虚拟机终端常用点VNC的使用麒麟上安装VNC服务器Windows上安装VNC客户端VNC服务器补充事项总结一些吐槽(坑)参考资料前言公司接到项目,

【AI】推理系统和推理引擎的整体架构

本文主要是对B站Up主ZOMI酱推理系统系列视频的理解,可以认为是重点笔记。一、深度学习模型的全生命周期相信很多人和我一样,刚看到深度学习模型中的推理系统或推理引擎时是一头雾水,因为学习DL时通常关注于模型的设计和训练。下图是深度学习模型的全生命周期图,主要分为两大类任务,训练任务和推理任务。训练任务:通常需要执行数小

理解 React 服务器组件

自从React被引入开发社区以来的十年里,它经历了几次演变。React团队在发生根本性变革时并不害羞:如果他们发现了一个更好的问题解决方案,他们就会带着它运行。几个月前,React团队推出了ReactServerComponents,这是最新的范式转变。有史以来第一次,React组件可以只在服务器上运行。网上对此有太多

计算物理专题----蒙特卡洛积分实战

Partone蒙特卡洛积分计算案例importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspdfromscipy.statsimportnorm,kstestnp.random.seed(0)defintegrate(a,b,n=100):x=np.random

面向过程与面向对象、面向对象三大特性的介绍和示例

面向过程:将问题分解成一个个详细的步骤,然后通过函数实现每一个步骤,并依次调用特点:1、适合解决简单的问题,不需要过多的协作和抽象2、关注问题的解决步骤而不是问题的本质3、代码复用性低,扩展性差,不易维护4、只有封装,没有继承和多态面向对象:通过分析问题,分解出一个个对象,然后通过不同对象之间的调用和相互协作来解决问题

论如何在Android中还原设计稿中的阴影

每当设计稿上注明需要添加阴影时,Android上总是显得比较棘手,因为Android的阴影实现方式与Web和iOS有所区别。一般来说阴影通常格式是有:X:在X轴的偏移度Y:在Y轴偏移度Blur:阴影的模糊半径Color:阴影的颜色何为阴影但是在Android中却比较单一,只有一个度量单位:Elevation,作为在An

ELK 企业级日志分析系统 ELFK

一、概述ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。使用ELK日志文件系统的原因:日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过

ELK集群部署

目录ELKElasticsearch集群部署部署Elasticsearch软件安装Elasticsearch-head插件ELKLogstash部署ELKKiabana部署Filebeat+ELK部署ELKElasticsearch集群部署Node1节点(2C/4G):node1/192.168.233.30Elast

浅谈C++|STL之list+forward_list篇

一.list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由—系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间

阿里云无影云电脑详细介绍:价格、使用和功能优势说明

什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、云电脑的优势、使用场景、网络架构、无影云电脑与云服务器的区别以及关于无影云电脑的常见问题解答FAQ:目录阿里云无

华为云云耀云服务器L实例评测|用PHP从数据库到后端到前端完整实现一个中秋节祝福语项目

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。🏆本文已收录于PHP专栏:PHP进阶实战教程,评测专区。🎉欢迎👍点赞✍评论⭐收藏文章目录🚀一、前言🚀二、

热文推荐