其他-考研复试准备

💡 TCP三次握手和四次挥手

第一次握手([SYN], Seq = x)
客户端发送一个SYN标记的包,Seq初始序列号x,发送完成后客户端进入SYN_SEND状态。第二次握手([SYN,ACK], Seq = y, ACK = x + 1)
服务器返回确认包(ACK)应答,同时还要发送一个SYN包回去。ACK = x + 1,表示确认收到(客户端发来的Seq值 + 1),Seq = y, 表示让客户端确认是否能收到。发送完成后服务端进入SYN_RCVD状态。第三次握手([ACK], ACK = y + 1)
客户端再次发送确认包(ACK),ACK = y + 1, 表示确认收到服务器的包(服务端发来的Seq值 + 1)。客户端发送完毕后,进入ESTABLISHED状态,服务端接收到这个包,也进入ESTABLISHED状态, TCP握手结束

第一次挥手([FIN], Seq = x)
客户端发送一个FIN标记的包,告诉服务器需要关闭连接,表示自己不用发送数据了,但是还可以接收数据。发送完成后,客户端进入FIN_WAIT_1状态。第二次挥手 ([ACK], ACK = x + 1)
服务端发送一个ACK的确认包,告诉客户端接收到关闭的请求,但是还没有准备好。发送完成后,服务端进入CLOSE_WAIT状态,客户端收到这个包后,进入FIN_WAIT_2,等待服务器关闭连接。第三次挥手 ([FIN], Seq = y)
服务端准备好关闭连接时,发送FIN标记的包,告诉客户端准备关闭了。发送完成后,服务端进入LAST_ACK状态,等待客户端确认。第四次挥手 ([ACK], ACK = y + 1)
客户端接收到服务端的关闭请求,再发送ACK标记的确认包,进入TIME_WAIT状态,等待服务端可能请求重传的ACK包。
服务端接收到ACK包后,关闭连接,进入CLOSED状态。
客户端在等待固定时间(两个最大段生命周期)后,没有接收到服务的ACK包,认为服务器已关闭连接,自己也关闭连接,进入CLOSED状态。
💡 一、static的特点

1、static是一个修饰符,用于修饰成员。
2、static修饰的成员被所有的对象所共享。
3、static优先于对象存在,因为static的成员随着类的加载就已经存在了。
4、static修饰的成员多了一种调用的方式,就是可以直接被类名所调用。类名.静态成员
5、static修饰的数据是共享数据,对象中存储的是特有数据。
6、静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态;

7、静态方法中不可以定义this,super关键字;(因为this代表是对象,而静态存在时,有可能没有对象,且静态优先于对象存在。所以静态方法运行时,this是没有任何对象代表的。 简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据)

💡 二、讲一下java python c c++的区别

C语言作为经典的面向过程的静态语言,可以说老一代程序猿几乎都接触过C语言,一般来说,C语言编写的代码需要经过编译、链接最后形成可执行文件,这些行为有编译器完成,开发者只需要写代码即可。
C++作为一种面向对象语言,全面兼容了C语言,但引入了类、多态、RTTI、RAII等机制,相对于来说,从源码到可执行文件的过程和C语言几乎一样。
Java语言作为面向对象高级语言,也有类、多态等概念,生态非常强大,一般来说,Java代码需要经过javac编译成字节码文件,也就是.class文件,这个文件可以在不同的平台上直接运行,需要安装对应平台的jvm。
Python作为一种解释性的胶水语言,没有针对机器代码的编译,每一条语句的执行都是直接对源代码或者中间代码进行解释运行。而少了这个编译的过程,使得解释型语言运行相对较慢。

💡 三、c++派生举例
💡 四、c++的多态
💡 五、java的三个特征,继承多态是什么意思
💡 六、java的引用和c#有什么区别

💡 七、.net的开发和java开发的区别,.net继承和java继承的区别

💡 八、成员变量和静态变量的区别

一.俩个变量的生命周期不一样

成员变量随着对象的创建而存在,随着对象的被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
二.调用方式不同

成员变量只能被对象调用。静态变量可以被对象调用,还可以被类名调用。
三.别名不同 成员变量也称为实例变量。静态变量称为类变量
四.数据存储位置不同

成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区当中,所以叫做对象的共享享数据。

