博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试问题搜集及解析
阅读量:5159 次
发布时间:2019-06-13

本文共 3353 字,大约阅读时间需要 11 分钟。

 

计算机网络

 

 

TCP的报文格式

 

怎么在ipv4中找一个ip地址

Q:DDos攻击的原理介绍一下 

A:emmm...listen有一个队列,处理连接请求。在收到匿名IP发过来的SYN之后,会在listen队列中存放一个记录,但是队列容量是有限的,当这样的恶意请求过多的时候,listen队列里就塞满了这些无效的连接请求,然后装不下更多的连接记录了,所以就拒绝其他请求了

 

 

操作系统&数据库

 

内核态和用户态的区别

 

 

 

死锁,如何解决死锁

死锁?死锁产生的原因?死锁的必要条件?怎么处理死锁?(四个方面)
解析:(1)相互等待资源而产生的一种僵持状态,如果没有外力的干预将一直持续这个状态
          (2)系统资源不足、相互竞争资源、请求资源顺序不当
          (2)互斥、不可剥夺、等待、循环等待
          (3)因为互斥是不可改变的,所以只能破坏其他三个条件中的一个来解除死锁,方法:剥夺资源、杀死其中一个线程

 

 

1、进程和线程的区别?

 

解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元

 

          (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程。

 

          (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束

 

          (4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的

 

          (5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源

 

          (6)线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志
 

 

多进程和多线程的使用场景

有哪些方法清除cache中旧的数据

SQL优化,有哪些优化方法

有名管道

select poll epoll的区别 底层实现原理

协程

怎么保证一个CPU只有一个线程运行

线程的基本组成是什么?

线程分配什么:tcb

多线程同步和互斥方法,内核态下有什么方法,回答三个:信号、互斥量、条件遍历

信号量是什么?信号量不是多个资源可以访问统一资源吗?多个时刻可以访问同一个资源

一范式二范式三范式是什么?

锁,可重入锁 

线程同步的方式

5、IPC通信方式?

 

解析:(1)管道(匿名管道(pipe亲缘关系的进程通信)、命名管道(mkfifo/mknod))

 

          (2)消息队列:是基于消息的、用无亲缘关系的进程间通信,主要函数:msgget、msgsend、msgrecv、msgctl

 

          (3)信号量:相当于一把互斥锁,通过p、v操作,主要函数:semget、semop、semctl

 

          (4)共享内存:是进程间通信速度最快的,所以用经常是集合信号量或互斥锁来实现同步,shmget、shmat、shmdt、shmctl

 

19.fork、vfork还有clone的区别
 
20.僵尸进程和避免僵尸进程
 
21.惊群效应
 
22.中断的作用
 

27.内存分配原理

 

29.poll和epoll的区别

 

30.epoll中ET模式与LT模式的区别

 

31.数据库事务

 

44.epoll的水平触发和边缘触发

 

 

 

 iOS相关

 

 

 

 

 

 

 

析构函数,虚析构函数

hash

 

 

派生类中的构造函数执行顺序

字符串转double的代码

 

设计模式

hashmap原理

全局变量和static变量的区别.如果在两个.h文件中声明两个同名变量会怎么样? 如果使用extern 如果没有使用

汉诺塔

若汉诺塔的底盘有2种颜色,如何分离它们

给了数据流,求历史记录中的中位数(用2个优先队列)

 

用O(1)时间复杂度返回当前栈中最小元素

 

 

 

 

 

 

 

 

 

 

腾讯现场一面补充:

tcp的滑动窗口

udp怎样确保不丢包(kcp)

手写快速排序

 

腾讯现场复试补充:

加密算法(明文、暗纹、对称、非对称加密) 

 

 

 

阿里一面补充知识点:

直播技术

 

 酷家乐一面补充:

http协议

分词技术

分布式存储

 

WPS一面补充:

map的自定义key值怎样排序

 

 

 

 

 

函数栈帧

用C实现C++的特性

哈夫曼动态压缩

泛型编程

STL库常用接口

面向对象的特性

df底层/原理是什么,是干什么的,百分比计算是怎么算的

一个文件被删除了,没有被释放是什么原因呢?

 

给你一个50亿的整数让你找出中位数(分治法 和 位图法)

sql语句

二叉搜索树

 

密码加密MD5

N个红白蓝三种小球,乱序排在一起,两两交换,要求从左至右排序成红白蓝

二维数组,行递增从左至右,列从上到下递增,给一个数,求出该数的位置

线程同步的方式

B+树

 

 

 

 

 

如果一个函数传入一个对象,那么这是浅拷贝还是深拷贝?

如果使用的是引用或指针不会发生拷贝,如果传入的类没有实现拷贝构造函数则是浅拷贝,如果实现了拷贝构造函数则看实现的拷贝构造函数是浅拷贝还是深拷贝。

 

C语言里的指针是什么?

首先它是一个变量,里面存的是所指向的内部数据类型或对象的地址。取内容可以获得这个数据或对象。

 

实际上指针不一定是变量,也有常量指针,不过一般都说指针是指针变量的简称。所以上述表达没有什么问题。

 

形参实参的区别

形参指的是外部调用的时候传入的参数,实参是函数在处理内部所使用的参数

 

为什么C++开发时用来做基类的类的析构函数一般都是虚函数?

这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。

 

 

 

 

 

 

1. sizeof和strlen的区别

 

2.一个int大概多大?
32位4个字节,64位8个字节
 
3.map with mutex和sync.Map的区别
 
4.sizeof和strlen的区别
 
5.多个进程同时监听一个UDP端口会怎么样?
 
6.++i和i++的区别?
 
7.
进程的内存结构?
A:内核、栈、动态链接库、堆、静态区、代码段、保留区
 
8.
Q:静态变量和全局变量在哪个区?
A:静态区……
 
9.
Q:++i和i++的区别?
A:++i效率比较高。
 
10.
Q:空类的大小?
A:1byte
 
11.引用和指针的区别?
 
 
13.在一个字符串中找到一个子序列
 
14.怎么判断两个链表是否交叉
 
15.怎么找若干个子串中任意两个子串的的最长公共前缀
 
16.怎么实现一字节对齐
 
17.怎么实现无锁循环队列
 
18.手撕代码:一颗二叉搜索树,找出树中的第k大节点
 
 
 

 

28.AVL树、B+树、红黑树

 

 

 

 

32.

  (1)多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载

    (2)动态绑定怎么实现?(就是问了一下基类与派生类指针和引用的转换问题)

    (3)类型转换有哪些?(四种类型转换,分别举例说明)

    (4)操作符重载(+操作符),具体如何去定义,?(让把操作符重载函数原型说一遍)

    (5)内存对齐的原则?(原则叙述了一下并举例说明)

    (6)模版怎么实现?

    (7)指针和const的用法?(就是四种情况说了一下)

    (8)虚函数、纯虚函数、虚函数与析构函数?(纯虚函数如何定义,为什么析构函数要定义成虚函数)

    (9)内联函数(讲了一下内联函数的优点以及和宏定义的区别)

    (10)const和typedef(主要讲了const的用处,有那些优点)

    (11)排序算法有哪些?快速排序怎么实现的?最好时间复杂度,平均时间复杂度

    (12)链接指示:extern “C”(作用)

    (13)c语言和c++有什么区别?
(大体讲了 一下,继承、多态、封装、异常处理等)

33.c++中四种类型转换机制?

34.strcpy函数的编写?

35.虚函数,虚函数表里面内存如何分配

36.类的封装:private,protected,public

37.二叉树查找最近公共祖先

38.实现简单二叉树类,实现插入,删除和前中后序遍历

39.tcpdump

40.动态库和静态库的区别

 

45.一个公交站在1分钟内有车经过概率是p,问3分钟内有车经过概率 1-(1-p)^ 3

  

 

 

网络:

 

 

操作系统:

 

 

 

 C++:

 

Vector容量倍增

 

 

 

区别问题:

 

 

 

 

转载于:https://www.cnblogs.com/Kiven5197/p/8836132.html

你可能感兴趣的文章
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>