面试(架构,网络)

news2024/12/25 23:49:09

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode-简单题】1047. 删除字符串中的所有相邻重复项

文章目录 题目方法一&#xff1a;利用栈做匹配方法二&#xff1a;消消乐 题目 方法一&#xff1a;利用栈做匹配 class Solution {public String removeDuplicates(String s) {Deque<Character> deque new LinkedList<>();StringBuffer str new StringBuffer();fo…

封装七牛云存储工具类

文章目录 封装七牛云存储工具类&#xff08;为啥选择七牛云&#xff1f;当然是因为它能免费使用喽&#xff01;&#xff01;&#xff01;白嫖怪哈哈哈&#xff01;&#xff01;&#xff01;&#xff09;图片存储方案Java SDK操作七牛云封装工具类 封装七牛云存储工具类&#xf…

如何在 Excel 中求平方根

需要在 Excel 中求一个数字的平方根吗&#xff1f;使用几个内置的 Excel 函数和公式可以轻松计算平方根。在本分步指南中&#xff0c;您将学习在 Excel 中计算平方根的 5 种不同方法&#xff0c;包括使用 SQRT 函数、POWER 函数、指数公式、VBA 代码和 Power Query。跟随教程&a…

我学编程全靠B站了,真香-国外篇(第三期)

你好&#xff0c;我是Martin。 今天来点猛料&#xff0c;给大家推荐点我的压箱收藏-国外知名大学的公开课。 我推荐的不多&#xff0c;本着少就是多的原则&#xff0c;只给大家推荐我看过最好的五门视频&#xff0c;主要是来自两所国外高校&#xff1a;MIT美国麻省理工、CMU卡…

Pytorch实现MNIST字符识别

1.下载mnist.pkl.gz 网址&#xff1a;http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist.pkl.gz 数据集文件夹路径是data2/mnist/mnist.pkl.gz 2.读取数据 from pathlib import Pathimport matplotlib.pyplot as pltDATA_PATHPath("./data2") PATHDATA_P…

无涯教程-JavaScript - LOG函数

描述 LOG函数将数字的对数返回您指定的基数。 语法 LOG (number, [base])争论 Argument描述Required/OptionalNumberThe positive real number for which you want the logarithm.RequiredBaseThe base of the logarithm. If base is omitted, it is assumed to be 10.Opti…

Linux底层基础知识

一.汇编&#xff0c;C语言&#xff0c;C&#xff0c;JAVA之间的关系 汇编&#xff0c;C语言&#xff0c;C可以通过不同的编译器&#xff0c;编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统&#xff0c;Java虚拟机是由汇编&#xff0c;C&#xff0c…

KVM嵌套虚拟化实现

KVM嵌套虚拟化实现 理论 Libvirt主要支持三种 CPU mode host-passthrough: libvirt 令 KVM 把宿主机的 CPU 指令集全部透传给虚拟机。因此虚拟机能够最大限度的使用宿主机 CPU 指令集&#xff0c;故性能是最好的。但是在热迁移时&#xff0c;它要求目的节点的 CPU 和源节点的…

探索物理学的奥秘:解锁自然世界的钥匙

解锁自然世界的钥匙 引言第一部分&#xff1a;物理学的基本概念第二部分&#xff1a;物理学的重要里程碑第三部分&#xff1a;物理学对日常生活的影响第四部分&#xff1a;物理学的未来前景结语 引言 物理学是一门古老而又令人着迷的科学领域&#xff0c;它的研究对象是整个宇…

Solidity 小白教程:20. 发送 ETH

Solidity 小白教程&#xff1a;20. 发送 ETH Solidity有三种方法向其他合约发送ETH&#xff0c;他们是&#xff1a;transfer()&#xff0c;send()和call()&#xff0c;其中**call()**是被鼓励的用法。 接收 ETH 合约 我们先部署一个接收ETH合约ReceiveETH。ReceiveETH合约里…

Vue项目中使用element-plus UI库-并对下拉搜索框样式修改-el-select代码封装

对下列列表进行自定义 基础代码 <template><el-selectclass"ly-tab-sou"popper-class"popper-ly-tab-sou"v-model"selectVal":filterable"filterable":placeholder"placeholder"change"selectChange"&…

Dpi解析与adb 查看dpi

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 ro.sf.lcd_density属性指定了这个机型使用的dpi是多少&#xff0c;dpi全称是dots per inch&#xff0c;对角线每英寸的像素点的个数。 密度 ldpi mdpi hdpi xhdpi xxhdpi 分辨率 240x320 320x480 480x800 7…

查看c语言库函数源码 glibc,glibc下载

1 简介 glibc是GNU发布的libc库&#xff0c;即c运行库。glibc是linux系统中最底层的api&#xff0c;几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外&#xff0c;它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的…

【直播回顾】应对数智化时代下SAP用户的系统转型挑战——SNP TDO

“京西重工通过20天的项目周期&#xff0c;实现了将SAP ECC系统2.5T的总数据量&#xff0c;按13个月以时间切片方式刷新测试数据。存储和管理成本降低多达 80%、测试数据量减少70%、生产系统零停机。” “海尔日日顺历经不到3个月的时间&#xff0c;将70多家公司代码从海尔源…

C++深度优化——无锁队列实现及测试

最近在研究无锁队列&#xff0c;从网上学习到了lock-free的定义&#xff0c;特此摘录如下&#xff1a; 如果涉及到共享内存的多线程代码在多线程执行下不可能互相影响导致被hang住&#xff0c;不管OS如何调度线程&#xff0c;至少有一个线程在做有用的事&#xff0c;那么就是lo…

计网第五章(运输层)(七)(TCP的连接建立)

目录 一、基本概述 二、连接建立 1.基本任务 2.具体实现 三、经典问题之为什么不用“两次握手”&#xff1f; 一、基本概述 在前面的部分提到过&#xff0c;TCP是基于运输连接来传输TCP报文段。 所以TCP的连接和释放是每次面向连接的通信过程中必不可少的过程。 TCP运输…

Linux设备驱动模型之platform设备

Linux设备驱动模型之platform设备 上一章节介绍了Linux字符设备驱动&#xff0c;它是比较基础的&#xff0c;让大家理解Linux内核的设备驱动是如何注册、使用的。但在工作中&#xff0c;个人认为完全手写一个字符设备驱动的机会比较少&#xff0c;更多的都是基于前人的代码修修…

Vue3+移动端适配屏幕+默认横屏展示

效果图展示区: 1. 想要把px自动转换单位为vw需要项目根目录.postcssrc.js中进行配置以下代码 module.exports {plugins: {autoprefixer: {}, // 用来给不同的浏览器自动添加相应前缀&#xff0c;如-webkit-&#xff0c;-moz-等等"postcss-px-to-viewport": {unitTo…

C/C++计算表达式的值 2023年5月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C计算表达式的值 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C计算表达式的值 2023年5月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定整数x,y的值&#xff0c…

视频号挂公众号链接引流到公众号还能加,好消息来了

视频号挂公众号链接要求在八月初出来了新规则&#xff0c;相信玩视频号的人大家都应该清楚&#xff0c;这两个新规则第一个看似简单&#xff0c;但是第二个却堵住了99%的人 接着看看视频号挂链接发展的来龙去脉 要点一&#xff1a;早在前两年&#xff0c;视频号链接直接显示在视…