0%

NIO

NIO早在JDK1.4中就已经提出来了(JSR51),在JDK1.7中对NIO进行了补充类库NIO.2(JSR 203)

同步非阻塞

阻塞与非阻塞的区别:

  • 阻塞时,在调用结果返回时,当前线程会被挂起,并在得到结果之后返回
  • 非阻塞时,如不能立即得到结果,该调用不会阻塞当前线程,调用者需要定时轮询查看处理状态

Channel(通道)和Buffer(缓冲区)

阅读全文 »

用户进程发起请求,内核接收到请求后,从I/O设备中获取数据到buffer中,再将buffer中的数据copy到用户进程的地址空间,该用户进程获取到数据后再响应客户端。

阅读全文 »

函数式编程

函数式编程强加了额外的约束,即所有数据必须是不可变的:设置一次,永不改变。将值传递给函数,该函数然后生成新值但从不修改自身外部的任何东西,不可变对象和无副作用范式解决了并发编程中最基本和最棘手的问题之一。

阅读全文 »

有时候需要存储一组数据,之前使用数组,但是数组具有固定的容量,但是在写程序时并不知道需要多少对象,在java.util包下提供了一套完整的集合类,包含List、Set、Queue、Map。java集合类都可以自动地调整自己的大小。

阅读全文 »

定义在另一个类中的类,叫做内部类,可以把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。

内部类分为

  • 静态内部类
  • 成员内部类
  • 局部内部类
  • 匿名内部类
阅读全文 »

为了避免重复代码太多,导致代码不好维护,大家需要学会如何复用代码,代码复用的两种方式,组合和继承

阅读全文 »

kafka是一个高吞吐量、分布式的发布-订阅系统,核心模块使用Scala语言开发,开源的、轻量级的、分布式的、可分区和有复制备份的、基于zookeeper协调管理的分布式流平台的功能强大的消息系统。

阅读全文 »

从最大访问权限到最小访问权限依次是:public、protected、包访问权限(default)、private。

阅读全文 »

初始化顺序

在类中变量定义的顺序决定了它们初始化的顺序。

阅读全文 »