【JAVA面试准备】TCP/IP、异常机制

      最后更新:2022-04-08 15:02:37 手机定位技术交流文章

      TCP有三个握手,为什么有三个握手?为什么有四个握手?

      在这里插入图片描述

      三次握手四次挥手

      三次握手:

      这三个握手组织的主要目标是建立一个可靠的通信渠道,简言之,该渠道是发送和接收数据,而三个握手组织的主要目标是确保它们彼此正确发送和接收数据。

      只有三次握手可以证明发送和接收功能都可运作;没有一次:

      1. 第一次握手(客户向服务器发送SYN信息,服务器收到):客户无法确认任何信息;服务器核查正常发送并正常接收。
      第二手握(服务器对客户收到SYN信息的反应) :
      客户确认,它交付了自己,正确接收了它,正确接收了它。

      服务器已确认: 正常发送和正常接收 。

      第三,第三握手(客户向服务器发送了确认信息):
      客户确认,它交付了自己,正确接收了它,正确接收了它。
      服务器已确认: 发送您自己, 接收正确, 并正确发送到对方 。

      在这里插入图片描述

      四次挥手

      为什么要四次挥手?
      TCP的近距离(近距离)特征使其能够在发送后一端从连接的另一端接收数据。

      一旦数据传输完成,任何一方均可提供连接释放通知,并在另一方确认后进入半封闭状态,当另一方没有数据可再次发送时,即发出连接释放通知,另一方承认TCP连接已完全终止。

      一般说来,为了将一端从另一端解放出来,需要两次握手,需要四次握手才能完全解除联系。

      例如,A和B在电话上。通话即将结束后,"我没什么可说的",A说。"我知道,我知道,"B回答。因此,A-B联系被切断。B,另一方面, 可能还有别的话要说。所以B可能对巴拉巴拉有其他说法"我受够了",B在结论中说。他说"不知道"因此,B-至A联系被切断。电话到此结束
      在这里插入图片描述

      JAVA异常机制

      可丢弃是一个包含所有错误和异常的超级类,并分为两个子类:错误和异常。
      缺陷是程序无法处理的错误,如联合核查机制的困难、溢漏、记忆不足等等,这些错误被错误地称为进程能够解决的问题,如跨界标记、空中点异常等等。
      在这里插入图片描述

      异常关键字

      1次尝试,用于监听将被窃听的代码( 可能造成异常代码被丢弃) 将放置在试写语句块中 。当尝试语句块中发生错误时,异常就被抛出。2. 捕获 -- -- 异常捕获。抓取语句用于捕捉尝试语句块中出现的错误 。
      3个完全标注的区块将始终进行。它主要用于恢复在试管块中打开的实物资源(例如数据库连接、网络连接和磁盘文件都是这方面的例子)。这只是一个微弱的无无执行完成之后,我要回到尝试或钓鱼区, 然后我回到尝试或接球或扔球, 然后我回到尝试或tatch或tt如果您使用重转或丢弃等词句, 必须正确使用 。则就不会跳回执行,直接停止。托斯 — 用于消除异常的一个命令 。- 以签字方式,它被用来宣布程序中的任何潜在缺陷。

      常见的异常

      在这里插入图片描述
      在这里插入图片描述

      异常捕捉疗法往往由以下人员进行:

      try-catch
      try-catch-finally
      try-finally
      try-with-resource

      结构化编程语言

      在有条理的方案拟订中,对goto语句加以限制。

      波动性关键字

      当共享变量( 等级成员变量、 静态类成员变量) 以波动性更新时, 有两级语义可用 :

      (1) 确保当该变量用于几条线索时,即用于几条线索,即:一条线索修改变量的值时,该变量是可见的,而其他线索可立即获取该变量的值。

      (2) 命令重排顺序是不允许的。

      原子性

      在这里插入图片描述
      报表1是唯一的原子作业报表。

      锁定和同步

      爪哇的记忆结构只是确保基本阅读和归属操作是原子。为了获得更大规模行动的原子特性可以通过锁定和同步来实现。由于锁定和同步能够保证任一时刻只有一个线程执行该代码块,那么就没有原子问题了从而保证了原子性。

      可见性

      对于可见性,Java提供了波动性关键字来保证可见性。
      当挥发性修改共享变量时, 它保证被修改的值被迅速更新到主内存, 当其他线索需要读取时, 它会转到内存去读取新值 。
      一个共同的变量无法确保能见度,因为当一个共同的变量在更新后写入主内存时,该存储量可能保持同样的旧值,因此无法保证能见度。
      另外,通过锁定和同步也能够保证可见性,锁定和同步能保证同一时刻只有一个线程获取锁然后执行同步代码,在打开锁前,变数的修改将在主内存中更新。因此,可以确保能见度。

      有序性

      在爪哇的记忆模型中,汇编者和处理者可以重新安排指示,尽管这并不影响单线程序的执行,而是影响多线和完成的程序的有效性。

      在Java里面,可以通过波动性关键字来保证一定的“有序性”(具体原理在下一节讲述)。另外可以通过锁定和同步来保证有序性,很显然,锁定和同步保证每个时刻是有一个线程执行同步代码,这和让线条序列运行同步代码是一样的当然,秩序是肯定的。

      JVM内存模型

      在这里插入图片描述

      私人线路:当地方法商店、商店、程序柜台等。
      全球共享:方法区域(拥有州静态变量等),堆叠(保存对象)

      GC机制

      用来清理“堆”
      GCRroot方法用于确定哪些类别应予销毁。
      1. 最基本的思路是标记不在GCRoot上的东西,然后删除标记类别。 [问题:制造内存碎片]
      2. 改进:清理后处理[问题:高价格,需要向前推进]
      3. 复制算法需要双重内存。
      4. 实际方法如下:

      G1、PARNE、CMS是GCs。

      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/21746.html

          热门文章

          文章分类