计算机的好处和坏处有什么好处?

信号产生-》信号在进程中注册-》信号在进程中的注销-》执行信号处理函数

(1)当用户按某些终端键时产生信号(2)硬件异常产生信号【内存非法访问】(3)软件异常产生信号【某一个条件达到时】(4)调用kill函数产生信号【接受和发送的所有者必须相同,或者发送的进程所有者必须为超级用户】(5)运行kill命令产生信号

(1)执行默认处理方式(2)忽略处理(3)执行用户自定义的函数

使用explicit关键字进行修饰

重载,重写和隐藏的区别?
重写【覆盖】:即用于虚函数
隐藏:只要派生类的函数名与基类相同就会隐藏

volatile表示什么?有什么作用?
易变的,不会被编译器进行优化,让程序取数据直接去内存中的。

内存分配错误时,抛出bad_alloc异常,可以定义set_new_handler函数来在产生异常时进行处理;本身是一个运算符;分配内存的地方为自由存储区【为一个抽象概念】;对于对象而言,会先申请内存空间然后调用构造函数;无需指定大小
内存分配错误时,返回NULL;本身是一个库函数;分配内存的地方为堆;只申请内存空间;需要指定申请多大的内存;

free一个数组时如何知道要释放多大的内存呢?
一般在数组前面几个字节中存在某一个结构体来保存当前申请的数组大小。

从右往左压栈,堆栈参数数据由函数本身清除,一般是通过汇编指令ret x,x表示弹出x个字节,参数必须是确定,必须为函数本身知晓,所以此关键字不能用于有可变参数应用的函数声明。
从右往左压栈,由调用者来对堆栈数据进行清除,步骤:调用方调用函数-》函数执行-》函数结果返回-》调用方清除堆栈参数,主要针对可变参数

linux内部提供了那些调试宏?
FILE:表示在哪个文件
LINE:表示在当前多少行
FUNCTION:表示在执行在哪个函数

手写线程安全的单例模式?

指针:是一个变量类型;指针可以不进行初始化;指针初始化后可以改变,在写代码时需要大量的检测
引用:是一个别名;引用必须要初始化;引用初始化后不可改变,无需检测

出现异常时,try和catch做了什么?
Catch(Ep a)发生异常-》建立一个异常对象-》拷贝一个异常对象-》catch处理
异常对象通常建立在全局或者堆中【需要在函数外进行捕捉】
Catch捕捉异常的转换:异常处理时,如果用基类的处理派生类的对象会导致派生类完全当做基类来使用,即便有虚函数也没用,所以派生类必须放在基类前处理。

C++如何处理多个异常的?

常对象的成员变量一定不可以修改吗?为什么?
可以修改,用mutable来修饰,可以突破const的限制。

找到对象内存中vfptr所指向虚函数表的地址-》找到虚函数表相应的虚函数地址
虚函数放置顺序与声明顺序一样,成员变量也是
虚表中放的不是函数的入口地址,而是一个jmp跳转指令的地址

单继承,多继承,菱形继承,虚继承时,对象内存中的差异区别?如果存在虚函数呢?

加粗样式TCP如果两次握手会出什么问题?那三次握手又会造成什么问题?有什么好的解决方法没?*

两次握手:客户端发送的连接请求可能在网络中滞留了,如果没有三次握手,可能会再次创建一个连接。
不断发送同步报文段会因为传输控制模块TCB【处于半连接状态】从而消耗服务器资源
(1)【处理连接和半连接】定时释放监控系中无效的连接
(2)Syn ***技术【处理半连接状态】,接受到的SYN先不创建TCB,而是用一个hash表来表示,当前连接,如果接收到ACK然后再创建TCB
(3)Syn cookie技术【处理连接】通过一个cookie值来确定当前连接是否合法,合法就连接,一般的验证方法是,服务器接受到一个syn包,服务器通过syn产生一个cookie数据作为初始化序列,接收到ACK包时,序列-1就是得到的cookie,然后进行相应的验证。

TCP四次挥手为什么要有TIME_WAIT状态?为什么?
(1)保证TCP协议全双工连接能够可靠关闭,直接关闭的话,如果服务器没有收到ACK,会重复发FIN。
(2)保证这次连接的重复数据从网络中消失,如果上次的socket和这次的socket处理的程序一样,就会导致这次连接把上次的数据加进来了。

