详解TCP/IP协议第一篇:网络基础知识

这篇具有很好参考价值的文章主要介绍了详解TCP/IP协议第一篇:网络基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😉😉 学习交流群:

✅✅1:这是孙哥suns给大家的福利!

✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料

🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取!

🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

💞💞5:以上内容,进群免费领取呦~ 💞💞💞💞

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

文章目录

一:方法的调用

1:概述

2:静态链接

3:动态链接

二:方法的绑定

1:绑定概念

2:早期绑定

3:晚期绑定

三:晚期绑定示例

1:编写代码

2:jclasslib查看内容

四:早期绑定示例 

1:编写代码

2:jclasslib查看内容

五:总结说明


一:方法的调用

        我们每天都在写方法的调用,但是我们能搞明白其中的原理和JVM当中的操作步骤么?这就是本文的意义。

1:概述

        官方说法:

        在JVM中,将符号引用转换为调用方法的直接引用这个操作是跟JVM当中方法的绑定机制息息相关的。

        说人话:

        上边这段话是什么意思?我这里给大家解释一下,我们javap整理完毕字节码文件之后,我们会可以在任意一个方法中查看code下的字节码指令,很多字节码指令的后边都会跟#数字这么一个概念,这个就是符号引用,这个引用指向常量池。

        所谓将符号引用转换为方法的直接引用,就是将这个字节码指令后边的符号引用,转变为真实的方法。

        下列中的#3就是符号引用。

  public void methodB();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
         0: getstatic     #3                  // Field java/lang/System.out:Ljava/io/PrintStream;
         3: ldc           #6                  // String methodB().....
         5: invokevirtual #5                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
         8: aload_0
         9: invokevirtual #7                  // Method methodA:()V
        12: aload_0
        13: dup
        14: getfield      #2                  // Field num:I
        17: iconst_1
        18: iadd
        19: putfield      #2                  // Field num:I
        22: return

        从上述找一个例子的话,就是将偏移地址为9的字节码指令后边的#7这个符号引用用真实的方法字面量代替

2:静态链接

        官方说法:

        当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接。

        说人话:

        静态链接:这种方式在编译阶段就已经把符号引用直接转换为了直接引用。

3:动态链接

        官方说法:

        如果被调用的方法在编译期无法被确定下来,也就是说,只能够在程序运行期将调用方法的符号引用转换为直接引用,由于这种引用转换过程具备动态性,因此也就被称之为动态链接。

        说人话:

        动态链接:这种方式在运行阶段才能把符号引用直接转换为直接引用。

二:方法的绑定

1:绑定概念

        绑定是一个字段、方法或者类在符号引用被替换为直接引用的过程,这仅仅发生一次。这个不论是编译器确定还是运行期确定都只会发生一次,不会修改。

        对应的方法的绑定机制为:早期绑定 (Early Bindng)和晚期绑定(Late Binding)。

2:早期绑定

        官方说法:

        早期绑定就是指被调用的目标方法如果在编译期可知,且运行期保持不变时即可将这个方法与所属的类型进行绑定,这样一来,由于明确了被调用的目标方法究竟是哪一个,因此也就可以使用静态链接的方式将符号引用转换为直接引用。

        说人话:

        早期绑定是和我们的静态绑定相对应的。

3:晚期绑定

        官方说法:

        如果被调用的方法在编译期无法被确定下来,只能够在程序运行期根据实际的类型绑定相关的方法,这种绑定方式也就被称之为晚期绑定

        说人话:

        晚期绑定是和我们的动态绑定相对应的。

三:晚期绑定示例

1:编写代码

class Animal {
    public void eat(){
        System.out.println("动物进食");
    }
}

interface Huntable{
    void hunt();
}

class Dog extends Animal implements Huntable{
    @Override
    public void eat(){
        System.out.println("狗吃骨头");
    }

    @Override
    public void hunt() {
        System.out.println("捕食耗子,多管闲事");
    }
}

class Cat extends Animal implements Huntable{
    @Override
    public void eat(){
        System.out.println("猫吃鱼");
    }

    @Override
    public void hunt() {
        System.out.println("捕食耗子,天经地义");
    }
}

public class AnimalTest{
    public void showAnimal(Animal animal){
        animal.eat();//晚期绑定
    }

    public void showHunt(Huntable h){
        h.hunt();//晚期绑定
    }

}

2:jclasslib查看内容

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

四:早期绑定示例 

1:编写代码