💡 九、覆盖与交换的区别
覆盖:由一个固定区和若干个覆盖区组成。固定区存放最活跃的程序段,固定区的程序段不会调入调出。不可能同时被访问程序段共享一个覆盖区,覆盖区的程序段在运行过程中会根据需要调入调出。必须由程序员生命覆盖结构,操作系统自动完成覆盖。缺点是对用户不透明,增加了用户编程负担。

交换是内存紧张时,换出某些进程以腾出内存空间,再换入某些进程。磁盘分为文件区与兑换区,换出的进程放在对换区。

覆盖是在同一程序或进程中的,交换在不同进程或作业中的。
💡 十、缓存的作用

缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。

💡 十一、云计算
云计算利用网格分布式计算处理的能力,将IT资源构筑成一个资源池,再加上成熟的服务器虚拟化、存储虚拟化技术,以便用户可以实时地监控和调配资源。

云计算更多的是指,通过千万台互联的电脑和服务器进行大量数据运算,为搜索引擎、金融行业建模、医药模拟等应用提供资源和超级计算能力。例如某用户想要建设一个网站,只需要租用运营商提供的虚拟服务器就可以了,网站压力过大时,可以瞬间请求更多的资源,压力变小时,可以将多余的资源释放。云计算方便了用户对计算资源的获取和管理,从而降低成本。

三种服务模式:
IAAS(基础即服务):用户租用数据基础硬件设施,如CPU,内存,存储,网络和其它基本计算资源,能够运行基础软件和操作系统,用户没有权限去控制云计算基础设施如硬盘,内存等,有权限管理应用程序和网络组件,节约硬件和维护的成本。服务有虚拟机,虚拟网络和存储。
PAAS(平台即服务):供应商提供库,服务,开发工具,用户创建应用程序,并部署在相关基础设施上。用户无需管理基础设施,只能操作部署在基础设施上的操作程序,配置环境参数。服务有数据库服务,web应用和容器服务。可以简化开发人员,提供软件开发套件SDK,有丰富的开发环境,面向应用市场。开发者只需要关注自己的业务逻辑,不需要关注底层。
SAAS(软件即服务):该层可提供运行在云计算基础设施上的应用程序,用户可在各种设备上通过客户端(如浏览器)进行访问,提供商为企业搭建网络基础设施,软件,硬件,并做好前期的实施和后期的维护。用户无需购买软硬件即可使用一些网络管理软件,可通过轻量级接口通过客户端访问应用程序。开发管理和部署都交给第三方,用户不用关心技术问题,不需要进行维护。服务有网盘,git等。
关键技术是虚拟化,分为虚拟机和Docker容器两种。

💡 十二、接口

接口是为不同系统和功能之间实现分离或连接的窗口。

接口就是规定要程序做什么,但不在其中实现。

首先接口分为四部分:方法、uri、请求参数、返回参数

1、方法:新增(post) 修改(put) 删除(delete) 获取(get)

2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。

3、请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填字段是类的属性;说明是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填。

4、返回参数结构有几种情况:1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数;2、如果要返回某些参数,则有两个结构体:1是code/mesage/data,2是data里写返回的参数,data是object类型;3、如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数

💡 十三、冯诺依曼体系结构

冯·诺依曼提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:

1、计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5 大部件组成。

2、指令和数据以同等地位存储在存储器中,并可按地址寻访。

3、指令和数据均用二进制代码表示。

4、指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。

5、指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。

6、早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。现代计算机以存储器为中心。

7、“存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

💡 十四、设备分配

系统设备表(SDT):系统设置一张系统设备表,记录了系统中全部设备的情况,每个设备对应一个表目。
设备控制表(DCT):系统为每个设备配置一张DCT,用于记录本设备情况。
控制器控制表(COCT):每个设备控制器都会对应一张COCT。操作系统会根据COCT的信息对控制器进行操作管理,每个控制器可以控制多个设备。
通道控制表(CHCT):每个通道都会对应一张CHCT。操作系统会根据CHCT的信息对通道进行操作管理,每个通道可以控制多个控制器。

💡 十五、指令寻址方式

顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。

跳跃寻址方式:当下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

💡 十六、指令操作数的寻址方式
立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。

直接寻址方式:在指令的地址字段中直接指出操作数在内存中的地址。

间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址。

寄存器寻址方式:指令中的地址码是寄存器的编号。

基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是扩大寻址能力。

变址寻址方式:将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值