牛客后端开发面试题3

 阿里巴巴2021

1、通配符的含义

在字符串匹配时可以代替一定范围的字符。

2、死锁的基本知识

产生死锁的原因:

1.系统资源不足

2.进程运行推进方式不合理

3.分配资源不合理

(把幼儿园老师比作操作系统,幼儿园里的玩具比作系统资源,死锁就是小朋友们都争抢玩具却没得玩尬住了,如果玩具足够多,就不会有没有玩具玩的小朋友;如果老师安排轮流玩或者其他合理方案,小朋友们就不会因此争夺;另外就是本来只有三个球,十个人要一起玩耍,而其中一个小朋友一次性就占了两个球也是不合理的)

产生死锁的四个必要条件:

1.互斥条件:保证一个资源,每次只能给一个进程使用

2.请求与保持:一个进程因请求资源阻塞时,对于已经获得的资源保持不变

3.不剥夺条件:对于已获得资源的进程,其未使用完之前,不能强行剥夺其资源。

4.循环等待条件:若干个进程之间形成一种头尾相接的循环等待的过程

死锁的解除与预防:

从产生死锁的三个原因下手去解决,设计合理的调度算法和资源分配就能一定程度避免死锁

3、 delete、new的用法

new和delete是动态内存管理的操作符。

new空间必须要delete释放,new[]申请也要delete[]释放,并且delete之后要把指针置为nullptr

,否则指针就会变成悬空指针(野指针)

4、STL中迭代器的工作原理,迭代器与普通指针有什么区别?

迭代器的使用类似于指针,它可以访问容器中的对象

相同点:

1.迭代器和指针都可以+、-以访问前n个或后n个元素

2.迭代器和指针都可以进行减运算,指针减指针是两个指针之间的距离,迭代器减迭代器是两个迭代器之间的距离

3.通过指针和迭代器都可以修改所指向的元素

不同点:

1.输出时,指针可以直接输出值,而迭代器返回的是对象,对象不能直接输出,要加上*才能输出对象的值

2.指针是可以指向函数的,而迭代器只能指向容器中的元素

5、什么是友元?

友元本质上是破坏了C++的封装性的,但是在不暴露数据安全的情况下,让函数和类访问它,实现了可扩展性和安全性,也提供了便捷。

有友元类和友元函数。友元类是在类中声明为友元的另一个类。友元函数是在类中声明了一个非成员函数,友元类和友元函数都可以访问该类的私有和保护成员。

class A

{

        A(){}

        friend class B;

        //A把B添加到自己的通讯录了,把B当朋友,B可以访问A里面的所有成员函数和私有成            员、保护成员。但是A不可以访问B的私有成员保护成员
}

友元的三个特性:单向的(单相思,别人可以访问你但是你不能访问别人)、不可传递(A是B的友元,B是C的友元,A不是C的友元)、不可继承。

6、typename的用法

在C++中,typename是一个关键字,用于告诉编译器某个符号是一个类型,而不是一个变量或函数。通常在模板中使用,因为模板中的类型有可能是嵌套的类型,需要使用typename来明确表示。

7、编程判断一个数是否为2的幂

n&(n-1)==0就是。

因为2的n次方数字,应该只有1个1并且右边是全0,

8、你怎样重新改进和设计一个ATM银行自动取款机?用指纹识别、人脸识别来替代密码输入;

首先要添加硬件设备,其次要保证安全性不能被攻击,然后再设计相应的算法以及故障处理(如果人脸识别或指纹用不了还可以用密码登录)。

相关推荐

  1. 开发面试3

    2023-12-16 12:46:02       59 阅读
  2. 开发面试

    2023-12-16 12:46:02       63 阅读
  3. 开发面试

    2023-12-16 12:46:02       24 阅读
  4. 字节面试(懂车帝)开发

    2023-12-16 12:46:02       68 阅读
  5. 秋招开发面试 - MySQL索引

    2023-12-16 12:46:02       30 阅读
  6. 秋招开发面试 - MySQL基础

    2023-12-16 12:46:02       27 阅读
  7. 秋招开发面试 - MySQL事务

    2023-12-16 12:46:02       34 阅读
  8. 开发面试5(附答案)

    2023-12-16 12:46:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 12:46:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 12:46:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 12:46:02       82 阅读
  4. Python语言-面向对象

    2023-12-16 12:46:02       91 阅读

热门阅读

  1. 设计模式的应用——《职责链模式》

    2023-12-16 12:46:02       50 阅读
  2. react之useContext全局状态管理

    2023-12-16 12:46:02       69 阅读
  3. 软件测试面试中基础与功能的问题

    2023-12-16 12:46:02       49 阅读
  4. opencv一些报错的解决方案

    2023-12-16 12:46:02       57 阅读
  5. 飞天使-docker知识点7-docker-compose与namespaces

    2023-12-16 12:46:02       56 阅读
  6. LeetCode 每日一题(Hard) Day 11||单调栈

    2023-12-16 12:46:02       56 阅读
  7. 使用Python编写简单的文本编辑器

    2023-12-16 12:46:02       58 阅读
  8. PostgreSql 设置自增字段

    2023-12-16 12:46:02       72 阅读
  9. Python中的列表与数组

    2023-12-16 12:46:02       65 阅读
  10. 使用Python将HTML快速转换成PDF

    2023-12-16 12:46:02       63 阅读