死锁的原因?条件?如何预防?又如何避免?如何解除?
原因:系统资源不足;进程运行推进顺序不合适;资源分配不当
条件:互斥;不剥夺;循环等待;请求与保持
预防:破坏任意一个条件
检测:资源分配图简化法

排序稳定的算法,你知道那些?
冒泡排序;插入排序;归并排序;基数排序

解决hash冲突的方法?
线性探测法;开链法;再哈希法;

C++分为内存分为哪几部分?
堆;栈;静态全局;常量;自由存储区

如果new申请内存失败了,如何去解决?如果让你实现一个new,你会怎么实现?
如果申请失败可以通过set_new_handler来进行处理。
实现:需要注意申请失败,如果相应的处理函数则调用,否则抛出bad_alloc异常

如何得到一个结构体内成员的偏移量?

(1)进程又自己的独立地址空间,线程没有
(2)进程是资源分配的最小单位,线程是CPU调度的最小单位
(3)进程和线程通信方式不同
(4)进程切换上下文开销大,线程开销小
(5)一个进程挂掉了不会影响其他进程,而线程挂掉了会影响其他线程
(6)对进程进程操作一般开销都比较大,对线程开销就小了

构造函数能不能虚函数?为什么?那拷贝构造函数能不能为虚函数?为什么?
不可以为虚函数,因为在调用构造函数时,虚表指针并没有在对象的内存空间中,必须要构造函数调用完成后才会形成虚表指针。
拷贝构造函数是构造函数所以理由同上。

析构函数能不能虚函数?为什么?
可以为析构函数,没有为什么

模板和实现可不可以不写在一个文件里面?为什么?
只能写在一个一个头文件中。
原因:多文件处理变为一个文件其实是通过链接器来实现的,所以如果用源文件来处理模板实现,会导致链接失效,最主要的原因还是在编译,编译器会暂时不处理模板类只有在实例化对象时才去处理,但是这就需要实现的代码了,如果放在其他文件的话,就会无法形成相应的类。

什么是RAII资源管理?
即资源获取就是初始化,利用对象生命周期来控制程序资源,简单来说就是通过局部对象来处理一些资源问题

(1)有些特殊的CPU只能处理4倍开始的内存地址
(2)如果不是整倍数读取会导致读取多次
(3)数据总线为读取数据提供了基础
在成员函数中调用delete this会出现什么问题?对象还可以使用吗?
如果当前内存空间真正被释放了再次调用成员函数会报错,调用成员变量好像没有问题。

对于有虚函数和虚表存在的类,在进行memset后不能调用虚函数和虚基表继承而来的数据和函数

对一个数组而言,delete a和delete[] a有什么区别?为什么?
对于基础数据类型没有什么区别,对于对象delete值调用一次析构函数,delete[]才会析构所有的东西。

Dynamic_cast是如何实现运行时类型转换的?
如果有些虚函数的话,会到对应的虚表中的RTTI去查找对应的类型来判断可不可以进行相应的转换。

C语言调用C++语法函数怎么做?那C++调用C语法的函数怎么做?
使用extern “C”来产生C语言环境编译的程序供外部使用。

Extern “C”是什么意思?他有什么作用?
表示当前声明需要用C语言环境进行编译。

进程间的通信方式有哪些?线程间的通信方式呢?
进程:共享内存,消息队列传递,无名管道,有名管道,信号,套接字
线程:锁机制,信号量,信号

阻塞,非阻塞,IO多路复用,异步

阻塞和非阻塞?同步与异步的区别?

Select和poll缺点:(1)每次调用select都需要将fd集合从用户态拷贝到内核态(2)每一次调用select都需要在内核中遍历所有的fd
(3)select支持的文件描述符太小,默认1024,poll没有限制
Epoll:使用红黑树来存储fd,同时每一次通过epoll__ctl来将fd加入内核中,同时通过双向列表来返回已经出发某一个事件的fd

手写如何通过一个结构体的成员变量得到一个结构体的地址?

充当可变缓冲区的作用,同时char a[0]不占用内存空间。

如何判断两个浮点数相等?

浮点数为什么会有误差?
因为二进制无法精准的表示十进制小数,0.3和0.2都无法完整的用二进制表示。

TCP的nagle算法和延迟ack,还有CORK呢?他们有什么好处?一起用会有什么效果?你觉得可以有什么改进?

