更新 腾讯云 一面 面经 已OC版

把自己的一些面试完的感想和想法写一写记录一下,本人非科班出身,不是大佬,瞎写,请大佬轻喷。

一、拷打项目

1、项目团队人数是多少,介绍一下项目背景,你在这个团队里面主要负责的范围在哪。

2、这个项目是从0到1完全由你一个人写的吗?还是有多个人也参与这块。

3、你负责这个范围内有哪些比较痛点的问题。

(前面几个问题都是太经典的了,基本都会问)

4、项目的通信协议是什么、通信距离是多少?

通信协议是使用5.8Ghz的无线wifi信号,通信距离约为1-2km。(其实这个跟二面面试官问的差不多,应该是考察TCP和UDP,一面和二面确实不清楚,二面后才去查这方向,发现我们的通讯硬件采用的是TCP连接。)

二、拷打项目

1、python用了几年?

两年左右的时间,学习的时间其实不算很长。

2、装饰器有了解吗?

了解,装饰器是依靠于闭包的原理,本质是一个函数。接受的参数是一个函数,然后返回一个函数,等等~

3、http协议有了解吗?

有的,然后从Http0.9一直讲到了http3.0

4、平常有没有接触一些安全方面的问题?

(没有)

三、手撕代码

1、力扣 240 搜索二维矩阵2

这里因为我没写过搜索矩阵2,之前写过搜索矩阵1,当我看到那个题目的矩阵的时候,我下意识就以为是搜索矩阵1,直接按照搜索矩阵1的代码进行写。写完了在给面试官进行讲解的时候才发现好像不对,得不到最终结果。然后又重新调整了代码实现搜索矩阵2的方法。对于有些题目有相似变种的,一定要看清楚,别写错了。

2、写一个装饰器实现: 对异常报错重试3次

(少了问测试场景题的环节,时间省得还比较多,然后面试官估计看我前面八股对于装饰器回答挺好的,加测了一道题,但是没怎么亲自写过装饰器,最终没完全撕出来,后续查到的代码应该如下:)

from functools import wraps

def retry(max_retries=3):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            last_exception = None
            for attempt in range(max_retries):
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    last_exception = e
                    print(f"尝试 {func.__name__} 第 {attempt + 1} 次失败,错误:{str(e)}")
            raise Exception(f"重试 {max_retries} 次后仍失败") from last_exception
        return wrapper
    return decorator

# 使用示例
@retry(max_retries=3)
def risky_operation():
    # 模拟可能失败的操作
    import random
    if random.random() < 0.8:  # 80% 概率失败
        raise ValueError("服务暂时不可用")
    return "操作成功"

#测试##牛客创作赏金赛#
全部评论
耐面王
点赞 回复 分享
发布于 06-03 15:23 北京
就一面吗
点赞 回复 分享
发布于 05-25 22:58 湖北

相关推荐

