02 Java NIO
参考文献 java nio一篇博客 java nio并发编程网 NIO1 NIO概述新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。 IO Stream 和 NIO Block。NIO将最耗时的IO活动(即填充和清空缓冲区)移回操作系统,从而极大地提高了速度。 阻塞 I/O(blocking I/O)是旧的输入/输出(old input/output,OIO)。被称为普通 I/O(plain I/O) 标准IO与NIO的区别一:流与块I/O 与 NIO 最重要的区别是数据打包和传输的方式,I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。 面向流的I / O系统一次处理一个或多个字节的数据。 输入流产生一个字节的数据,而输出流消耗一个字节的数据。为流数据创建过滤器非常容易。 将几个过滤器链接在一起也是相对简单的,这样每个过滤器都能发挥自己的作用,相当于一个单一的复杂处...
03 Java IO文件
File IO 0 File对象 File RandomAccessFile NIO:Files 1 列出:list BIO 2 复制:copy BIO NIO common-util 3 删除:delete NIO apache commons-io 4 创建create BIO:createNewFile BIO:FileOutputStream NIO 5 写入:wrirte&append BIO:BufferedWriter BIO:PrintWriter BIO:FileOutputStream BIO:DataOutputStream NIO:FileChannel NIO:Files静态方法 6 读取:read BIO:BufferedReader按行读 BIO:FileInputStream 读取字节 NIO:Files按行读 NIO:读取所有字节 commons-io 7 Properties 补充:静态内部类与懒汉式单例模式 8 Resource File 在spring中可以这样 10 读写utf8数据 11 ...
04 Java IO对象
对象操作基本操作序列化序列化就是将一个对象转换成字节序列,方便存储和传输。 序列化:ObjectOutputStream.writeObject() 反序列化:ObjectInputStream.readObject() 不会对静态变量进行序列化,因为序列化只是保存对象的状态,静态变量属于类的状态。 Serializable序列化的类需要实现 Serializable 接口,它只是一个标准,没有任何方法需要实现,但是如果不去实现它的话而进行序列化,会抛出异常。 123456789101112131415161718192021222324252627282930public static void main(String[] args) throws IOException, ClassNotFoundException { A a1 = new A(123, "abc"); String objectFile = "file/a1"; ObjectOutputStream objectOutputStrea...
05 Java IO网络
网络操作 https://blog.csdn.net/forezp/article/details/88414741 1 网络编程基础Java 中的网络支持: InetAddress:用于表示网络上的硬件资源,即 IP 地址; URL:统一资源定位符; Sockets:使用 TCP 协议实现网络通信; Datagram:使用 UDP 协议实现网络通信。 InetAddress没有公有的构造函数,只能通过静态方法来创建实例。 12InetAddress.getByName(String host);InetAddress.getByAddress(byte[] address); URL可以直接从 URL 中读取字节流数据。 1234567891011121314151617181920public static void main(String[] args) throws IOException { URL url = new URL("http://www.baidu.com"); /* 字节流 */ InputStre...
附录3:IO、网络编程与web开发的关系
最近接触到的通信框架有点多,需要从头多学习一点 IO方式以下是IO方式。包括网络IO、文件IO等各种IO场景,不只是网络通信。说的是内存数据加载的方式,专注于一端。对应java中的java.io和java.nio两个包。 Java BIO 阻塞IO Java NIO-Netty 非阻塞IO Java AIO 异步IO 网络编程以下是网络通信框架。提供了客户端和服务端必须一一对应。无应用层协议,是传输层的封装。包括两端,每一端都通过IO模型加载和写入数据。 socket 是传统的端到端通信模型,最基本的网络通信框架。对端也必须是socket协议的服务端。其底层基于不同的JavaIO方式。 sofabolt 是alibaba的网络通信框架。对端也必须是sofabolt协议的服务端。 Netty 是开源的网络通信框架。 web开发以下三个是Http服务实现。技能够提供http协议的服务端,也能实现http协议的客户端。是有协议的。 JDK&Jetty&Netty,提供了不同的socket通信方式,可以自己实现http服务的客户端和服务端 apache Serv...
总结文档
总结文档 总结文档 普通集合 并发集合 字节流与字符流 static、final、super、this 关键字(this、super 不能用在 static 方法中)以及泛型 异常体系 ava 的 IO java 对象如何判断是否可以回收(注意,此处仅仅为判断对象是否可达,不一定判断对象是否可以回收) java 中的 SPI Java 虚拟机 Java 锁机制 java 多线程 Spring Mybatis Apache HttpClient 普通集合 Arrays.asList()返回的是视图(ArrayList 内部类对象,只提供了替换数据的方法,其底层依旧是原数组数据) subList:返回的 List 是 ArrayList 中某段数据的一个视图,不可在使用时对原对 象进行操作,否则会出现 CME 异常 HashMap 对于容量的初始化分配,在首次 put 操作时执行(lazy load)ii. 并发下出现的死链问题:https://www.jianshu.com/p/619a8efcf589、https://juejin.im/post/5a255bbd6fb...
06 WebFlux01Flux&Mono
WebFlux https://blog.csdn.net/crazymakercircle/article/details/124120506https://zhuanlan.zhihu.com/p/378136040 1 WebFlux简介 第一轮:就是看视频教程学会所有技术的原理和基本使用方法第二轮:阅读官方的文档,尤其是Spring、Java、Maven等,掌握编程的细节。 简介Spring5添加的新模块。用于web开发的,功能与SpringMVC类似。Webflux使用与当前比较流行的响应式编程出现的框架。 传统的Web框架,比如SpringMVC,基于Servlet容器,Webflux是一种异步非阻塞的框架。(异步非阻塞的框架在Servlet3.1后才支持) 其和虚拟式基于Reactor的相关API实现的。 异步非阻塞我更喜欢反过来理解这里。同步异步是针对被调用者的,阻塞和非阻塞是针对调用者的。 阻塞和非阻塞针对调用者。阻塞和非阻塞指的是调用者(程序)在等待返回结果(或输入)时的状态。阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。非阻塞时,如...
06 WebFlux02对象分析
1 Flux类中的静态方法简单的创建方法just() 可以指定序列中包含的全部元素。创建出来的Flux序列在发布这些元素之后会自动结束 fromArray(),fromIterable(),fromStream(): 可以从一个数组,Iterable对象或Stream对象中穿件Flux对象 empty() 创建一个不包含任何元素,只发布结束消息的序列 error(Throwable error): 创建一个只包含错误消息的序列 never(): 传建一个不包含任务消息通知的序列 range(int start, int count): 创建包含从start起始的count个数量的Integer对象的序列 interval(Duration period)和interval(Duration delay, Duration period): 创建一个包含了从0开始递增的Long对象的序列。其中包含的元素按照指定的间隔来发布。除了间隔时间之外,还可以指定起始元素发布之前的延迟时间 intervalMillis(long period)和intervalMillis(long dela...
06 WebFlux03Server
1 WebFlux基于注解的编程的实现创建WebFlux项目 创建Springboot项目,引入webflux的依赖 12345678910111213141516171819202122232425262728293031323334353637383940414243pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelV...
06 WebFlux04WebClient
参考文件https://blog.csdn.net/hellozpc/article/details/122441522https://blog.csdn.net/kerongao/article/details/109746190https://www.cnblogs.com/chaosmoor/p/1670308e.htmlhttps://www.jianshu.com/p/cc3a99614476 1 概述简介它是Spring5中引入的响应式web客户端类库,最大特点是支持异步调用;我们还将学习WebTestClient,用于单元测试。 简单地说,WebClient是一个接口,执行web请求的主要入口点。 它是Spring Web Reactive模块的一部分,并且取代经典的RestTemplate而生。此外,新的客户端是一个响应式的、非阻塞的技术方案,可以在HTTP/1.1协议上工作。 2 使用步骤使用WebClient我们需要按照如下几步来操作 创建WebClient实例 执行请求 处理返回数据 创建WebClient实例构建WebClient有三种方...














