20230927笔试题

1. 在Java中,一些数据类型为引用类型,当引用类型的值为()时,表明没有引用任何对象

A. Empty     B. null    C. Nothing    D. 0

所有引用类型的默认值都是null

2. 关于接口和基类描述正确的是

A. 基类是 as a的关系

B. 接口方法可以定义为public类

C. 接口可以支持多继承

D. 基类一定是抽象类

A. 基类:是对接口/抽象类默认方法的一般实现,使得子类不需要对接口/抽象类的方法完全重写,更方便使用 。

基类,父类,超类是指被继承的类,派生类子类是指继承于基类的类。

派生类和基类一定要满足“is-a”关系,即派生类和基类有类属关系,或者说派生类是基类的一种具体化。

is-a:表示继承关系,表示类与类之间的继承关系、接口与接口之间的继承的关系以及类对接口实现的关系。比如:苹果是一种特定的水果。

as-a:表示属于同类,用于在兼容的引用类型之间执行某些类型的转换。比如:苹果和梨都属于水果。

has-a:表示组成关系,是关联关系的一种,是整体和部分(通常为一个私有的变量)之间的关系,指一个类中包含另一个类的对象。比如:午餐中包含有苹果。

B. 接口中的方法默认访问级别是public。 在编写接口的时候通常用public关键字,但是如果我们不显式地将接口中的方法声明为public,它仍然将是public的。

C. 一个接口不能继承其他的类,但是可以继承多个别的接口。

D. 基类可以是具体类、虚类和抽象类三种。

3. TCP协议中TIME_WAIT要等待几个MSL时间

A. 1          B.  2          C. 3         D.  4 

MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间。

在TCP调用connect建立socket的连接后,主动关闭socket连接的过程中有一个状态为Time_Wait(也就是2MSL等待机制,需要停留2MSL的时间)

4.  哪个协议不是基于TCP/IP协议的?

A. HTTP1.1     B. FTP    C. SSH     D. DNS

这四个协议都是应用层。所以这道题到底选什么?有没有大佬可以解答一下?

查到的资料:

SSH是一种建立在应用层基础上的安全协议,它通过对密码进行加密传输验证,提供安全的传输环境,可以在不安全的网络中对网络服务进行安全传输。SSH协议是应用层协议,它的传输层协议是TCP。

5. 关于TCP和UDP描述错误的是

A. TCP和UDP都属于传输层协议

B. TCP有序,UDP无序

C. TCP有状态,UDP无状态

D. TCP需要握手,UDP不需要

我感觉这四个选项都对啊!这题是不是没有正确答案??

TCP 和 UDP 的区别在于:

  • 连接:TCP 面向连接的传输层协议UDP是 无连接的传输层协议
  • 服务对象:TCP点对点的两点间服务,即一条TCP连接只能有两个端点;UDP支持一对一、一对多、多对一、多对多的交互通信。
  • 可靠性:TCP 保证数据的可靠性和完整性,UDP 尽最大努力交付,不保证数据的可靠性和完整性。
  • 有序性:TCP 保证数据的有序传输,UDP 不保证数据的有序传输。
  • 是否有状态:TCP 传输是有状态的,它会去记录自己发送消息的状态比如消息是否发送了、是否被接收了等等,而 UDP 无状态的传输协议。
  • 流量控制:TCP 有流量控制和拥塞控制,UDP 没有流量控制和拥塞控制。
  • 数据格式:TCP 报文格式包括头部和数据,UDP 报文格式只包括头部和数据。
  • 首部开销:TCP首部开销大,首部20个字节,UDP首部开销小,8字节(源端口、目的端口、数据长度、校验和)。
  • 适应场景:数据完整性需让位于通信实时性,则应该选择TCP协议(如文件传输、重要状态的更新等);反之,则使用UDP协议(如视频传输、实时通信等)。
  • TCP面向连接, 传输数据时,需先进行三次握手,建立连接。UDP无连接,传输数据时无需建立连接,即无需三次握手直接发送数据
 6. 下列哪一种叙述是正确的?

