同花顺0225后端笔试
进入系统开始之后才发现怪怪的,没有摄像头和录屏,刚才查了一下说是海笔,投了就有笔试然后再筛选;
题量大 10道选择+十几道问答题 没写完
有印象的简答题有:
1、IO 阻塞和非阻塞的区别和应用场景
https://cloud.tencent.com/developer/article/1684951
2、多进程程序和多线程程序的区别和应用场景
参考链接:https://blog.csdn.net/linraise/article/details/12979473
1)需要频繁创建销毁的优先用线程。
实例:web服务器。来一个建立一个线程,断了就销毁线程。要是用进程,创建和销毁的代价是很难承受的。
2)需要进行大量计算的优先使用线程。
所谓大量计算,当然就是要消耗很多cpu,切换频繁了,这种情况先线程是最合适的。
实例:图像处理、算法处理
3)强相关的处理用线程,若相关的处理用进程。
什么叫强相关、弱相关?理论上很难定义,给个简单的例子就明白了。
一般的server需要完成如下任务:消息收发和消息处理。消息收发和消息处理就是弱相关的任务,而消息处理里面可能又分为消息解码、业务处理,这两个任务相对来说相关性就要强多了。因此消息收发和消息处理可以分进程设计,消息解码和业务处理可以分线程设计。
4)可能扩展到多机分布的用进程,多核分布的用线程。
5)都满足需求的情况下,用你最熟悉、最拿手的方式。
3、常见Linux发行版本(4个以上)
Debian、Ubuntu、RedHat、CentOS
4、小数的二进制计算为什么不准确 如为什么 0.1 + 0.2 != 0.3
小数的转二进制方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分
0.1 = 0.0001100110011001100110011001100110011001100110011001101...
像这种就采取0舍1入,因此会有误差。
5、两个后端服务器,之间采用TCP通信,为什么会丢数据
我写了 粘包和无视窗口大小而发出了超过窗口大小的数据;
这个我回答的有问题,推荐阅读
https://xiaolincoding.com/network/3_tcp/tcp_drop.html#mtr%E5%91%BD%E4%BB%A4
6、对称加密和非对称加密的区别
对称加密用一个公钥;常见加密算法DES
非对称加密用一对密钥,公钥与私钥,公钥可以签名,可以发送给第三方机构认证证书;常见加密算法:RSA、DSA
剩下(可能有遗漏)的就是一些读代码题,一些链表和栈的基础知识,还有一些简单的算法题
注意:算法题没有在线判题程序,所有东西都你自己写,也没有什么debug什么的,所以我很好奇这么多笔试的判题方式,人工阅卷的话也太累了吧;
我有些题写的很详细,从InputStream开始处理输入;后面题太多了 就按核心代码模式写了;