class Animal {
    public void eat(){
        System.out.println("动物进食");
    }
}

interface Huntable{
    void hunt();
}

class Dog extends Animal implements Huntable{
    @Override
    public void eat(){
        super.eat();//早期绑定
        System.out.println("狗吃骨头");
    }

    @Override
    public void hunt() {
        System.out.println("捕食耗子,多管闲事");
    }
}

class Cat extends Animal implements Huntable{
    public Cat(){
        super();//早期绑定
    }
    public Cat(String name){
        this();//早期绑定
    }
    
    @Override
    public void eat(){
        System.out.println("猫吃鱼");
    }

    @Override
    public void hunt() {
        System.out.println("捕食耗子,天经地义");
    }
}

public class AnimalTest{
    public void showAnimal(Animal animal){
        animal.eat();//晚期绑定
    }

    public void showHunt(Huntable h){
        h.hunt();//晚期绑定
    }

}

2:jclasslib查看内容

        光标放到cat这个类上查看他的jclasslib

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip         invokeSpecial是早期绑定字节码指令,invokevirtual是晚期绑定的字节码指令。

五:总结说明

        随着高级语言的横空出世,类似于Java一样的基于面向对象的编程语言如今越来越多,尽管这类编程语言在语法风格上存在一定的差别,但是它们彼此之间始终保持着一个共性,那就是都支持封装、继承和多态等面向对象特性

        既然这一类的编程语言具备多态特性,那么自然也就具备早期绑定和晚期绑定两种绑定方式。

        Java中任何一个普通的方法其实都具备虚函数的特征,也就是运行期才能确定下来,它们相当于c++语言中的虚函数 (c++中则需要使用关键字virtual来显式定义)。

        如果在Java程序中不希望某个方法拥有虚函数的特征时,则可以使用关键字final来标记这个方法。也就是一个方法不想被晚期绑定,直接把他给final修饰即可。

文章目录

一:前言

1:手握金刚钻的TCP/IP

2:计算机中的协议

3:分组交换协议

4:协议的标准化


一:前言

1:手握金刚钻的TCP/IP

TCP/IP是通信协议的总称。在接下来我们研究TCP/IP的核心机制之前,我们有必要先理清楚协议的概念。

在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有 IP、TCP、HTTP 等。而LAN (局域网)中常用的协议有IPX/SPX等。


“计算机网络体系结构”将这些网络协议进行了系统的归纳。TCP/IP 就是IP、TCP、HTTP 等协议的集合。现在,很多设备都支持 TCP/IP。除此之外,还有很多其他类型的网络体系结构。例如,Novell 公司的IPX/SPX、苹果公司的AppleTalk (仅限苹果公司计算机使用)、IBM公司开发的用于构建大规模网络的SNAY以及前 DEC公司开发的 DECnet 等。

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

2:计算机中的协议

在计算机通信中,事先达成一个详细的约定,并遵循这一约定进行处理尤为重要。这种约定其实就是“协议”。

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

3:分组交换协议

分组交换是指将大数据分割为一个个叫做包 (Packet) 的较小单位进传输的方法。这里所说的包,如同我们平常在邮局里见到的邮包。分组交换就是将大数据分装为一个个这样的邮包交给对方。

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

计算机通信也会在每一个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地址以及分组序号写人的部分称为“报文首部”。


一个较大的数据被分为多个分组时,为了标明是原始数据中的哪一部分,就有必要将分组的序号写入包中。接收端会根据这个序号,再将每个分组按照序号重新装配为原始数据。


通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等。为了双方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义和解释。

4:协议的标准化

详解TCP/IP协议第一篇:网络基础知识,TCP/IP专栏,网络,计算机网络,tcp/ip

随着计算机重要性的不断提高,很多公司逐渐意识到兼容性的重要意义。人们开始着手研究使不同厂商生产的异构机型也能够互相通信的技术。这促进了网络的开放性和多供性。

为了解决上述问题,ISO制定了一个国际标准OSI,对通信系统进行了标准化。现在,OSI所定义的协议虽然并没有得到普及,但是在 OSI 协议设计之初作为其指导方针的 OSI参考模型却常被用于网络协议的制定当中。本书将要说明的TCP/IP 并非 ISO所制定的某种国际标准。而是由IETF所建议的、致力于推进其标准化作业的一种协议。在当时,大学等研究机构和计算机行业作为中心力量,推动了 TCP/IP 的标准化进。TCP/IP 作为互联网之上的一种标准,也作为业界标准,俨然已成为全世界所广泛应用的通信协议。