05-19 23:59
湖南大学 Java
1、慢SQL的具体内容;2、应用DB是如何确保事务的持久性;&nbsp;&nbsp;&nbsp;&nbsp;写前日志机制:再事务对数据库进行修改之前,数据库系统回先将事务的操作信息记录到日志文件中。这些日志信息包括事务的开始,每个操作的细节(如修改了哪些数据、修改前后的值等)以及事务的结束等内容。日志文件通常被写入磁盘等持久化存储设备上。这样可以保证系统出现故障时,可以更具日志来恢复事务的执行状态;&nbsp;&nbsp;&nbsp;&nbsp;在mysql中,事务的持久性主要通过1、利用InnoDB的存储引擎的日志机制,当事务对数据进行修改时,InnoDB存储引擎会先将这些修改记录记录到redolog中。redo&nbsp;log属于物理日志,它记录的是数据页的物理修改情况。例如,当更新一行数据时,redo&nbsp;log会记录该数据页中具体字节的修改内容。binlog时记录了所有数据库的修改操作,包括数据的增删改查。binlog是逻辑日志,记录的是sql语句或者行的变化。例如,执行一条“UPDATE&nbsp;table&nbsp;SET&nbsp;column&nbsp;=&nbsp;value&nbsp;WHERE&nbsp;condition”语句,binlog会记录这条语句的执行细节。2、通过事务提交时的磁盘写入操作:当事务提交时,mysql会将事务涉及的数据页从内存中的缓冲池刷新到磁盘。缓冲池是InnoDB用于缓存数据页和索引页的内存区域,数据的修改首先是在内存中进行的。写入操作不是完全同步的,而是结合了redo&nbsp;log机制,因为redo&nbsp;log已经保证了事务的持久性,数据页的最终写入磁盘可以在检查点过程中进行。3、事务的隔离级别4、自适应哈希索引流的机制&nbsp;&nbsp;&nbsp;&nbsp;自适应哈希索引是一种用于优化数据库性能的机制,它可以根据数据库的负载和查询模式动态地创建和维护哈希索引,以下是具体介绍:工作原理&nbsp;&nbsp;&nbsp;&nbsp;数据页监控&nbsp;:InnoDB&nbsp;存储引擎会监控对表中数据页的访问情况。当发现某些数据页被频繁访问时,就会考虑为这些页创建哈希索引。&nbsp;&nbsp;&nbsp;&nbsp;哈希索引创建&nbsp;:如果一个数据页被访问的次数超过了设定的阈值,并且内存中还有足够的空间来存储哈希索引结构,InnoDB&nbsp;会自动在后台为该数据页上的某个索引创建一个哈希索引。&nbsp;&nbsp;&nbsp;&nbsp;哈希索引维护&nbsp;:随着数据的插入、删除和更新操作,哈希索引会自动进行维护,以保证其有效性和准确性。当数据页的访问频率降低,或者内存空间不足时,InnoDB&nbsp;也会自动删除不再需要的哈希索引。5、网络协议http、https协议的区别6、timewait的作用7、TCP如何进行拥塞控制8、操作系统的内存管理机制&nbsp;&nbsp;&nbsp;&nbsp;虚拟内存(虚拟内存是一种内存管理技术,使得程序可以使用比实际物理内存更大的地址空间。它通过将程序的地址空间分割成多个页面或者段,然后将这些页面或者段部分的存储在内存中,而将其他部分存储在磁盘外部存储器上。当需要访问一个不在内存中的页面时,由操作系统负责将其调入内存):分页式存储、段页式存储&nbsp;&nbsp;&nbsp;&nbsp;地址映射:静态重定位(绝对地址映射)、动态重定位(相对地址映射)&nbsp;&nbsp;&nbsp;&nbsp;内存保护:分区保护:在分区分配系统中,为每个分区设置保护机制来限制进程的访问范围;页表保护:在虚拟内存系统中,通过页表来实现内存保护。每个进程都有自己的页表,页表中除了包含虚页到物理块的映射关系外,还包含访问权限位。9、软链接和硬链接的区别软链接软链接是一个独立的文件,它包含了一个指向目标文件或目录的路径。从本质上来说,软链接就像是一个快捷方式,它有自己的&nbsp;inode(文件系统用于存储文件元数据的结构)。例如,如果有一个文件&nbsp;file1,创建一个软链接&nbsp;symlink1&nbsp;指向它,symlink1&nbsp;有自己的&nbsp;inode,其内容是指向&nbsp;file1&nbsp;的路径。软链接可以跨文件系统,也就是说,软链接可以位于与目标文件不同的文件系统上。例如,目标文件在&nbsp;/dev/sda1&nbsp;分区,软链接可以在&nbsp;/dev/sda2&nbsp;分区。硬链接硬链接是直接指向目标文件&nbsp;inode&nbsp;的链接。多个硬链接共享同一个&nbsp;inode,它们是同一个文件的不同名称。例如,对于文件&nbsp;file1,创建硬链接&nbsp;hardlink1&nbsp;后,hardlink1&nbsp;和&nbsp;file1&nbsp;都指向同一个&nbsp;inode,操作系统将它们视为同一个文件的两个入口。硬链接不能跨文件系统。因为硬链接依赖于目标文件的&nbsp;inode,而&nbsp;inode&nbsp;号在不同的文件系统中是独立的,所以硬链接必须位于与目标文件相同的文件系统中。
查看9道真题和解析
点赞 评论 收藏
分享
05-24 12:03
湖南大学 Java
1、项目什么时候会触发失败,人为介入;2、sql如何分页展示&nbsp;&nbsp;&nbsp;&nbsp;在sql中,可以使用limit和offset子句或者row_number()窗口参数来实现分页展示数据;&nbsp;limit&nbsp;number_of_rows表示每页展示的行数,offset&nbsp;offset_value表示跳过前面的行数。例如,对于第一页,offset是0,以此类推;3、http包含了哪些内容&nbsp;&nbsp;&nbsp;&nbsp;请求方式(get、post、delete、put)、状态码(1XX表示请求已被服务器接收,继续处理、2XX表示请求已成功被服务器接收、理解、并接受、3XX表示需要客户端采取进一步的操作才能完成请求、4XX表示客户端请求有语法错误或无法完成请求、5XX表示服务器在处理请求的过程中发生了错误)4、TCP的状态&nbsp;&nbsp;&nbsp;&nbsp;三次握手、四次挥手5、如果在建立连接的时候,ack后,开始发送数据,但是ack数据包丢失,这个情况下服务器如何处理这个数据包&nbsp;&nbsp;&nbsp;&nbsp;首先关于服务器状态的改变,在正常情况下,服务器收到客户端的ACK报文之后,连接就进入了ESTABLISHED(已建立)状态,但是ACK数据包丢失,服务器在发送SYN-ACK报文之后,会等待客户端ACK的确认,此时服务器的状态会一直保持在SYN-RCVD(同步已接受)状态。&nbsp;&nbsp;&nbsp;&nbsp;服务器的重传机制,在一定时间内,没有收到客户端的ACK报文,服务器会重新发送SYN-ACK报文。&nbsp;&nbsp;&nbsp;&nbsp;在等待ACK的过程中,服务器会为这个半连接分配一定资源。6、操作系统的进程调度方式,win使用哪些进程调度方式,linux是使用哪些进程调度方式操作系统的进程调度方式主要有以下几种:先来先服务调度算法(FCFS)原理&nbsp;:按照进程进入就绪队列的先后顺序进行调度,先到达的进程先得到处理。特点&nbsp;:简单易懂,但可能导致后到达的短进程等待过长。短进程优先调度算法(SJF)原理&nbsp;:优先调度估计运行时间短的进程。特点&nbsp;:能有效减少进程的平均等待时间,但难以准确预估进程的运行时间。时间片轮转调度算法(RR)原理&nbsp;:将&nbsp;CPU&nbsp;时间划分为一个个时间片,按就绪队列顺序分配时间片给进程运行,若时间片用完而进程未完成,则进入队列等待下一轮调度。特点&nbsp;:适合多用户分时系统,保证了每个进程都能获得一定的&nbsp;CPU&nbsp;时间,但时间片大小的选择较关键。优先级调度算法原理&nbsp;:为每个进程设置优先级,优先级高的进程先调度,优先级相同则按先来先服务调度。特点&nbsp;:灵活但易导致低优先级进程饥饿。多级反馈队列调度算法原理&nbsp;:设置多个就绪队列,每个队列对应一个优先级和时间片大小,进程根据运行时间和抢占情况在不同队列间移动,优先级高的队列中的进程先调度,同一队列中的进程采用时间片轮转调度。特点&nbsp;:兼顾多个方面,是较复杂的调度算法,能有效处理各种类型的进程。Windows&nbsp;的进程调度方式:多优先级反馈调度算法&nbsp;:Windows&nbsp;将进程分为多个优先级,优先级高的进程优先调度。系统会根据进程的行为动态调整优先级,如交互式进程的优先级会提高,CPU&nbsp;密集型进程的优先级会降低。实时进程调度&nbsp;:对于实时进程,Windows&nbsp;使用先来先服务和轮转算法,确保实时任务及时得到处理。Linux&nbsp;的进程调度方式:完全公平调度器(CFS)&nbsp;:基于红黑树数据结构管理进程,通过计算进程的虚拟运行时间来确定调度顺序,优先调度虚拟运行时间少的进程,兼顾进程的公平性和吞吐量。实时进程调度&nbsp;:包括先来先服务(SCHED_FIFO)和轮转(SCHED_RR)两种策略,确保实时进程及时得到&nbsp;CPU&nbsp;资源。过时的&nbsp;O(1)调度算法&nbsp;:早期&nbsp;Linux&nbsp;使用,基于就绪队列和过期队列,优先调度优先级高的进程。pv操作PV&nbsp;操作是操作系统中进程同步与互斥的一种重要机制,主要用于处理进程之间的资源竞争和同步问题。PV&nbsp;操作通过信号量(semaphore)来实现,它包含两种操作:P&nbsp;操作和&nbsp;V&nbsp;操作。PV&nbsp;操作的定义P&nbsp;操作(wait&nbsp;操作)&nbsp;:用于测试信号量的值。若信号量的值大于等于&nbsp;1,则信号量减&nbsp;1,进程继续执行;若信号量的值小于&nbsp;0,则进程进入等待队列等待。P&nbsp;操作的格式如下:V&nbsp;操作(signal&nbsp;操作)&nbsp;:用于将信号量的值加&nbsp;1。若信号量的值大于等于&nbsp;0,则直接加&nbsp;1;若信号量的值小于&nbsp;0,表示有进程在等待该信号量,此时唤醒一个等待的进程,并将信号量的值加&nbsp;1。V&nbsp;操作的格式如下:
查看7道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务