模拟笔试记录 - 快手2020校园招聘秋招笔试 - 工程C试卷

1、关于java的异常处理机制,以下说法正确的是:

当某个线程抛出OutOfMemoryError时,其他线程有可能不受影响
当大量抛出RuntimeException时,不会影响系统的吞吐量
java.lang.Exception是java.lang.Error的父类
finally块代码一定会被执行

finally块代码并不一定会执行,不是很懂java的try、catch、finally。

2、错误原因:512+256+128+...+1=1023,不要算错

3、关于mysql,下面说法不正确的是:

mysql中的utf8类型最大只支持3个bytes
desc关键字可以作为table的字段名
filesort是通过读取磁盘文件进行排序,会极大降低查询性能
smallint占用2个bytes的存储空间

utf8类型最大只支持3个bytes,utf8mb4类型最大只支持4个bytes。
filesort并非是对磁盘文件进行排序。好像是先对每个缓冲块进行快速排序,然后对各个块进行归并排序。

5、查找表结构用以下哪一项?

DESC

mysql中,查询表结构用DESC,可以显示各列名以及各列的限制(是否主码,是否非空)。

6、如何强制垃圾回收器立即回收一个对象?

调用System.gc()方法
调用Runtime.gc()方法
将对象赋值null
无法强制垃圾回收器立即执行

System.gc()只是提醒垃圾回收器执行,不是强制其执行。

7、关于sleep()和wait(),以下描述错误的一项是?

sleep是Thread类的方法,wait是Object类的方法;
sleep不释放对象锁,wait放弃对象锁;
sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。

notifyAll方法也可以。

参考资料:sleep()和wait()的区别及wait方法的一点注意事项 - shiki0921 - 博客园

sleep是Thread类的方法,导致此线程暂停执行指定时间,给其他线程执行机会,但是依然保持着监控状态,过了指定时间会自动恢复,调用sleep方法不会释放锁对象。

当调用sleep方法后,当前线程进入阻塞状态。目的是让出CPU给其他线程运行的机会。但是由于sleep方法不会释放锁对象,所以在一个同步代码块中调用这个方法后,线程虽然休眠了,但其他线程无法访问它的锁对象。这是因为sleep方法拥有CPU的执行权,它可以自动醒来无需唤醒。而当sleep结束指定休眠时间后,这个线程不一定立即执行,因为此时其他线程可能正在运行。

wait方法是Object类里的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池中,同时释放了锁对象,等待期间可以调用里面的同步方法,其他线程可以访问,等待时不拥有CPU的执行权,否则其他线程无法获取执行权。当一个线程执行了wait方法后,必须调用notify或者notifyAll方法才能唤醒,而且是随机唤醒,若是被其他线程抢到了CPU执行权,该线程会继续进入等待状态。由于锁对象可以是任意对象,所以wait方法必须定义在Object类中,因为Obeject类是所有类的基类。

8、下列协议中,将MAC地址转为IP地址的协议是:

RARP

ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
RARP(Reverse Address Resolution Protocol)是反向地址解析协议。

10、在TCP/IP体系结构中,直接为ICMP提供服务的协议是:

IP

不过啥是ICMP呀。

11、下列关于进程和线程的叙述中,正确的是:

不管系统是否支持线程,进程都是资源分配的基本单位
线程是资源分配的基本单位,进程是调度的基本单位
系统级线程和用户级线程的切换都需要内核的支持
同一进程中的各个线程拥有各自不同的地址空间

B选项:明显线程是用来调度的,进程才是资源分配的。D选项:同一进程的线程贡献这个进程的资源。

12、若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是:

在进程结束时能进行处理机调度
创建新进程后能进行处理机调度
在进程处于临界区时不能进行处理机调度
在系统调用完成并返回用户态时能进行处理机调度

好像是这么理解:B选项:假如一开始没有进程,那么创建新进程完成后就会进行处理机调度。C选项:有时,临界区是类似进程访问打印机之类的外设,在等待外设的过程中造成的。这个时候是可以进行处理机调度的。其他情况不清楚是否可以。

13、关于TCP协议的描述,以下错误的是?

面向连接
可提供多播服务
可靠交付
报文头部长,传输开销大

TCP是连接的、可靠的,UDP是无连接的,不可靠的。(TCP是一个虚拟连接,握手的过程就是为了建立虚拟连接,发送还需要对方进行确认,拥有拥塞控制。UDP是无连接的,只顾自己发送,一直尽力去做好,在一些需要实时性的传输中,UDP可以没这么卡)
TCP仅支持单播,不能提供多播与广播,每次是只面向连接的两台设备的。
TCP加了很多东西,UDP只是简单加了报文头表示这个是UDP协议。

UDP TCP
是否连接 无连接 面向连接
是否可靠 不可靠传输,不使用流量控制和拥塞控制 可靠传输,使用流量控制和拥塞控制
连接对象个数 支持一对一,一对多,多对一和多对多交互通信 只能是一对一通信
传输方式 面向报文 面向字节流
首部开销 首部开销小,仅8字节 首部最小20字节,最大60字节
适用场景 适用于实时应用(IP电话、视频会议、直播等) 适用于要求可靠传输的应用(文件传输)

参考资料:
TCP的可靠传输机制_网络_sinat_28557957的博客-CSDN博客
TCP/IP详解之:广播和多播 - 墨城烟雨 - 博客园
怎么理解TCP的面向连接和UDP的无连接(不面向连接)?_网络_infi-CSDN博客
主要看这个:一文搞懂TCP与UDP的区别 - Fundebug - 博客园

猜你喜欢

转载自www.cnblogs.com/KisekiPurin2019/p/12522543.html