参考书籍:图解TCP/IP协议文章来源地址https://www.toymoban.com/news/detail-704167.html

到了这里,关于详解TCP/IP协议第一篇:网络基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一篇 FPGA基础知识

    FPGA的全称为Field-ProgrammableGateArray,即现场可编程门阵列。 在开始学习FPGA之前,同学们首先应该清楚地了解FPGA的概念,明白FPGA到底是什么东西,可以用来做什么。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制

    2024年02月07日
    浏览(57)
  • 【软件测试】基础知识第一篇

    软件测试就是验证软件产品特性是否满足用户的需求 。 那需求又是什么呢?在多数软件公司,会有两种需求,一种是用户需求,一种是软件需求: 用户需求 :可以简单理解为甲方提出的需求,该需求一般比较简略 软件需求 :或者叫功能需求,该需求会详细描述开发人员必

    2023年04月14日
    浏览(51)
  • 【网络编程】网络通信基础——简述TCP/IP协议

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 ip地址简单来说就是用来描述网络上一个设备的所在位置。 端

    2024年02月04日
    浏览(47)
  • 网络基础学习:什么是tcp/ip协议

    TCP/IP是一种网络协议套件,它由传输控制协议(TCP)和互联网协议(IP)两个协议组成,广泛应用于Internet和局域网中。TCP/IP协议套件提供了可靠的数据传输、路由选择、错误检测和纠正等功能,使得不同类型的计算机和网络设备可以进行互联互通。它是Internet的基础协议,也

    2024年04月23日
    浏览(44)
  • 探究 ChatGPT 的心脏--Transformer(基础知识第一篇)

                     Transformer 是 ChatGPT 的核心部分,如果将 AI 看做一辆高速运转的汽车,那么 Transformer 就是最重要的引擎。它是谷歌于 2017 年发表的《Attention is All You Need》中提出的 Sequence-to-sequence 的模型,诞生之后便一统江湖,在 NLP, CV, Audio, Video 多个模态领域成为了

    2024年04月12日
    浏览(33)
  • 计算机网络基础(四)—— 什么是TCP/IP协议?是两种网络协议?

    字面上的意思,很多人看到会以为TCP/IP协议说的就是两种协议TCP和IP。 它指的确实是这两种协议,但很多时候,他还有另一个说法“TCP/IP协议簇”,指的是利用IP进行通信时所必须用到的协议群的统称,诸如IP、HTTP、FTP等都属于其中的一种协议。 TCP/IP是Internet的核心协议,是

    2024年02月04日
    浏览(117)
  • 【网络基础】OSI参考模型和TCP/IP协议

    目录 一、分层的思想 1.1 分层的原因 1.2 分层的好处 二、OSI参考模型 2.1 七层的划分 2.2 各层原理 三、TCP/IP协议 3.1 五层模型 3.2 各层常用协议 四、数据封装和解封装过程 4.1 封装过程 4.2 解封装过程 硬件和软件没有统一标准,不同厂商之间的设备无法通信。 各层相互独立,每

    2024年04月14日
    浏览(46)
  • 明德扬FPGA至简设计原理与应用 第一篇 FPGA基础知识 第一章 FPGA简介

    FPGA 的全称为 Field-Programmable Gate Array, 即现场可编程门阵列。FPGA 就是一个可以“改变”内部结构的芯片,而让这个芯片来实现怎样的功能,就需要通过编程即设计HDL,经过 EDA工具编译、综合、布局布线成后转换为可烧录的文件,最终加载到 FPGA 器件中去,改变 FPGA 内部的连

    2024年01月16日
    浏览(37)
  • 网络基础与osi七层与TCP\IP协议

    目录 一、网络基础 1.1什么是网络 ①网络是一组计算机或网络设备通过有形的线缆或无形的媒介,连接起来,按照一定的规则,进行通信的集合。 ②通信是指人与人、人与物、物与物之间通过某种媒介和行为的信息传递与交流。 ③网络通信,是指终端设备之间通过计算机进

    2024年02月03日
    浏览(40)
  • 网络基础、OSI七层参考模型和TCP/IP协议

    网络 是一组计算机或网络设备通过 有形的线缆或无形的媒介 如无线,连接起来,按照一定的规则,进行通信的集合。 通信 是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。 网络通信 是指终端设备之间通过计算机网络进行的通信。 局域网: 小

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包