zoukankan      html  css  js  c++  java
  • 百度个人网盘一面-后端方向

    百度个人网盘一面

     

    时间:07.29下午五点

    方式:电话面

    部门:百度个人网盘

    岗位:后端方向

    面试官性别:女(因为第一次遇到女面试官,所以着重强调下!)

    时长:40分钟左右


     1. 自我介绍(自己balabala大概14分钟)

    2. 选择一个难点或者创新点的地方(到这里大概20分钟了),会根据你的回答,问你某个方面怎么实现的,为什么这么做,我相信都是自己做的项目,基本上都能答出来滴!

    3. 既然你的主要语言是C++,问你几个C++的问题。C++中类的封装讲一下?

    答:封装可以隐藏实现细节,使得代码模块化;封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。在面向对象编程上可理解为:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

    4. C++中const介绍一下?

    答:const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。

    C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

    5. 进程和线程有什么区别?

    答:

    1)      根本区别:进程是操作系统资源分配的基本单位,而线程是CPU调度和执行的基本单位。

    2)      开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

    3)      环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

    4)      内存分配:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

    5)      包含关系:只有一个线程的进程可以看做是单进程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

    6.线程中的同步方式有哪几种,介绍下?

      答:

      1)      互斥锁(Mutex)

      互斥量是最简单的同步机制,即互斥锁。多个进程(线程)均可以访问到一个互斥量,通过对互斥量加锁,从而来保护一个临界区,防止其它进程(线程)同时进入临界区,保护临界资源互斥访问。

      2)      条件变量(condition variable)

      条件变量适合多个进程(线程)等待同一事件发生,然后去干某事。举一个简单的例子:生产者和消费者模型:

      多个消费者去等待生产者生产物品,消费者去消耗物品。当生产者生产出来一件物品时,便可以通知所有的消费者(当然也可以只通知其中一个等待的消费者)---可以去消耗物品了。这时多个消费者便去争抢物品,谁快谁拿到物品消耗。当物品被消耗完时,消费者就等待生产者。就类似于这样的场景。

      条件变量必须配合互斥量一起工作。为什么?因为生产者生产出来的物品是临界资源,即所有进程和线程都可以使用的公共资源,则在一个时刻仅允许一个消费者去取。这时便使用互斥量去保护临界资源

      3)      读写锁(reader-writer lock)

      读写锁适合于使用在读操作多,写操作少的情况,比如数据库。读写锁读锁可以同时加很多,但是写锁是互斥的。当有进程或者线程要写时,必须等待所有的读进程或者线程都释放自己的读锁方可以写。数据库很多时候可能只是做一些查询。

      4)      信号量(semaphore)

      在生产者消费者模型中,对任务数量的记录就可以使用信号量来做。可以理解为带计数的条件变量。当信号量的值小于0时,工作进程或者线程就会阻塞,等待物品到来。当生产者生产一个物品,会将信号量值加1操作。 这是会唤醒在信号量上阻塞的进程或者线程,它们去争抢物品。

    7. 场景题:比如有很多银行:中国,建设,交通等银行,现在在一个网站中,输入“建设”关键字,自动提示关于建设的所有信息。(这个题目我记得不太清楚了,所以描述的不准确,大家可以忽略它。。)(这个题没明白啥意思,直接说不了解)

    8. 场景题:在海量数据中快速查找一个数(或者字符串)是否出现,(数据无序,查找时间在秒级内)

      答:推荐:https://blog.csdn.net/yxccc_914/article/details/53737446

    9. 面试官:今天就到这里吧!(到这里40分钟)

  • 相关阅读:
    【Foreign】数数 [打表][DP]
    【Foreign】猜测 [费用流]
    【Foreign】最大割 [线性基]
    【Foreign】开锁 [概率DP]
    【Foreign】染色 [LCT][线段树]
    【Foreign】阅读 [线段树][DP]
    【Foreign】字符串匹配 [KMP]
    【Foreign】冒泡排序 [暴力]
    【BZOJ1976】能量魔方 [最小割]
    【Foreign】树 [prufer编码][DP]
  • 原文地址:https://www.cnblogs.com/zkfopen/p/11266882.html
Copyright © 2011-2022 走看看