初学(重点),3面直接拿到offer

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

2.2、对于目的网络在S和X路由表中都有的项目进行下面步骤
2.2.1、在S的路由表中,若下一跳地址是x
则直接用X路由表中这条项目替换S路由表中的项目。
2.2.2、在S的路由表中,若下一跳地址不是x
若X路由表项目中的距离d小于S路由表中的距离,则进行更新。
3、若3分钟还没有收到相邻路由器的更新表,则把此相邻路由器记为不可到达路由器,即把距离设置为16。

RIP协议让一个自治系统中的所有路由器都和自己的相邻路由器定期交换信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由器都是最短的(即跳数最少)

RIP2报文中的首部4个字节,路由部分需要20个字节,一个报文最多可包括25个路由,因而RIP报文的最大长度是4+20x25=504字节。如超时,必须再用一个RIP报文来传送,具有鉴别功能。

注意:RIP存在一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。

RIP协议的特点:好消息传播得快,而坏消息传播得慢。

RIP优点:实现简单。开销小。

缺点:RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达),路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增大。“坏消息传播得慢”,使得更新过程的收敛时间过长。

3【三个基本问题】

封装成帧、透明传输、差错检测

3.1【封装成帧】

概念:在一段数据的前后部分添加首部和尾部,这样就构成了一个帧,首部和尾部的一个重要作用就是进行帧定界。

3.2【透明传输】

透明:某一个实际存在的事物看起来却好像不存在一样

概念:由于帧的开始和结束的标记使用专门指明的控制字符,因此所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。

具体的方法:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B,二进制是00011011)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节或字符填充。

3.3【差错检测】

比特差错:在传输过程中,1可能变成0,0可能变成1,在一段时间内,传输错误的比特占所有传输比特总数的比特率称为误码率(误码率与信噪比的关系,提高信噪比,误码率会减小)。

CRC的原理

CRC运算实际上就是在数据长为k的后面添加供差错检测用的n位冗余码,然后构成帧k+n位发送出去。

首先来介绍几个概念 (1)模2运算:实际上是按位异或运算,即相同为0,相异为1,也就是不考虑进位、借位的二进制加减运算。如:1111+1010 = 0101 (2)FCS:其实就是冗余码,帧检验序列(Frame Check Sequence) (3)生成多项式:其实就是除数,比如下面将要用到的除数p = 1101

这里写图片描述

计算n位冗余码

现假定待传输的数据M = 101001(k = 6),除数p = 1101   (n = 3)比n多一位 这n位冗余码可以用下面的方法得出。

(1)用二进制的模2运算进行(2^n)乘M的运算,相当于在M后面添加n个0。     即M后面添加3个0

(2)现在得到M = 101001000(k+n = 9)位的数除以除数p(n = 3)位, 得到商是Q(不关心),余数R =001(n位)

R就是冗余码FCS

现在加上FCS后发送的帧是101001001 这里写图片描述

在接收端把接收到的数据M = 101001001以帧为单位进行CRC检验:把收到的每一个帧都除以相同的除数p(模2运算),然后检查得到的余数R。 如果在传输过程中没有差错,那么经过检验后得到余数R肯定是0。 (读者可以自己检验下,被除数现在是M = 101001001,除数P= 1101,看余数是否为0)

总之,在接收端对接收到的每一个帧经过CRC检验后,有两种情况:

(1)余数R = 0,则判断这个帧没有问题,就接受

(2)余数R != 0,则判断这个帧有差错,就丢弃。

总结一下:

在数据链路层若仅仅使用CRC差错检验技术,则只能做到对帧的无差错接收。即“凡是接受端数据链路层收到的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”(凡是接收端数据链路层接受的帧均无差错)

循环冗余检验CRC和帧检验序列FCS并不是同一个概念。CRC是一种检错方法,而FCS是添加在数据后面的冗余码,在检查错误方法上可以选用CRC,但也可以不选用CRC。

注意:没有要求数据链路层向网络层提供可靠传输的服务。

传输差错分为两大类:

1、最基本的比特差错

2、收到的帧没有出现比特差错,但出现了帧丢失、帧重复或帧失序

如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(例如:运输层的TCP协议)来完成。

4【IP数据报的分片】

IP数据报的格式:

1、总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。然而实际上传送这样长的数据报在现实中是极少遇到的。

IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU,最常用的以太网就规定其MTU值是1500字节。若传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。

虽然使用尽可能长的IP数据报会使传送效率得到提高,但数据报短些也有好处。每一个IP数据报越短,路由器转发的速度就越快。

在进行分片时,数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。

2、标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个          标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

3、标志(flag) 占3位,但目前只有2位有意义。

● 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。

● 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

4、片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

【例题】

注意:具有相同标识的数据报片在目的站就可以无误地重装成原来的数据报。

现在假定数据报2经过某个网络时还需要在进行分片,即划分为数据报片2-1(携带数据800字节)和数据报片2-2(携带数据600字节)。那么两个数据报片的总长度、标识、MF、DF和片偏移分别为:820,12345,1,0,175;620,12345,1,0,275。

5、IP数据报首部的可变部分

IP数据报首部的可变部分就是一个选项字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的字节。

增加首部的可变部分是为了增加IP数据报的功能,但同时也增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。

5【流量控制与拥塞控制的异同】

【TCP的流量控制】

我们希望数据传输得快一点,但如果发送方把数据发送得太快,接收方可能来不及接受,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接受。

利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。

发送方地发送窗口不能超过接收方给出的接收窗口的数值。TCP的窗口是字节,不是报文段。

【TCP的传输效率】

第一种:TCP维持一个变量,它等于最大报文段长度MSS,只要缓存中存放的数据到达MSS字节时,就组装成一个TCP报文段发送出去。

第二种:由发送方地应用进程指明要求发送报文段,即TCP支持的推送(PUSH)操作。

第三种:发送方地一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过MSS)发送出去。

【TCP的拥塞控制】

若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,整个网络的吞吐量将随输入负荷的增大而下降,这种情况就叫拥塞。
拥塞问题的是指往往是整个系统的各个部分不匹配,只有各个部分平衡了,问题才会得到解决。

条件表达式:Σ对资源的需求>可用资源

拥塞引起的重传并不会缓解网络的拥塞。

拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程。

相反,流量控制往往是指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。流量控制所要做的就是抑制发送端发送数据的速率,以便能接受端来得及接受。

拥塞控制是一个动态的,网络是高速的,容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。

理论解决方案:开环控制和闭环控制

【TCP的拥塞控制方法】

TCP进行拥塞控制的算法有四种:慢开始、拥塞避免、快重传、快恢复

1、数据是单方向传送的,对方只传送确认报文。

2、接收方总是有足够大的缓存空间,因而发送窗口的大小由网络的拥塞程度来决定。

慢开始:发送方让自己的发送窗口等于拥塞窗口。

只要网络没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多的分组发送出去,这样可以提高网络的利用率。但只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小一些,以减少注入网络中的分组数,以便缓解网络出现的拥塞。

算法:由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口的值。增加一个SMSS值。

拥塞避免:并非完全能够避免拥塞。“拥塞避免”是说把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。

算法:每经过一个往返时间RTT或把发送方地拥塞窗口cwnd加1,拥塞窗口cwnd按线性规律增长,比慢开始算法的拥塞窗口增长速率缓慢得多。

快重传:

算法:可以让发送方尽早知道发生了个别报文段的丢失。快重传算法首先要求接收方不要等待自己发送数据时才能捎带确认,而是要立即发送确认,即使受到了失序的报文段也要立即发送对已收到的报文段的重复确认。

发送方只要一连收到3个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传,这样就不会出现超时,发送方也不会误认为出现了网络拥塞。

快恢复:

注意:发送方地发送窗口一定不能超过对方给出的接收方窗口值rwnd。

【流量控制与拥塞控制的异同】

流量控制是端到端的控制,例如A通过网络给B发数据,A发送的太快导致B没法接收(B缓冲窗口过小或者处理过慢),这时候的控制就是流量控制,原理是通过滑动窗口的大小改变来实现。

拥塞控制是A与B之间的网络发生堵塞导致传输过慢或者丢包,来不及传输。防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络性能有关的所有因素。

6【可靠传输的工作原理:停止等待协议】

停止等待(无差错情况):每发完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。

出现差错:可靠传输协议是这样设计的:A只要超过一段时间任然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面发送过的分组。(超时重传:设置一个超时计时器)

