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

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网络方面的更多相关文章

  1. 20145205 《Java程序设计》实验报告五:Java网络编程及安全

    20145205 <Java程序设计>实验报告五:Java网络编程及安全 实验要求 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.客户端中输入明文,利用DES算法加密,D ...

  2. Java 网络编程学习总结

    新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1]    网络编程认识                [2]  TCP/IP编程 ...

  3. Java 网络爬虫获取网页源代码原理及实现

    Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...

  4. 20145212 实验五《Java网络编程》

    20145212 实验五<Java网络编程> 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成 ...

  5. 20145213《Java程序设计》实验五Java网络编程及安全

    20145213<Java程序设计>实验五Java网络编程及安全 实验内容 1.掌握Socket程序的编写. 2.掌握密码技术的使用. 3.设计安全传输系统. 实验预期 1.客户端与服务器 ...

  6. 20145206《Java程序设计》实验五Java网络编程及安全

    20145206<Java程序设计>实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和201451 ...

  7. 20145337实验五Java网络编程及安全

    20145337实验五Java网络编程及安全 实验内容 掌握Socket程序的编写 掌握密码技术的使用 设计安全传输系统 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器 ...

  8. java 网络编程复习(转)

    好久没有看过Java网络编程了,现在刚好公司有机会接触,顺便的拾起以前的东西 参照原博客:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942 ...

  9. JAVA课程实验报告 实验五 Java网络编程及安全

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  10. 20145225《Java程序设计》 实验五 Java网络编程及安全

    20145225<Java程序设计> 实验五 Java网络编程及安全 实验报告 一.实验内容 基于Java Socket实现安全传输. 基于TCP实现客户端和服务器,结对编程一人负责客户端 ...

随机推荐

  1. js循环(while循环,do while循环,for循环)相关知识点及练习

    08.循环 1.循环! 循环的作用: 简化代码,处理重复执行的代码 遍历数组.json对象.节点集合 2.while循环 语法: while(循环的条件){ 循环体 } 3.循环的五大要素 循环变量 ...

  2. tf.control_dependencies

    tf.control_dependencies()是用来控制计算流图的,给图中的某些节点指定计算的顺序. 原型: tf.control_dependencies(self, control_input ...

  3. MSIL实用指南-位运算

    C#支持的位运算是与.或.异或.取反.左移.右移,它们对应的指令是And.Or.Xor.Not.Shl.Shr. 取反运算只需要一个操作数,生成步骤是1.生成加载变量2.生成取反指令实例代码: ilG ...

  4. javascript之操作数组方法

    掌握如何操作数组,会让你的开发变得更加高效 1.栈和队列方法(以下四个方法都改变原数组) arr.push() //接受任意类型的参数,逐个添加到数组的末尾,并返回数组的长度 改变原数组 arr.po ...

  5. 【系统解读】SystemUI篇(一)SystemUI启动流程

    前言 SystemUI是系统启动中第一个用户肉眼可见的应用,其功能包罗万象,比如开机后看到的锁屏界面,充电时充电界面,状态栏,导航栏,多任务栏等,都是与Android手机用户息息相关的功能.所以不止S ...

  6. HDU - 2255 奔小康赚大钱 KM算法 模板题

    HDU - 2255 题意: 分配n所房子给n个家庭,不同家庭对一所房子所需缴纳的钱是不一样的,问你应当怎么分配房子,使得最后收到的钱最多. 思路: KM算法裸题.上模板 #include <i ...

  7. Codefroces 366 D Dima and Trap Graph (最短路)

    Dima and Trap Graph 题意:Dima和Inna越来越喜欢对方,但是Dima的室友缺很没有热情出去玩,然后Dima就把他室友Seryozha骗进了陷阱里.现在Seryozha想要从陷阱 ...

  8. C#开发BIMFACE系列27 服务端API之获取模型数据12:获取构件分类树

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE官方示例中,加载三维模型后,模型浏览器中左上角默认提供了“目录树”的功能,清晰地展示了模型的完整构成及上下级关系. 本篇介绍如何获 ...

  9. Vert.x 之 HelloWorld

    Hello World 欢迎来到Vert.x的世界,相信您在接触Vert.x的同时,迫不及待想动手试一试,如您在学习计算机其它知识一样,总是从Hello World开始,下面我们将引导您制作一个最基本 ...

  10. 美团集群调度系统HULK技术演进

    本文根据美团基础架构部/弹性策略团队负责人涂扬在2019 QCon(全球软件开发大会)上的演讲内容整理而成.本文涉及Kubernetes集群管理技术,美团相关的技术实践可参考此前发布的<美团点评 ...