A. abstract修饰符可以修饰字段、方法和类

B. 抽象方法的body部分必须使用一对大括号{}包住

C. 声明抽象方法,大括号可有可无

D. 声明抽象方法不可写出大括号

abstract只能修饰类和方法,不能修饰属性和其他的  

用abstract关键字来修饰一个方法时,这个方法就叫抽象方法。格式如下:

访问修饰符 abstract 返回类型 方法名(参数列表);//没有方法体

没有方法体,所以没有大括号。

7.  对HTTP的描述错误的是

A. HTTP请求是无状态的

B. HTTP请求必须包含请求头和请求体

C. HTTP返回中必须包含状态码

D. HTTP请求可以认证用户身份

HTTP的连接很简单,是无状态的。(无状态是指通信双方都不长久的维持对方的任何信息)

请求报文(请求行/请求头/请求体

请求行的组成: 请求方式、本次请求路径(资源)、协议/版本

响应报文(状态行/消息报头/响应正文)

响应行的组成:本次响应采用的协议状态码: 协议设计之初, 用一些数字描述了本次响应;状态描述: 用文字对本次响应进行简短描述

D我不清楚,排除法只剩D

8.  一个字节几位?

A. 2        B. 4        C. 6        D.8

一个字节由8个二进制位组成。 

9. 以下关于异常正确的是

A. 一旦出现异常,程序运行就终止了

B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常

C. 在catch子句中匹配异常是一种精确匹配

D. 可能抛出系统异常的方法是不需要申明异常的

A. 发生一个异常不一定会导致程序终止运行。若程序中没有异常处理,发生一个异常一定会导致程序终止运行。若程序中有异常处理,发生一个异常并被捕获,则异常处理后,程序会继续运行。 

B. Java 语言中所有错误或异常都是通过Throwable进行描述,而异常又分为两种,一种是可处理的也就是Exception,一种是不可处理的也就是Error     

C. catch匹配时,不仅运行精确匹配,也支持父类匹配,因此,如果同一个try块下的多个catch异常类型有父子关系,应该将子类异常放在前面,父类异常放在后面,这样保证每个catch块都有存在的意义。

D. 系统异常是Error了,这类异常不能捕获,因为是Java调用了系统底部功能出现了问题,系统就是返给Jvm了Error异常,这时就必须修改代码了,例如内存溢出

10. 下面哪个不能用来实现多线程的互斥?

A. lock关键字        B. Monitor        C. Mutex类        D. Process类

lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。

Monitor 的重要特点是:同一个时刻,只有一个 进程/线程 能进入 monitor 中定义的临界区,这使得 monitor 能够达到互斥的效果

“mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。

Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。  Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。

 11. 静态变量通常存储在进程哪个区?

A. 栈区        B. 堆区        C. 全局区        D. 代码区

链接:静态变量通常存储在进程哪个区?_快手笔试题_牛客网
来源:牛客网
c++程序内存布局: 1)全局区(静态区)(static)存放全局变量、静态数据,const常量。程序结束后有系统释放 2)栈区(stack) 函数运行时分配,函数结束时释放。由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。 3)堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS(操作系统)回收。分配方式类似于链表。 4)文字常量区 常量字符串就是放在这里的。 程序结束后由系统释放。 5)程序代码区存放函数体(类成员函数和全局函数)的二进制代码。

12. 关于进程和线程,下列哪些说法是正确的?(多选) 

A. 线程是操作系统分配处理器时间的基本单位

B. 进程是操作系统分配处理器时间的基本单位

C. 一个线程可以属于多个进程

D. 一个进程可以有多个线程

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

13. 从逻辑上可以把数据结构分为哪两大类?(多选)

A. 顺序结构        B. 线性结构        C. 非线性结构        D. 链式结构

按照存储方式分为链式存储顺序存储 。顺序表、栈、队列都属于顺序存储。

按照逻辑结构分为线性非线性。集合、树形结构、图形结构都属于非线性。

