好久没看Java IO这块的内容,感觉都快忘得差不多了。平成编程也没有设计到太多的Java基础知识,所以这里希望可以抽点时间回顾一下,让艾宾浩斯记忆曲线不要下降的太快。

回顾这个主要还是以总结为主,能够把各个知识点串联起来,有些东西可能不会涉及得很深入。

先回忆一下有哪些知识。

Java IO

Java IO主要是讲了Java和外部进行数据的交互的方法。

Java IO中有字符流和字节流。

采用了装饰器设计模式,以统一的方式来处理输入输出。

Java网络编程

其实从某种程度上来说,Java网络编程也算是一种IO,因为数据传输的时候还是要靠Java的IO类。

NIO

原来的NIO是传统的IO,阻塞式的,NIO在此方面有更好的性能。

Netty

Netty我理解的是一个对NIO进行包装的框架,让你更简单的使用NIO。

Hessian

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

RMI、RPC

RMI,远程方法调用。

RPC,远程过程调用。

现在比较流行的Dubbo,HSF都是远程方法调用。

准备用一段时间对此做个总结。

Java IO、网络编程、NIO、Netty、Hessian、RPC、RMI的学习路线的更多相关文章

  1. java io 网络编程 高性能NIO

    很久没写了,一是觉得这后台不怎么方便,二是 写的时候突然觉得没兴趣了. 还好,今天突然想记一下,那就随便写吧.  1.一开始还是放几个连接.  什么是 同步,异步,阻塞,非阻塞 : http://bl ...

  2. Java IO网络编程经典模板

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

  3. Java网络编程和NIO详解9:基于NIO的网络编程框架Netty

    Java网络编程和NIO详解9:基于NIO的网络编程框架Netty 转自https://sylvanassun.github.io/2017/11/30/2017-11-30-netty_introd ...

  4. Netty | 第1章 Java NIO 网络编程《Netty In Action》

    目录 前言 1. Java 网络编程 1.1 Javs NIO 基本介绍 1.2 缓冲区 Buffer 1.2 通道 Channel 1.3 选择器 Selector 1.4 NIO 非阻塞网络编程原 ...

  5. Java高并发网络编程(四)Netty

    在网络应用开发的过程中,直接使用JDK提供的NIO的API,比较繁琐,而且想要进行性能提升,还需要结合多线程技术. 由于网络编程本身的复杂性,以及JDK API开发的使用难度较高,所以在开源社区中,涌 ...

  6. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  7. 二十三、Java基础--------网络编程

    Java中另一个重要技术就是网络编程了,为了更好的学习web方向的知识,有必要对java之网络编程好好学习,本文将围绕网络编程技术进行分析. 常见的网络协议:UDP.TCP UDP 1. 将数据源和目 ...

  8. JAVA的网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

  9. 【转】JAVA之网络编程

    转自:火之光 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者 ...

  10. JAVA的网络编程【转】

    JAVA的网络编程[转] Posted on 2009-12-03 18:04 火之光 阅读(93441) 评论(20) 编辑 收藏 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能, ...

随机推荐

  1. 前端常用面试题目及答案-HTML&CSS篇

    1. 行内元素和块级元素有哪些? 行内元素: 123456789101112131415161718192021222324252627 <a>     //标签可定义锚   <ab ...

  2. Ubuntu 16.04网络管理工具NetworkManager无法使用nm-tool的问题

    说明: 1.在Ubuntu中网络设置分两类,一个是GUI配置工具NetworkManager,另一个是命令行的配置,两者只能共存一个,也就是说其中一个设置之后另一个就会失效: 2.NetworkMan ...

  3. Date类型数据的加一天

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { if (startDate != null &am ...

  4. win10 创建安卓模拟器及启动的方法

    一打开 安卓 studio 然后点击AVD manager 创建一个模拟器 二 通过命令行快速启动模拟器 D:\Android\sdk\tools\emulator.exe -netdelay non ...

  5. crossapp的屏幕适配

    1.分辨率是的某个尺寸大小的屏幕里的像素点数ppi 2.crossapp茶用iphone4为基准比例值为1 3.其它分辨率设备的换算dp = px * 320/ 屏幕PPI 4.crossapp里点. ...

  6. 【共享单车】—— React后台管理系统开发手记:Redux集成开发

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  7. 2017.7.18 linux下用户、组和文件的操作

    参考来自:<鸟叔的linux私房菜(基础学习篇)-第14章> 0 目的 在linux下搭建ELK环境时,因为elasticsearch不能在root下操作,所以要为其新增一个用户,以及随之 ...

  8. 转:windows 查找pid并kill进程

    找出占用1099端口的进程,进入windows命令,查看什么进程占用了1099端口 使用命令:netstat -aon|findstr 1099 找出占用1099端口的进程,如下图所示:

  9. jquery给多个span赋值

    因为我想在页面载入完毕后,有几个地方显示当前时间,所以我须要给多个span赋值. span代码的写法例如以下: <span name="currentDate">< ...

  10. MySQL架构组成之物理文件组成

    一.日志文件 1.错误日志:Error Log   内容:MyQL Server 执行过程中全部较为严重的警告和错误信息,以及MySQL Server 每次启动和关闭的具体信息. 路径:默认存放位置在 ...