nagle算法:防止网络中存在太多小包而造成网络拥塞
延迟ack:减少ACK包的频繁发送
CORK:将多个包变成一个包发送,提高网络利用率,使载荷率更大

栈上分配内存和堆上分配内存有什么区别?
栈上:分配简单,只需要移动栈顶指针,不需要其他的处理
堆上:分配复杂,需要进行一定程度清理工作,同时是调用函数处理的。

线程私有和共享那些资源?进程私有和共享那些资源?
线程私有:线程栈,寄存器,程序寄存器
共享:堆,地址空间,全局变量,静态变量
进程私有:地址空间,堆,全局变量,栈,寄存器
共享:代码段,公共数据,进程目录,进程ID

什么是守护进程?如何查看守护进程?什么是僵尸进程?如何查看僵尸进程?
守护进程:一个生命周期长,并且控制终端,然后周期性执行某种任务的进程
查看守护进程:ps a敏感词>
僵尸进程:进程退出,但是占用资源没有被回收

进程间通信机制中唯一的异步通信机制

kill函数的每一个参数的作用?
Pid=0:发给进程组所有的进程
Pid=-1:发给所有的进程
Pid<-1:发给指定进程组的进程

用户态的轻量级线程,有自己的寄存器和栈

虚拟内存实现有哪几种方式?有什么意义?
三种:请求分页存储管理;请求分段存储管理;请求段页式存储管理

什么是类型安全?能举例吗?
两个类型直接进行转换,必须是显式的,string和STL模板是类型安全的

确保线程安全的几种方式?
(1)原子操作(2)同步与锁(3)可重入(4)阻止过度优化volatile

应用层;表示层;会话层;传输层;网络层;数据链路层;物理层;

应用层;传输层;网络层【路由器】;数据链路层【交换机、网桥、网卡】;物理层【中继器、集线器】;

网络序是大端还是小端?为什么要这样?

ping命令使用的是什么协议?

(1)网络地址(2)网络掩码(3)网关【下一跳服务器】(4)跃点数【距离】

停止等待协议的缺点?为什么?
信道利用率太低,每次都需要等上一次ACK包接收到了才能再次发送

拥塞控制的方式?具体怎么做的?快重传的时机是什么?
(1)慢开始(2)拥塞避免(3)快重传【收到3个失序分组确认】(4)快恢复

DNS协议如何实现将域名解析为IP地址的?
(1)客户机的应用程序调用解析程序将域名已UDP数据报的形式发给本地DNS服务器
(2)本地DNS服务器找到对应IP以UDP形式放松回来
(3)弱本地DNS服务器找不到,则需要将域名发送到根域名服务器,根域名服务器返回下一个要访问的域名服务器,则访问下一个域名服务器。

(1)申请空的PCB(2)为新进程分配资源(3)初始化PCB(4)将新进程插入就绪队列中

进程切换发生的原因?处理进程切换的步骤?
原因:中断发生;更高优先级进程唤醒;进程消耗完了时间片;资源阻塞;
步骤:(1)保存处理器的上下文
(2)用新状态和其它相关信息更新正在运行进程的PCB
(3)将原来的进程移到合适的队列中【就绪,阻塞】
(4)选择另外一个执行的进程,更新被选中进程的PCB,将它加载进CPU

虚函数表是在什么时候确定的?那虚表指针呢?
编译时确定虚函数表,虚表指针则是运行时

如何检查内存泄露?如果不通过printf,debug等调试方式和编译器报错提示呢?

一个函数,参数为int和指向返回值为void的无参数的函数指针,返回值为一个指向返回值为int,参数为int和int的函数指针

STL空间配置器如何处理内存的?能说一下它的大概实现方案吗?为什么是8bytes的倍数?
分为两部分:大于128bytes用malloc直接申请,小于128bytes则使用一个8bytes倍数的数组来进行申请。
为8bytes的原因是为了提高效率,同时对于64位的机器而言,地址大小为8bytes

静态函数能定义为虚函数吗?为什么?
不可以,因为虚函数属于对象,不属于类

静态函数能定义为常函数吗?为什么?
不可以,因为常函数是操作成员变量的,而静态函数没有成员变量可说

知道什么是幂等性吗?举个例子?
其任意多次执行所产生的影响均与一次执行的影响相同。

当接受方的接受窗口为0时还能接受数据吗?为什么?还能接受什么数据?那怎么处理这些数据呢?
数据:零窗口探测报文;确认报文段;携带紧急数据的报文段

