中国电信计算机岗位面试题 计算机考研面试题库及答案
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
- 常考题
- 1、抽象类和接口的区别
- 2、什么时候用抽象类或接口
- 3、Java跨平台怎么实现
- 4、软件工程的各阶段及需求分析的任务和作用
- 5、进程与线程
- 6、主存的分类
- 7、SRAM和DRAM的区别
- 8、多线程通信如何保证
- 9、c++静态成员的作用?你写过的代码怎么使用的?
- 10、c++构造方法的具体过程?
- 11、c/s架构和b/s架构的区别?微信和QQ哪个是B/S架构,哪个是C/S架构,为什么?
- 12、中断的具体过程
- 13、以太网和无线网介质访问控制协议
- 14、传输层的作用
- 15、传输层与网络层的区别
- 16、以太网最小帧长的影响因素
- 17、数据库中的事务了解吗?事务的四大特性?
- 18、如何理解数据库的范式?
- 19、什么叫视图?游标是什么?
- 20、视图的优缺点
- 21、谈谈对TCP/IP协议的理解
- 22、TCP的三次握手和四次挥手
- 23、TCP和UDP的区别
- 24、拥塞控制和流量控制都是什么,两者的区别?
- 26、操作系统的特点?
- 27、操作系统发展过程?
- 28、死锁
- 29、死锁与饥饿的区别?
- 30、面向对象的三个要素(基本特征)?
- 31、软件工程的主要模型?
- 前沿知识
- 1、什么是机器学习?讲讲具体的算法。
- 2、你认为你本科学的数学有哪些会用到机器学习中?
- 3、什么是大数据?
- 4、什么是数据挖掘?
- 5、数据挖掘和机器学习之间有什么联系?
- 6、什么是云计算?
- 7、什么是深度学习?
- 8、你对人工智能有什么了解?强人工智能可能实现吗?
- 9、什么是神经网络?
- 10、用过哪些搜索引擎,他们的区别是什么
- 11、什么是嵌入式系统
- 12、大数据发展的瓶颈?
- 13、大数据的特点
1、抽象类和接口的区别
①抽象类是用来捕捉子类的通用特性的 接口是抽象方法的集合 ②抽象类不能被实例化,只能被用作子类的超类,是被用来创建继承层级里子类的模板 接口只是一种形式,接口自身不能做任何事情 ③抽象类可以有默认的方法实现,子类使用extends关键字来继承抽象类,如果子类不是抽象类的话,它需要提供抽象类中所有声明方法的实现 接口完全是抽象的,它根本不存在方法的实现,子类使用关键字implements来实现接口,它需要提供接口中所有声明方法的实现 ④抽象类可以有构造器,除了不能实例化抽象类之外,它和普通Java类没有任何区别,抽象方法可以有public、【【微信】】和default这些修饰符 接口不能有构造器,是完全不同的类型,接口方法默认修饰符是public,不可以使用其它修饰符
2、什么时候用抽象类或接口
? 如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。 ? 接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,即接口中的方法必须全部是抽象方法(即只有方法标识符,而没有方法体)。 PS:抽象方法只能存在于抽象类或接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类 ? 抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。
3、Java跨平台怎么实现
跨平台是怎样实现的呢?这就要谈及Java虚拟机(【【微信】】,简称 JVM)。 JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种.class文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。 而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一“中间层”就能在不同平台上运行,真正实现了“一次编译,到处运行”的目的。
PS:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。 PS:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。
4、软件工程的各阶段及需求分析的任务和作用
五个阶段: ①问题定义:弄清“用户需要计算机解决什么样的问题”,提出“系统目标和范围的说明”, ②可行性分析:把待开发系统的目标以明确的语言描述出来,并从经济、技术、法律等多个方面进行可行性分析; ③需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审; ④开发阶段:设计、实现(完成源程序的编码)、测试; ⑤维护:改正性维护(由于开发测试的不彻底、不完全),适应性维护(适应环境变化),完善性维护(使用过程中提出的一些建设性意见),预防性维护(改善软件系统的可维护性和可靠性)。 软件需求分析的任务: 深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么”的问题。
5、进程与线程
进程:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程一般由程序、数据集合和进程控制块三部分组成。 程序用于描述进程要完成的功能,是控制进程执行的指令集; 数据集合是程序在执行时所需要的数据和工作区; 程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。 线程:线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成。而进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。
进程具有的特征: 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的; 并发性:任何进程都可以同其他进行一起并发执行; 独立性:进程是系统进行资源分配和调度的一个独立单位; 结构性:进程由程序,数据和进程控制块三部分组成
进程与线程的区别: ①线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位; ②CPU切换一个线程比切换进程要快得多; ③进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见; ④多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉整个进程就死掉(因为共享地址空间);
6、主存的分类
随机存取存储器(Random Access Memory,RAM):是与CPU直接交换数据的内部存储器。可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘) 只读存储器(Read Only Memory,ROM):ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会丢失
7、SRAM和DRAM的区别
SRAM(静态随机存储器):不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。SRAM的存取速度快,但集成度低,功耗较大,所以一般用来组成高速缓冲存储器。 DRAM(动态随机存储器):需要不停地刷新电路,否则内部的数据将会消失,而且不停刷新电路的功耗是很高的。DRAM具有容易集成、位价低、容量大和功耗低等优点,但DRAM的存取速度比SRAM的慢,一般用来组成大容量主存系统
8、多线程通信如何保证
多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 wait()、notify()、notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态。这三个方法最终调用的都是JVM级的【【微信】】方法。随着JVM运行平台的不同可能有些许差异。 ①如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。 ②如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程可以继续运行。 ③如果对象调用了notifyAll方法就会通知所有等待这个对象控制权的线程继续运行。
9、c++静态成员的作用?你写过的代码怎么使用的?
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。 PS:①静态成员函数中不能调用非静态成员。 ②非静态成员函数中可以调用静态成员(因为静态成员属于类本身,在类的对象产生之前就已经存在) ③静态成员变量使用前必须先初始化
10、c++构造方法的具体过程?
? 一个类必须有构造函数,要么用户自己定义,要么编译器自动生成; ? 如果用户自己没有定义构造函数,那么编译器会自动生成一个默认的构造函数,只是这个构造函数的函数体是空的,没有形参,也不执行任何操作, ? 构造函数必须是public 属性的,否则创建对象时无法调用。当然设置为private,【【微信】】 属性也不会报错,但是没有意义。 ? 构造函数没有返回值,因为没有变量来接收,这意味着,构造函数函数名前面不能出现返回值类型,void 也不行,函数体内也不能有return。
11、c/s架构和b/s架构的区别?微信和QQ哪个是B/S架构,哪个是C/S架构,为什么?
C/S架构(即客户机/服务器模式)分为客户机和服务器两层:第一层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层。客户端和服务器直接相连。
C/S架构的优点 ? 客户端和服务器直接相连。点对点的连接方式更安全,可以直接操作本地文本,比较方便。 ? 客户端可以处理一些逻辑事务。可以进行数据处理和数据存储,提供一定的帮助。 ? 客户端直接操作界面。 C/S架构的缺点 ? C/S架构适用于局域网,对网速的要求比较高。 ? 客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写。 ? 随着用户数量的增多,会出现通信拥堵、服务器响应速度慢等情况 ? 系统的维护也比较麻烦。 C/S架构的应用:从办公的OFFICE,WPS,WINRAR到杀毒软件如金山,瑞金再到我们的娱乐软件,如播放器,QQ,微信等。
B/S架构(浏览器/服务器结构)C/S架构的一种改进,可以说属于三层C/S架构。 第一层是浏览器(即客户端)只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。 第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。 第三层是数据库服务器,它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器。 B/S架构的优点 ? 浏览器和数据库服务器采用多对多的方式连接。因此适合在广域网里实现巨大的互联网,甚至是全球网,有着很强大的信息共享性。 ? 浏览器只处理一些简单的逻辑事务,负担小。 ? 数据都集中存放在数据库服务器,所以不存在数据不一致现象。 ? 随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。 ? B/S建立在广域网上,所以需要的网速要求不高。 ? 不需要安装客户端,只要能连上网,就能随时随地的浏览页面。 ? 能有效地保护数据平台和管理访问权限,确保服务器数据库的数据安全。 B/S架构的缺点 ? 服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。 ? 页面需要不断地动态刷新,当用户增多时,网速会变慢。 B/S架构的应用 比如WEBQQ,从WEBQQ名称中的WEB就不难看出它属于B/S架构,是一种浏览器服务器结构。事实上也是如此,因为WEBQQ根本不需要安装客户端,只需要有浏览器就可以进行聊天交互了。 C/S架构和B/S架构的区别: ? 建立基础不同:C/S是建立在局域网的基础上的;而B/S是建立在广域网的基础上的。 ? 硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务;B/S建立在广域网之上的,不必有专门的网络硬件环境。 ? 对安全要求不同:C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息;B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。 ? 对程序架构不同:C/S 程序更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑;B/S对安全以及访问速度的多重考虑,建立在需要更加优化的基础之上。 ? 系统维护不同:C/S 程序由于整体性,必须整体考察 处理出现的问题以及系统升级,升级难,可能是再做一个全新的系统;B/S构件组成,方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
12、中断的具体过程
13、以太网和无线网介质访问控制协议
以太网(CSMA/CD) 无线网(CSMA/CA)
14、传输层的作用
- 传输层提供应用进程之间的逻辑通信(即端到端的通信),网络层提供的是主机之间的逻辑通信。从网络层来说,通信的双方是两台主机, IP 数据报的首部给出了这两台主机的IP 地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。
- 复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
- 传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只检查IP 数据报的首部,不检验数据部分是否出错。
- 提供两种不同的传输协议,即面向连接的TCP 和无连接的UDP 。而网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)。
15、传输层与网络层的区别
? 在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议为不同主机提供逻辑通信。 ? 网络层只是根据网络地址将源结点发出的数据包传送到目的结点(点到点) 传输层则负责将数据可靠地传送到相应的端口(端到端)
16、以太网最小帧长的影响因素
以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网是不可靠的,这意味着它并不知道对方有没有收到自己发出的数据包,但如果他发出的数据包发生错误,他会进行重传。以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞。
17、数据库中的事务了解吗?事务的四大特性?
作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。 数据库事务的四大特性(ACID): (1) 原子性(Atomicity):对数据修改操作要么全部执行,要么完全不执行。 (2)一致性(Consistency) :事务执行前后数据库都必须处于一致性状态。 (3)分离性(Isolation):并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。 (4)持久性(Durability):当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBM保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。
18、如何理解数据库的范式?
1NF:关系模式R的所有属性都是不可再分的基本数据项; PS:1NF是对关系模式的最基本的要求 不满足1NF的数据库模式不能称为关系数据库 2NF: 符合1NF且非主属性完全依赖于码(即消除部分依赖); 3NF:符合2NF且消除传递依赖; 满足BCNF的关系模式的条件:①所有非主属性对每一个码都是完全函数依赖;②所有的主属性对每一个不包含它的码,也是完全函数依赖;③没有任何属性完全函数依赖于非码的任何一组属性 PS:若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式
19、什么叫视图?游标是什么?
视图是通过一个查询语句的查询结果来定义的。创建视图可在一张表上,也可以在多个表上创建。SQL-92只允许对基于一张表上的视图进行插入、修改和删除。对定义在多个基表之上的视图,不允许进行更新操作。 游标:使用游标的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是
蝴蝶为什么是昆虫界最残忍的 蝴蝶为啥是虫子
蝴蝶是害虫还是益虫,为什么,蝴蝶是什么动物为什么,为什么蝴蝶是虫子变的,蝴蝶为啥不是益虫微信版本:V8.0,电脑使用网页版登录
1、手机正常登录微信界面(未登录电脑前效果)
2、电脑网络登录界面(浏览器搜索网页版微信),手机微信扫描登录
3、手机和电脑同时登录效果
微信网页版的地址是,用微信扫描网页上的二维码即可登录。
微信网页版的功能有:手机和电脑之间的文件传输,可以将手机视频、图片、文件、音乐通过电脑微信网页版下载到电脑本地硬盘。类似的功能很多第三方应用都能做到(比如无线U盘),不知道微信网页版的传输速度如何。
摇一摇传图
你可以将电脑网页上的图片传到手机上,更可以让好友也摇到你的图片微信网页二维码登录界面。其实,还有一个微信公众平台,这个是大家还没发现价值的平台,帮助商户可以建立微信商城的,有参考:微销宝、淘宝商城等。
文件传输助手
文件传输助手,能够帮助你快速在手机与电脑间传输文件。在微信网页版或手机端通过文件传输助手就可以发送文件,图像,视频等。
文件拷贝可以通过收藏夹把收藏的文件在电脑上拷贝出来编辑存放。
1、首先百度输入“微信网页版”,找到有“官网”标识的对应链接打开。
2、进入登陆界面。
3、在手机上扫一扫并点击确认登录后,我们就可以开始在网页端正常使用微信了。
微信网页版主要特点:与手机同步发送和收取信息,通过电脑打字更方便,而且可以直接将电脑中图片发给微信上的朋友。
补充说明:微信网页版会与手机微信客户端进行消息同步,所以最好在手机已经连接上WIFI无线网络的环境下登录微信网页版,节省流量。
扩展资料
微信网页版与PC版的区别:
微信网页版不需要安装软件,可直接登录,微信PC版需要安装电脑版软件进行登录操作。
微信网页版不能显示手机微信客户端中的聊天记录显示的联系人,而微信PC版可以做到显示与联系人的聊天记录,可以记录聊天信息并且进行备份,微信网页版无法做到此点。
登录微信网页版后,微信PC版会自动下线,相反亦然。除此之外,微信电脑版的功能更多,不过为了减少电脑的缓存,建议还是使用用网页版。
1、首先打开浏览器,在地址栏输入微信的官方网址,进入官方主页。
2、然后下拉页面找到微信 【【微信】】 版,点击进入。
3、在微信 【【微信】】 版的页面中,点击下载选项。
4、然后就会弹出下载界面,点击确定下载。
5、然后就开始下载了,我们可以看到下载的进度。
6、下载完成后,点击打开。
7、然后开始进行安装。
8、安装成功。
9、然后就能使用网页版登录自己的微信了。
扩展资料
要退出微信网页版,官方给出的方法有三种:
1、直接关闭浏览器;
2、长时间没操作时,网页版自动退出;(官方没有公布大概的时间)
3、从手机上退出微信网页版,或者手机退出了微信客户端,微信网页版都会自动退出。
4、手机没电了,会自动退出。
5、其实微信网页版在线,手机不需要在线,手机不在线仍然可以使用微信网页版。
下载好微信电脑版,电脑上打开微信。
微信不仅可以在手机上登录,还可以在电脑上登录。那么怎么在电脑上登录微信呢?
1、双击电脑微信图标打开电脑微信。
2、进入手机微信扫一扫,扫描电脑微信二维码即可登录电脑微信。
也可以通过下面的方式。
微信网页版微信扫描官方页面上的二维码,才能登录微信网页版。
这种登录方式据传会是登录微信网页版的唯一方式,那就是说,每一次都要使用手机扫描一下网页上的二维码,才能登录微信网页版。手机微信客户端变成了微信网页版的登录钥匙。
如果想要登录电脑网页版微信应该如何操作呢?下面我就来教大家具体的方法吧。
01
首先我们先在电脑里面安装一个微信应用并打开。
02
打开微信应用后就用手机微信的扫一扫来扫一下二维码进行登录。
03
扫描好二维码后需要在手机微信里点击确认电脑登录。
04
登录成功后,我们的手机微信消息页面的最上方会显示【【微信】】已登录。