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

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

A. 只有抛出 OOM 的线程会结束,不会影响其他线程
B. 大量异常的抛出必然会导致系统吞吐量的大小
C. Exception 和 Error 都继承自 Throwable
D. try 中如果存在 System.exit(0),则不会执行 finally 代码块里面的内容

2. 函数a定义如下:
int a(int tab){int n=tab-1;n |= n >> 1;n |= n >> 2;n |= n >> 4;n |= n >> 8;n |= n >> 16;return n;
}

调用函数a(666)返回的结果是:

A. 666
B. 512
C. 1023
D. 511

665的二进制数为:1010001111
n >> 1 — 0101000111 右移一位
n |= n >> 1 — 1010001111 | 0101000111 同0才为0,其他情况都为1,即 n |= n >> 1 等于 1111001111
n >> 2 — 0011110011 右移两位
n |= n >> 2 — 1111001111 | 0011110011 = 1111111111,此时已经全为1了,后续结果不变即最后结果为1023

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

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

A. utf8不是真正的utf-8,它占3bytes ,utf8mb4才是真正的utf-8,它占4 bytes
B. 关键字可以作为字段名,但是在hibernate 和 Mybatis 框架中会出现查询出错
C. 文件排序是通过相应的排序算法,将取得的数据在内存中进行排序。文件排序分为双路排序和单路排序,双路会执行两次磁盘 io,单路会执行一次磁盘 io。大量使用 filesort 会降低系统性能
D. smallint 2byte,int 4byte

4. 在几进制下,123*234=28560是成立的?

A. 6
B. 10
C. 12
D. 14

5. 查找表结构用以下哪一项( )

A. FIND
B. SELETE
C. ALTER
D. DESC

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

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

A.B — 调用 System.gc() 或 Runtime.gc() 只能通知 JVM 进行垃圾回收,不能强制回收。
C — JVM对于对象是否立即回收存在两次筛选,第一次在当前对象没有其他引用时(例如给对象赋值 null),第二次会判断 JVM 是否调用过 finalize 方法或者对象是否重写过 finalize 方法。如果在重写的 finalize 方法中重新给对象添加引用,就可以完成逃逸,不被立即回收。

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

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

如果线程调用了对象的 wait()方法,那么线程便会处于该对象的等待池中,等待池中的线程不会去竞争该对象的锁。 当有线程调用了对象的 notifyAll()方法(唤醒所有 wait 线程)或 notify()方法(只随机唤醒一个 wait 线程),被唤醒的的线程便会进入该对象的锁池中,锁池中的线程会去竞争该对象锁。 优先级高的线程竞争到对象锁的概率大,假若某线程没有竞争到该对象锁,它还会留在锁池中,唯有线程再次调用 wait()方法,它才会重新回到等待池中。而竞争到对象锁的线程则继续往下执行,直到执行完了 synchronized 代码块,它会释放掉该对象锁,这时锁池中的线程会继续竞争该对象锁。

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

A. ARP
B. RARP
C. ARQ
D. ICMP

A. IP地址转MAC地址是 ARP
C. ARQ — 自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。
D. ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

9. 从通信协议的角度来看,路由器是在哪个层次上实现网络互连的?

A. 物理层
B. 链路层
C. 网络层
D. 传输层

集线器:物理层
交换机:链路层
路由器:网络层

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

A. PPP
B. IP
C. UDP
D. TCP

ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。

11. 下列关于进程和线程的叙述中,正确的是______。

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

C. 进程的切换需要内核支持,线程的切换不需要
D. 一个进程中的所有线程共享该进程的地址空间、堆。
扩展:线程私有的部分

  1. 线程ID — 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标识线程。
  2. 寄存器组的值 — 由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便 将来该线程在被重新切换到时能得以恢复。
  3. 线程的堆栈 — 堆栈是保证线程独立运行所必须的。线程函数可以调用函数,而被调用函数中又是可以层层嵌套的,所以线程必须拥有自己的函数堆栈,使得函数调用可以正常执行,不受其他线程的影响。
  4. 错误返回码 — 由于同一个进程中有很多个线程在同时运行,可能某个线程进行系统调用后设置了errno 值,而在该线程还没有处理这个错误,另外一个线程就在此时被调度器投入运行,这样错误值就有可能被修改。 所以,不同的线程应该拥有自己的错误返回码变量。
  5. 线程的信号屏蔽码 — 由于每个线程所感兴趣的信号不同,所以线程的信号屏蔽码应该由线程自己管理。但所有的线程都共享同样的信号处理器。
  6. 线程的优先级 — 由于线程需要像进程那样能够被调度,那么就必须要有可供调度使用的参数,这个参数就是线程的优先级。 涉及多线程程序涉及的时候经常会出现一些令人难以思议的事情,用堆和栈分配一个变量可能在以后的执行中产生意想不到的结果,而这个结果的表现就是内存的非法被访问,导致内存的内容被更改。理解这个现象的两个基本概念是:在一个进程的线程共享堆区,而进程中的线程各自维持自己堆栈。