当接受方的返回的接受窗口为0时,发送方会进行什么操作?
开启计时器,发送零窗口探测报文

请求页面置换策略有哪些方式?他们的区别是什么?各自有什么算法解决?
全局:在整个内存空间置换
局部:在本进程中进行置换
全局:(1)工作集算法(2)缺页率置换算法
局部:(1)最优算法(2)FIFO先进先出算法
(3)LRU最近最久未使用(4)时钟算法

系统调用与函数调用的区别?
(1)一个在用户地址空间执行;一个在内核空间执行
(2)一个是过程调用,开销小;一个需要切换用户空间和内核上下文,开销大
(3)一般相同;不同系统不同

对于默认处理的结构体,能用memcmp来进行比较吗?为什么?如果不能,该如何比较?
不能,因为字节对齐多出来的内存是随机的,必须要一个个成员比较

C++中有哪些机制可以取代宏?

手写一个有可变参数的函数?
也可以用宏定义##VA_ARGS,可以针对空参数消除逗号

可靠信号与不可靠信号的区别?
一个会丢失,另外一个则会用队列来保存相应的事件

this指针调用成员变量时,堆栈会发生什么变化?
将相应的参数从右往左压栈,然后将this指针放到寄存器中

C++中可以继承string类吗?为什么?
不可以,因为string不是类

next是一个指针,指向一个函数,这个函数返回一个指针,这个指针指向char类型的常量指针

访问一个网页的过程,计算机发生了什么?
(3)发送HTTP报文
(4)接受HTTP报文

如何判断const所修饰的对象?
const只修饰其后的【变量】,至于const放在类型前还是类型后并没有区别

更多精彩文章请关注微信公众号:YQ编程,或微信扫描以下二维码关注,还有许多IT类电子书等你来拿。

      什么是客户关系管理系统?将CRM翻译成中文是一种客户关系管理系统,利用网络信息技术实现市场营销、销售、服务等自动化,构建客户信息数据收集、管理、分析、使用系统,使企业更好地建立服务管理体系,更好地处理企业与客户之间的关系。

  所以,CRM系统有哪些常见功能?简单介绍一下。

  目前,市场上常见的CRM系统功能主要包括客户管理、时间管理、联系人管理、销售管理、订单营销、营销管理、客户服务、知识管理、数据分析等。根据企业的实际需要,CRM系统的功能不固定。

  企业开发CRM系统有什么好处:

  1.为用户提供更完善的服务:CRM系统可以开发更多的服务块,提高企业各部门的整体响应能力和处理能力,为企业提供更好的服务,吸引和留住更多的客户。

  2.开发CRM系统可以帮助企业更好地处理客户关系。

  3.帮助企业树立良好形象;

  3.为企业带来更多的效益,有利于提高企业的营销水平;

  4.有利于提高企业员工的工作效率;

  5.有利于降低企业成本。

  随着互联网信息技术的发展,许多传统产业进行了信息改革,向互联网方向转变。因此,某种CRM系统的发展对促进企业未来的发展具有积极作用。更好的处理可以实现与客户的关系和口碑宣传的目的。目前,许多企业拥有独特的CRM系统。据我所知,目前口碑最好的定制CRM系统是点镜SCRM。

  点镜SCRM对客户数据的保护:永久云存储备份客户、聊天记录和用户肖像数据,随时随地查询导出,远程一键数据在后台自毁,不怕丢失。屏蔽客户微信显示,员工无法使用私人小号添加客户;同时,各种信息可以根据元素分类并导出为表,保留在计算机端;完全解决辞职员工带走手机和微信的问题。

  点镜SCRM监控客户服务聊天:实时查看任何客户服务聊天内容,设置敏感词触发警告,提炼优秀单词,调查消极怠工,及时培训沟通相关员工,提高工作效率。

  点镜SCRM敏感操作行为监控:删除好友、推名片等几十种敏感行为监控。一旦出现敏感操作,系统会在第一时间自动备份相关内容并进行后台预警,有效控制风险行为,消除损害公司利益的行为。

  点镜SCRM微信财务监管:收发红包,实时上传收发转账记录,防止客服私收或向粉丝索要红包或私收转账吞没公司财产等损害公司利益的行为。

我要回帖

更多关于 计算机的好处和坏处 的文章

 

随机推荐