首页 > 编程语言 > 详细

Java网络方面

时间:2018-10-20 23:11:26      阅读:167      评论:0      收藏:0      [点我收藏+]

最近在面试 有些概念懂 但是需要梳理一下 借着面试看看自己会多少.

1.网络编程的同步 异步 阻塞 非阻塞?

同步:函数调用在没有得到结果之前,不返回任何结果;

异步:函数调用在没有得到结果之前,不返回任何结果,返回状态值;

阻塞:函数调用在没有得到结果之前,线程挂起,得到结果之后返回值。

非阻塞:函数调用在没有得到结果之前,当前线程不会挂起,立即返回结果。

2.Java如何实现无阻塞方式的Socket编程?

NIO可以有效解决多线程服务器存在的线程开销问题,NIO的多线程不是为了应对客户端请求而独立分配线程,

而是通过多线程充分利用CPU的处理能力和处理的时间,达到提高服务效果。

3.什么是Java序列化

为了保存内存中各种对象的状态(也就是实例变量,而不是方法),并且可以把对象可以读取出来,虽然可以通过方法保存对象状态,java提供了对象

序列化机制更好的保存对象状态(具体的对象序列化可以参照Hibernate二级缓存)

4.什么情况下需要序列化?序列化需要注意什么事情,如何实现Java序列化(串行化)?

Java对象序列化到文件或者数据库中;

使用套接字在网络上传输对象时需要进行序列化;

当希望RMI传输对象的时候;

序列化注意事情:

1).如果子类实现了序列化接口Sericalizable而父类未实现,父类必须提供一个无参构造函数,否则会抛出InvalidClassException异常。

2).类的静态变量不会被序列化,因为这个静态变量是类变量,而不是对象的。串行化保存的是是对象属性,即非静态的变量。

3.)Java序列化是为了节约磁盘空间,具有特定规则。

4).序列化到同一文件,如果修改了相同对象的属性再次保存时,因此只保存第二次的引用,读取第一次的存储。

 

5.Java有那几种流?JDK提供哪些接口可以继承?

Java提供的流对象

InputStram 字节输入流 OutputStream 字节输出流 Reader 字符输入流 Writer 字符输出流

按流向划分:

输出: 输出字节流 OutputStraam 输出字符流 Writer

输入: 输入字节流InputStream 输入字符流 Reder

按照传输单位划分:

字节流:8位 一个比特 一般情况下图片 等是二进制文件

字节流:16位 两个比特

6.用Java Socket编程

比较典型的Java Socket编程,发送请求后,等待服务器响应。 (这个过程存在阻塞方法)

大概过程

1.创建一个Socket实例,构造函数先远处服务器域名和端口 简历TCP连接

2.通过IO流与服务器建立连接(这个地方存在阻塞方法)

3.IO流中读取数据 并且 Socket关闭连接;

 

服务器的构建模型

1.创建一个ServerSocket端口监听,设置监听端口,用于获取TCP连接

2.重复执行(whlie(true))监听状态一直持续

3.调用ServerSocket 的accept()方法,返回一个客户端连接实例

4.为返回的Socket创建一个新的线程,用于进行线程的服务。

5.通讯完成,关闭Socket的close()

7.TCP有连接时候有三次握手?断开连接有几次握手?

             客户端                                                   服务器

              | (发送请求 i)                                               |

              |                   --------------->  (i)                 |(创建j,并且i+1)

             |                  <---------------(j,i+1)               |

             | (获取 j,i+1) 并且(j+1,i+)                             |

             |                    -------------->(j+1,i+1)          |(获取j+1,i+1) 完成握手

seq 是包本身的序列号 ack是确认连接

一次释放 断开连接请求 确认断开连接

Java网络方面

原文:https://www.cnblogs.com/ad-zhou/p/9823121.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!