12. 若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是_____。

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

在进程处于临界区时并不影响处理机调度中的高级调度和中级调度。

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

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

TCP与UDP的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
6.广播和多播仅应用于UDP

14. 元素 a,b,c,d,e 依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素 d 开头的序列个数是

A. 3
B. 4
C. 5
D. 6

① decba
② dceba
③ dcbea
④ dcbae

15. 有关C++程序运行时的函数地址,下列说法正确的是

A. 每个函数的地址都是固定的,同一个程序重复运行多次,每次函数地址都一样
B. 每个函数的地址是不固定的,但在操作系统版本、硬件版本不变的情况下是固定的,同一个程序重复在相同软硬件环境下运行多次,每次函数地址都一样
C. 地址是否固定要看系统配置和编译选项,如果开启了地址随机化,那地址是每次都变的,如果没开启,那么地址每次都一样。
D. 每个函数的地址都是不定的,同一个程序重复运行多次,每次地址都不同

数据区(全局变量、常量、静态变量),代码区每次运行时在内存中地址由链接选项决定。
如果选择固定基址,则每次运行时函数地址固定。但是堆和栈会不一样。
如果开启随机基址。随机基址可以提高程序安全性,保护关键代码数据地址,提高黑客入侵难度。

16. 下列有关于关键字“堆”的描述中,错误的是

A. 堆是优先级队列的底层实现形式,有N个元素的优先级队列进行一次结构调整的时间复杂度为logN
B. 堆内存是一种动态分配的内存,其实际占用内存空间的大小随着程序的运行可以动态调整
C. 堆栈是一种线性数据结构,其特点是先进后出
D. 在C语言中,堆内存是线程隔离的,不同线程访问的是各自的堆空间,无法互相访问

线程通信依靠堆的共享

17. 关于TCP协议状态描述正确的是

A. 只有执行主动关闭端才会出现TIME_WAIT
B. 当接受到FIN报文时,会进入CLOSING状态
C. 数据传输完成后发送FIN报文后进入TIME_WAIT状态
D. client和server端最终都会经历TIME_WAIT状态

四次挥手

  1. 当主机A完成数据传输后,将控制位FIN置1(FIN_Wait1),提出停止TCP连接的请求,发送FIN给主机B
  2. 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1,发送ACK给主机A,进入 close_wait 状态
  3. 由B端再提出反方向的关闭请求,将FIN置1 (FIN_wait2),发送FIN给主机A,进入 last_ack 状态。主机A接收到进入 time_wait 状态
  4. 主机A对主机B的请求进行确认,将ACK置1,发送ACK给主机B,有2MSL的等待时间,保证连接的关闭,主机A进入close状态,主机B接收到进入close状态。双方向的关闭结束.

三次握手

18. 关于epoll和select的区别,哪个说法是错误的?

A. epoll和select都是I/O多路复用的技术,都可以实现同时监听多个I/O事件的状态。
B. epoll相比select效率更高,主要是基于其操作系统支持的I/O事件通知机制,而select是基于轮询机制。
C. epoll支持水平触发(LT)和边沿触发(ET)两种模式。
D. select能并行支持I/O比较小,且无法修改。

select默认的句柄数量为1024,但可通过修改宏定义或编译内核修改句柄数量

19. 给定一个整型数组L,数组长度为n,数组元素取值范围[1,n],(n>2000),请问最快速找出一个缺失值的时间复杂度是多少?

A. O(log(n))
B. O(n)
C. O(n*log(n))
D. O(n^2)

数组无序,需要全部遍历一遍

20. 已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7计算散列地址,并散列存储在散列表A【0…6】中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为

A. 1.5
B. 1.7
C. 2.0
D. 2.3

平均查找长度=总的查找次数/元素数
总的查找次数: 38%7=3 (第1次出现3,无冲突,放在位置3,查找次数为1)
25%7=4(第1次出现4,无冲突,放在位置4,查找次数为1)
74%7=4(第2次出现4,有冲突,放在位置5,查找次数为2)
63%7=0(第1次出现0,无冲突,放在位置0,查找次数为1)
52%7=3(第2次出现3,有冲突,发现冲突3,4,5,故只能放到6,查找次数为4)
48%7=6 (第1次出现6,有冲突,发现冲突6,0,故只能放到1,查找次数为3)
1+1+2+1+4+3=12
元素数=6
所以:平均查找长度=12/6=2