14. 关于线程的描述正确的是 (多选)

A. 线程是CPU调度的基本单位

B. 线程起到资源的隔离作用

C. 每个线程执行都有一个线程栈

D. 一个线程同一时间可以在多个CPU上运行

D选项我不确定,有大佬能讲一下这个是对还是错的?

线程操作系统能够进行运算调度的最小单位

线程隔离:使用该方式,HystrixCommand将会在单独的线程上执行,并发请求受线程池中线程数量的限制。

堆栈是保证线程独立运行所必须的。线程函数可以调用函数,而被调用函数中又是可以层层嵌套的,所以线程必须拥有自己的函数堆栈,使得函数调用可以正常执行,不受其他线程的影响。(堆在windows共享,在塞班系统独立)

15. SqlServer默认的隔离级别是Read Commited

A. 对        B. 错 

16. 32位系统可以使用5G内存

A. 对        B. 错 

32位操作系统最大支持4GB内存

17. 类是属于值类型分配在内存的栈上,而Struct属于引用类型,分配在内存堆上

A. 对        B. 错 

Class可以被实例化,属于引用类型,是分配在内存的堆上的;
Struct属于值类型,是分配在内存的栈上的

18. RAID 0 需要至少一块硬盘,而RAID 1需要至少两块

A. 对        B. 错 

Raid0 :最少需要两块盘, 没用冗余数据,不做备份,任何一块磁盘损坏都无法运行。n块磁盘(同类型)的阵列理论上读写速度是单块磁盘的n倍(实际达不到),风险性也是单一n倍(实际更高),是磁盘阵列中存储性能最好的。适用于安全性不高,要求比较高性能的图形工作站或者个人站。

Raid1:至少需要两块盘,磁盘数量是2的n倍,每一块磁盘要有对应的备份盘,利用率是50%,只要有一对磁盘没有损坏就可以正常使用。n组磁盘(2n块同类型磁盘)的阵列理论上读取速度是单块磁盘的n倍(实际达不到),风险性是单一磁盘的n分之一(实际更低)。换盘后需要长时间的镜像同步,不影响外界访问,但整个系统性能下降。磁盘控制器负载比较大。适用于安全性较高,且能较快恢复数据的场合。

Raid0+1: 至少需要四块盘,磁盘数量也是2的n倍。既有数据镜像备份,也能保证较高的读写速度。成本比较大。

Raid3:至少需要3块盘(2块盘没有校验的意义)。将数据存放在n+1块盘上,有效空间是n块盘的总和,最后一块存储校验信息。数据被分割存储在n块盘上,任一数据盘出现问题,可由其他数据盘通过校正监测恢复数据(可以带伤工作),换数据盘需要重新恢复完整的校验容错信息。对阵列写入时会重写校验盘的内容,对校验盘的负载较大,读写速度相较于Raid0较慢,适用于读取多而写入少的应用环境,比如数据库和web服务器。使用容错算法和分块的大小决定了Raid3在通常情况下用于大文件且安全性要求较高的应用,比如视频编辑、硬盘播出机、大型数据库等。

Raid5:至少需要3块盘,读取速度接近Raid0,但是安全性更高。安全性上接近Raid1,但是磁盘的利用率更高。可以认为是Raid0和Raid1的一个折中方案。只允许有一块盘出错,可以通过另外多块盘来计算出故障盘的数据,故障之后必须尽快更换。比Raid0+1的磁盘利用率高,是目前比较常用的一种方案。
————————————————
版权声明:本文为CSDN博主「柠^木」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44082342/article/details/131231693

19. Linux中的一个文件只能归属于一个用户

A. 对        B. 错 

通常情况下,一个文件只能归属于一个用户和组

20. 不妨设树的根节点深度为0,那么深度为5的满4叉树(最后一层没有子节点,其他层上每个节点都有4个子节点)一共有几个节点? 

A. 9987        B. 768        C. 1365         D. 256 

公式:(k^(h+1)-1) /(k-1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值