zoukankan      html  css  js  c++  java
  • 学习面试题Day08

    1、TCP/IP协议的理解。
         TCP/IP定义了电子设备(如计算机)连入因特网的标准,以及数据如何在它们之间传输的标准。它既是互联网中的基本通信语言或协议,也是局域网的通信协议。
         TCP/IP是一组包括TCP协议、IP协议、UDP协议、ICMP协议和其他一些协议的协议组。需要进行网络通信的计算需要提供符合这些协议标准的程序以后,才能进行网络通信。
    2、TCP协议的通信特点是什么?
         TCP协议主要拥有如下的通信特点:
         (1)面向连接的传输;
         (2)端到端的通信;
         (3)可靠性,确保传输数据的正确性,不出现丢失或乱序;
         (4)采用字节流方式,即以字节为单位传输字节序列。
    3、Java的TCP编程模型是什么?
         编写Java的TCP网络应用程序需要分为服务器端和客户端两个部分,大致有以下步骤。
         服务器端:
         (1)创建一个服务器端的Socket,指定一个端口号;
         (2)开始监听来自客户端的请求要求;
         (3)获得输入流或输出流;
         (4)调用输入流/输出流的read()或write()方法,进行数据的传输;
         (5)释放资源,关闭输出流/输入流、Socket和ServerSocket对象;
         客户端:
         (1)创建Socket对象,建立与服务器端的连接;
         (2)获得输出流或输入流;
         (3)调用输入流/输出流的read()或write()方法,进行数据的传输;
         (4)释放资源,关闭输出流/输入流、Socket对象。
    4、UDP协议的通信特点是什么?
         UDP协议主要拥有如下的通信特点:
         (1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上;
         (2)不需要维护连接状态,包括收发状态等;
         (3)字节开销很小;
         (4)吞吐量主要受应用软件生成数据的速率、传输带宽、源端和终端主机性能等因素的限制。
    5、Java的UDP编程模型是什么?
         编写Java的UDP网络应用程序需要分为接收端和发送端两个部分,它们大致的步骤相同,主要包括以下几个方面:
         (1)创建数据Socket,指定一个端口号;
         (2)对于接收消息的一端来说,提供一个byte数组进行数据的存储;而对于发送消息一端,除此以外还需要提供对端的IP地址和端口号;
         (3)调用DatagramPacket的receive()或send()方法进行数据的接收或发送;
         (4)调用DatagramPacket的getData()方法得到byte数组的数据;
         (5)释放资源。
    6、如何创建TCP通信的服务器端的多线程模型?
         使用多线程模型来编程TCP程序的服务器端,主要有以下步骤:
         (1)创建ServerSocket对象,指定监听的端口;
         (2)把accept()方法作为循环条件,循环监听客户端请求;
         (3)创建线程类,定义一个Socket类型的成员变量,并定义一个可以为它赋值的构造方法;
         (4)在run()方法中使用socket变量进行任意的通信操作;
         (5)在主进程的循环体内开启一个线程,并传入accept()方法的返回值。
    7、用UDP通信模型创建一个即时聊天软件。
         主要思路包括:为接收用户输入和打印聊天记录两个界面创建两个不同的线程,它们分别使用DatagramPacket通信。创建一个发送消息的线程类(SendThread)和一个接收消息的线程类(ReceiveThread),分别的作用是循环监听用户的输入并把用户输入的数据通过调用DatagramSocket的send()方法发出和循环的调用DatagramSocket的receive()方法,接收另外一端来的数据。
    8、有两间房,一间房中有3盏灯,另一间房有控制这3盏灯的开关(这两间房是分割开的,毫无联系)。现在要你分别进这两间房一次,然后判断出这三盏灯分别是由哪个开关控制的。
         首先进入开关房间,先开开关A,过段时间,关A,开B,去另一个房间,亮着的灯是B控制的,不亮的灯中热的是A控制,冷的是C控制。
    9、有3个容器,分别是3、7、10体积,容器没有刻度。10体积的容器中装满某种液体,3、7容器是空的。没有别的工具,现在请把这种液体平分成相对精确的两份。
         (1)3:0:7
         (2)0:3:7
         (3)3:3:4
         (4)0:6:4
         (5)3:6:1
         (6)2:7:1
         (7)2:0:8
         (8)0:2:8
         (9)3:2:5
         (10)0:5:5
    10、有12个外表完全一样的球,其中有一个球重量不一样(这里假设更轻),给你一个,诶呦刻度的天平,你只能用3次,把球找出来。
         (1)分3堆,4:4:4.
         (2)把上步确定好的四个球进行2:2分堆过秤。
         (3)把最后两个球过秤。
    11、狡猾的骗子到商店用100元的钞票买了9元的东西,售货员找了他91元钱,这时他又称自己已有零钱,给了9元而要回了自己原来的100元。那么,他骗了商店多少钱?
         82元+商品本身的价值。
    12、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
         (1)点燃第一根香的两头,和点燃第二根香的一头;
         (2)等到第一根香燃尽以后,再把第二根香的另一头点燃;
         (3)从第一根香燃尽开始算起,直到第二根香燃尽,时间就是15分钟。

  • 相关阅读:
    【转】高性能网络编程4--TCP连接的关闭
    Kubernetes 用了,延迟高了 10 倍,问题在哪?
    多路复用和多路分用
    网络七层模型与四层模型区别
    Go验证包出错 dial tcp 34.64.4.17:443: i/o timeout
    spring Bean配置的三种形式
    Spring容器IOC初始化过程
    Go 特殊语法
    服务发现的基本原理与比较:Eureka vs Consul vs Zookeeper
    docker 常用命令
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5622286.html
Copyright © 2011-2022 走看看