快手2020校园招聘秋招笔试--工程C试卷相关推荐

  1. 快手2020校园招聘秋招笔试--工程B试卷

    攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应.这种攻击被称为 A. DNS欺骗攻击 B. DDoS攻 ...

  2. 快手2020校园招聘秋招笔试--工程C试卷 (编程题题解全)

    1.病毒检测 滑动窗口题 例子: 2 0101010(第一位下标为1) 1)找到第一个最短的满足k条件的子串,即s[2~4],l=2,r=4 2)找出这个子串左右连续的0的个数,分别为a,b,则对于这 ...

  3. 快手2020校园招聘秋招笔试--工程A试卷 (编程题题解全)

    "好序列"的个数 反着求,先求出所有序列个数,再减去不符合的个数. 黑边把图分成一个,一个的连通分量. 所以我们只要用dfs求出每个不包含黑边的连通分量的包含点个数sz,sz^k就 ...

  4. 快手2020校园招聘秋招笔试--工程A试卷

    1.(计算机网络原理)若用斜杠记法标识子网掩码,则255.255.240.0对应于 B A. /19 B. /20 C. /21 D. /22 解析 255.255.240.0转换为二进制为11111 ...

  5. 快手2020校园招聘秋招笔试--工程B试卷 订正

    1.三种攻击 DNS欺骗攻击:冒充域名 把原来查询的IP改为其他IP ddos攻击:大量合法的服务器向某一目标不断发送请求,导致其他用户无法使用 SYN Flooding攻击:攻击者使用无效IP地址 ...

  6. 快手2020校园招聘秋招笔试--工程C试卷(21题)滑动窗口解决字串

    病毒检测 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 小明最近在做病毒自动检测,他发现,在某些library 的代码段的二进制表示中,如果包含子串并且恰好有 ...

  7. 快手2020校园招聘秋招笔试--工程A试卷 题4

    题意:中文题面自行理解 思路:处理出每块由红色边连成的连通块的点个数,ans=总方案数-所有只有红边相连的块的总方案数+只有黑边与之相连的点个数 代码: #include<bits/stdc++ ...

  8. 渣渣做后端真题-- 快手2020校园招聘秋招笔试--工程A试卷 选择题

    真的是一枚渣渣,题在牛客网找的,有错误求大神指导,求一起做题的小伙伴,没写的题是我会的,有问题可以给我留言呀- A:记忆小Tips:4** 没有402(阿玛尼红管402 ,一只鲜艳的苹果红),5** ...

  9. 快手2020校园招聘秋招笔试--算法B试卷

    四个编程题总体算比较简单,基本都在LeetCode出现过.但是我的速度太慢了,还要加油啊ヾ(◍°∇°◍)ノ゙ 牛客快手2020校园招聘秋招笔试–算法B试卷 合法数独 给定一个数独板的输入,确认当前的填 ...

最新文章

  1. 剑指offer:面试题10- II. 青蛙跳台阶问题
  2. 夫妻北漂10年后返乡,程序员丈夫花8万元将土屋改成别墅:边学边做
  3. CRF和HMM区别不仅仅前者是判别模型后者是生成模型
  4. shell--特殊位置参数变量及常用内置变量
  5. java面试的基本问题_java面试常见基础问题之一
  6. STM32F412应用开发笔记之一:初识NUCLEO-F412ZG
  7. c语言经典例题100例
  8. 一加Ace外观设计理念揭晓:主推硬朗直线条力量感/速度感十足
  9. PHPCMS v9里面,推荐位ID【posid】的值是如何确定的?是自定义的还是官方定义好的?...
  10. 苹果macmac效率工具:Alfred
  11. linux wps 数学符号,2016版WPS数学符号如何输入
  12. VB编程操作AutoCAD线型
  13. MS Office/Visio 2003 sp1 下载
  14. iOS 打开扬声器以及插入耳机的操作
  15. SpringBoot + vue 解决跨域问题
  16. 股票中,什么是净资产收益率,有什么作用?
  17. Flutter Convex Bottom 底部导航
  18. 炫云渲染农场next客户端22546更新内容一览
  19. 冒险岛linux_062服务端,支持arm64_armhf_amd_i386
  20. poi XWPFDocument文档转换成io流

热门文章

  1. echarts自定义地图行政区域
  2. Python 列表、元素、字典
  3. 走进“开源SDR实验室” 一起玩转GNU Radio:gr-qtgui
  4. 外企面试口语(转载收藏)
  5. 饥荒服务器身份验证错误,饥荒服务器身份验证失败 | 手游网游页游攻略大全
  6. C#(同步调用、异步调用、异步回调)
  7. ICCV 2021: 手绘图变动画
  8. linux 下 任务管理器,Linux/Unix下的任务管理器-top命令
  9. 听说这款数学课件制作工具双十一也搞事?
  10. 根本无心工作,只想尽快为祖国母亲庆生