“ 解析 BAT 经典面试题”
Hello,大家好。我是公众号 “八点半技术站” 的小编 - Bruce.D。
今天是周四(2020-05-14),分享一句谚语 “读书有三到,心到口到眼到” 。分享给大家的是 「工具 模块」- 协议状态码。
很多人对 BAT 以及其他大厂,也是朝思暮想。也因为一些原因,暂时还未能加入。大厂中有很多经典面试题,直到现在也会用,不要问小编为什么知道(保密)。
因此欢迎热爱 IT编程的各位精英,欢迎进入wechat技术群(底部有二维码)一起交流成长。
花几分钟时间看看经典BAT面试题,浏览浏览,或许对你有用!!!
1
1. 给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 0 和1 概率一样。
思路:
1、执行两次给的函数,第一次返回1,第二次返回0的概率为(1-p)p
2、执行两次给的函数,第一次返回0,第二次返回1的概率为p(1-p)
3、循环执行两次函数,如果一次返回0,一次返回1则返回0或1
代码:
2
2. 10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。
思路:
1.首先将给定的url调用hash方法计算出对应的hash的value,在10亿的url中相同url必然有着相同的value。
2.将文件的hash table 放到第value%n台机器上。
3.value/n是机器上hash table的值。
将文件分布在多个机器上,这样要处理网路延时。假设有n台机器。
>>首先hash文件得到hash value v
>>将文件的hash table 放到第v%n 台机器上。
>>v/n是机器上hash table的值。
分析:
将文件的url进行hash,得到值value,相同的url的文件具有相同的value,所以会被分配到同一台机器v%n上。在同一台机器上的重复的url文件具有相同的value/n值,如果出现了冲突,不同的url在同一台机器上也可能有相同的value/n值。在每个机器上将value/n值作为key,url值作为value构成hash表进行去重。最后将内存中去重后的hash表中的value值即url写入磁盘。合并磁盘中的各部分url文件,完成去重。
56byte;
4G =4*1024=4096kb=4096*1024 byte;
3
3. DNS 解析过程(域名)
主机解析域名的顺序
1. 找缓存
2. 找本机的hosts文件
3. 找 DNS 服务器
注:配置IP 和 主机时,要记得修改 etc/hosts 文件,因为有些应用程序在主机内的进程之间通信,会用本机的主机名,如果主机不能解析到正常IP地址,那么通信失败。
Q:浏览器如何通过域名去查询URL对应的 IP 呢?
A:
1. 浏览器缓存:浏览器会按照一定的频率缓存DNS记录。
2. 操作系统缓存:如果浏览器缓存中找不到需要的 DNS 记录,那就去操作系统中找。
3. 路由缓存:路由也有DNS 缓存。
4. ISP 的 DNS 服务器:ISP 是互联网服务提供商的简称,ISP 有专门的DNS 服务器应对DNS 查询请求。
5. 根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。
Q:浏览器如何通过域名去查询URL对应的 IP 呢?
A:
大的高并发网站可能不止一个IP 地址,根据不同的网络他们会有很多的IP 来做集群。
恭喜你,又读完了一篇文章。
在这里,希望你看完的 每篇文章 都能对自己有所提升(哪怕是帮助你再次巩固记忆)。
完
微信 : xzzs730(长按左侧二维码添加)
技术群:上方微信+备注
(技术交流)
IT面试群:上方微信+备注
(技术面试)