3.15 模拟面试

C++缓冲

答:缓冲也叫缓存,主要用于读写频繁,会有多次的磁盘IO,非常费时间,这个时候就要弄个缓存,首先缓存是处于内存中的一块儿区域,去吧输入或者输出的东西暂存在缓冲区内,如果满了就进行IO操作,这样的话就会少了很多的IO操作达到省时的目的,还有C++中的endl会刷新缓冲区,所以竞赛的时候使用endl输出会频繁刷新缓冲区,达不到省IO次数的目的,所以超时,C++中的printf cout这些都是先弄到缓冲区内,然后再一起弄进去的

除了开辟堆空间忘记释放还有什么情况会导致内存泄漏

答:内存泄漏出现的情况只能时堆空间没有释放掉,除了忘记释放那就是因为某些情况没有释放掉,比如把对象转换成void指针,然后delete掉之后,因为是void没有调用析构函数,所以内存泄漏

static存在哪个区,两个.h文件同时定义一个同名static全局变量有影响吗

答:static存储与全局变量区,全局变量是可以被多个源文件所使用的,但是用static修饰后达到隐藏作用,只能当前源文件使用,所以不产生冲突

C++重载和重写区别在哪?怎么实现?

答:重载是作用域于同一个,重载要求参数类型有所不同,就能使用同一个函数名实现不同函数体

重写也就是加上了virtual关键字,在不同类之间,要求返回值参数都一模一样,然后进行重写功能

copy on write

答:copy on write  中文名写时拷贝,顾名思义也就是我需要修改值得时候才行真正拷贝,在那之前都是进行内存的一种共享

进程的话都是有一个物理内存空间,然后进程有一个虚拟地址指向

fork函数就采用了写时拷贝,如果使用fork函数进行了所有的拷贝,但是后面只是进行一些读操作,那么就造成一些不必要的拷贝,写时拷贝就是先用一个指针指向父进程的区域,然后如果要修改的话再进行真正的拷贝

vfork的话直接采用共享虚拟地址的方法,也就是说相当于就是再父进程上进行操作,在这个期间,父进程要等待,等子进程执行完才可以

RSA怎么实现的身份验证作用

RSA是非对称加密,两边分别有自己的私钥和公钥,然后通过公钥加密私钥加密来读取信息

https用的是私钥还是公钥加密

答: 公钥加密

首先使用非对称加密,两边各有公钥私钥一对,然后把公钥给了对方,发送的时候使用公钥加密,然后私钥进行解密读取信息,https的话还会生成随机数,然后将几个随机数拼凑成一个对称加密的公钥

讲讲get和post的区别

答:get的请求报文实在url这的,post的请求报文是在请求体的,post的请求就比较安全

 get的请求会有缓存,post不会

C++三大特性

答:

封装:也就是成员都是私有,用户不能直接访问,这样保证数据的安全性

继承:面向对象中就可以用类的继承关系来实现很多人性化的操作

多态:virtual修饰的函数,使用多态能够使对象能够动态的改变执行体

weak_ptr怎么解决的循环引用

https://blog.csdn.net/qq_43684922/article/details/89407311

猜你喜欢

转载自www.cnblogs.com/Lis-/p/12505175.html