9.17之前的安卓笔试题总结——持续更新

从周六开始,面试、笔试、宣讲会连轴转,昨天收到群面的fail通知之后,下午也不想去广工现场跟一群汉子手撕代码了,选择了爬床睡觉,过了一天的安逸日子,终于勤奋起来把之前的笔试盲点总结一下,虎牙面试的稍后再整理。希望IT行业对女生少点偏见吧

————————————————————————正文分割线———————————————————————————

1、TCP采用心跳报文保持连接    √

解析:

心跳包机制

  跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。
   在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可能也不是那么好处理。一般,如果只是用于保活还是可以的。
   心跳包一般来说都是在逻辑层发送空的echo包来实现的。下一个定时器,在一定时间间隔下发送一个空包给客户端,然后客户端反馈一个同样的空包回来,服务器如果在一定时间内收不到客户端发送过来的反馈包,那就只有认定说掉线了。
   其实,要判定掉线,只需要send或者recv一下,如果结果为零,则为掉线。但是,在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。在这个时候,就需要我们的心跳包了,用于维持长连接,保活。
   在获知了断线之后,服务器逻辑可能需要做一些事情,比如断线后的数据清理呀,重新连接呀……当然,这个自然是要由逻辑层根据需求去做了。

   总的来说,心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。

说起网络应用编程,想到最多的就是聊天类的软件。当然,在这类软件中,一般都会有一个用户掉线检测功能。今天我们就通过使用自定义的HeartBeat方式来检测用户的掉线情况。

 

2、TCP/UDP基于IP协议  √

解析:参考链接

TCP:

1、面向连接:传输前必须建立连接,完毕后要进行释放;

2、每个连接只有两个端点,每一条连接是点到点的;

3、可靠:数据无差错、不丢失、无重复、按顺序到达;

4、全双工通信:允许通信双方的应用进程在任何时候都能发送数据;

5、面向字节流

UDP:在IP的数据报服务的基础上添加功能

1、无连接:不需预先建立连接,减少了时延

2、无法保证可靠交付

3、面向报文

另外UDP的一些特点:无拥塞控制机制;支持一对一、一对多、多对一、多对多的交互通信;首部开销小

 

3、ping是通过什么协议实现的?  ICMP

解析:

ICMP是“Internet Control Message Ptotocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

在网络中经常会使用到ICMP协议。例如经常用于检查网络不通的ping命令,这个ping的过程实际上就是ICMP协议工作的过程。还有跟踪路由的trancert命令也是基于ICMP协议的。

操作系统规定的ICMP数据包最大尺寸不超过64KB。通常利用这一规定进行主机攻击。即Ping of Death攻击。它的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机

此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成ICMP风暴,使得目标主机耗费大量的CPU资源处理,疲于奔命。

ping.exe的原理:向指定的IP地址发送一定长度的数据包,按照约定,若指定IP地址存在的话,会返回同样大小的数据包,当然,若在特定时间内没有返回,就是“超时”,会被认为指定的IP地址不存在。由于ping使用的是ICMP协议,有些防火墙软件会屏蔽ICMP协议,所以有时候ping的结果只能作为参考,ping不通并不一定说明对方IP不存在。

IPSec安全策略防ping原理:通过新建一个IPSec策略过滤本机所有的ICMP数据包,这样确实可以有效地防ping,但同时也会留下后遗症。因为ping命令和ICMP协议有着密切的关系。在ICMP协议的应用中包含11种报文格式,其中ping命令就是利用ICMP协议中的“Echo Request”报文进行工作的。

一般在某些有特殊应用的局域网环境中,容易出现数据包丢失的现象,影响用户正常办公,因此建议使用防火墙。

 

4、红黑树(我的算法果真学得一般般……)

解析:参考链接

我当时的考点主要是左右旋,上面图里已经统计了规律,我再来说明一下:

具体过程讲解:对节点120进行右旋,那它的左节点100将成为它的父节点,120成为100的右节点;为了让旋转后的树是一棵相对平衡的二叉树,我们需要给失去左节点的120重新找一个左节点,那被120霸占了位置的100原来的右节点110就是120的新左节点。

 

5、Collection的子接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。Map接口并不是Collection接口的子接口,但是它仍然被看作是Col

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Intel HD Graphics Family 9.17.10.4229是英特尔的一款图形处理器驱动程序版本号。该版本的驱动程序是用来控制Intel HD Graphics系列显卡运行的软件。这些显卡通常嵌入在英特尔的处理器中,用于处理图形和视频的显示。 该驱动版本9.17.10.4229可能是在2014年发布的,所以它可能已经过时。后续版本的驱动程序往往包含更多的优化和新的功能,以提升图形处理性能和兼容性。 驱动程序的更新可以通过访问英特尔官方网站来获取。更新驱动程序可能会解决一些已知的问题和错误,并提供更好的图形性能。同时,驱动程序的更新还可以支持新的技术和功能,例如更高的分辨率、更流畅的视频播放和新的游戏效果。 安装驱动程序的过程相对简单。用户可以下载最新版本的驱动程序,并按照提示进行安装。通常需要重启计算机以使驱动程序生效。在安装过程中,可能需要解压缩文件并运行安装程序。英特尔还提供了一些工具,用于检测当前显卡驱动程序的版本和进行驱动程序的自动更新。 在使用计算机时,出现一些图形相关问题,例如画面模糊、闪烁或黑屏等,可能与旧版本的显卡驱动程序有关。这时可以尝试更新驱动程序以解决问题。 总之,Intel HD Graphics Family 9.17.10.4229是一款旧版本的显卡驱动程序,建议用户升级到最新版本以获得更好的图形性能和兼容性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值