1、A在发送完一个分组后,必须暂时保存已发送的分组的副本(在发生超时重传时使用)。只有在收到相应的确认后才能清除暂时保留的分组副本。

2、分组和确认分组都必须进行编号。这样才能明确是哪一个发送出去的分组收到了确认,而哪一个分组还没有收到确认。

3、超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些,然而在运输层重传时间的准确设定是非常复杂的,网络的时间时延(取决于当时的拥塞情况),都是不确定因素。

确认丢失:发送方发送成功,接收方接收成功,确认分组也被发送,但是分组丢失,那么到了等待时间,发送方没有收到确认,又会发送分组过去,此时接收方前面已经收到了分组,那么此时接收方要做的事就是:丢弃分组,重新发送确认.

确认迟到:发送方发送成功,接收方接收成功,确认分组也被发送,没有丢失,但是由于传输太慢,等到了发送方设置的时间,发送方又会重新发送分组,此时接收方要做的事情:丢弃分组,重新发送确认.  发送方如果收到两个或者多个确认,就停止发送,丢弃其确认.

停止等待协议的优点是简单,但缺点是信道利用率太低。

理想的传输条件有以下两个特点:

1、传输信道不产生差错

2、不管发送方以多块的速度发送数据,接收方总是来得及处理接收到的数据

【连续ARQ协议】

目的:为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。

优点:容易实现,即使确认丢失也不必重传。

缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

连续ARQ协议通常是结合滑动窗口协议来使用的,发送方需要维持一个发送窗口,如下图所示:

图(a)是发送方维持的发送窗口,它的意义是:位于发送窗口内的5个分组都可以连续发送出去,而不需要等待对方的确认,这样就提高了信道利用率。

连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。例如上面的图(b),当发送方收到第一个分组的确认,就把发送窗口向前移动一个分组的位置。如果原来已经发送了前5个分组,则现在可以发送窗口内的第6个分组。

接收方一般都是采用累积确认的方式。也就是说接收方不必对收到的分组逐个发送确认。而是在收到几个分组后,对按序到达的最后一个分组发送确认。如果收到了这个分组确认信息,则表示到这个分组为止的所有分组都已经正确接收到了。

累积确认的优点是容易实现,即使确认丢失也不必重传。但缺点是,不能正确的向发送方反映出接收方已经正确收到的所以分组的信息。比如发送方发送了前5个分组,而中间的第3个分组丢失了,这时候接收方只能对前2个发出确认。而不知道后面3个分组的下落,因此只能把后面的3个分组都重传一次,这种机制叫Go-back-N(回退N),表示需要再退回来重传已发送过的N个分组。

7【网络五层的功能】

一、OSI七层模型

OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)

三、五层体系结构

五层体系结构包括:应用层、运输层、网络层、数据链路层和物理层。 
五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。

三种模型结构: 
这里写图片描述

这里写图片描述

四、各层的作用
1、物理层:比特

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

2、数据链路层:帧

定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

3、网络层:数据报

在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

4、运输层:报文段/用户数据报

定义了一些传输数据的协议和端口号(WWW端口80等),如: 
      TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据) 
      UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。

5、会话层:

通过运输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)

6、表示层:

可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。

7.应用层:报文

1 第五层——应用层(application layer)
    • 应用层(application layer):是体系结构中的最高。直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。
      • 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,DNS,POP3,SNMP,Telnet等等。
2. 第四层——运输层(transport layer)
    • 运输层(transport layer):负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
      • 复用,就是多个应用层进程可同时使用下面运输层的服务。
      • 分用,就是把收到的信息分别交付给上面应用层中相应的进程。
      • 运输层主要使用以下两种协议:  (1) 传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。  (2) 用户数据包协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
3. 第三层——网络层(network layer)
    • 网络层(network layer)主要包括以下两个任务:
      • (1) 负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
      • (2) 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
      • 协议:IP,ICMP,IGMP,ARP,RARP
4. 第二层——数据链路层(data link layer)
    • 数据链路层(data link layer):常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。
      • 在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。
      • 每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。
      • 注:”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示无力什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。  (1)在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。  (2)控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。
5. 第一层——物理层(physical layer)
    • 物理层(physical layer):在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-ObmSpoRg-1713225184941)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值