JAVA AIO 服务器与客户端实现示例(代码2)
AIO用于文件处理还是比较快乐的,但用AIO来写网络消息处理服务器端与客户端是比较麻烦的事情,当然这只是我个人意见,主要是有几点原因: 一是AIO需要操作系统支持,还好Windows与Linux(模拟)都支持; 二是AIO同时使用递归调用和异步调用容易把程序员搞晕,代码容易出错; 三是CompletionHandler会使用单独的线程跑,容易出现多线程问题,频繁线程上下文切换比较消耗资源; 四是异…
AIO用于文件处理还是比较快乐的,但用AIO来写网络消息处理服务器端与客户端是比较麻烦的事情,当然这只是我个人意见,主要是有几点原因: 一是AIO需要操作系统支持,还好Windows与Linux(模拟)都支持; 二是AIO同时使用递归调用和异步调用容易把程序员搞晕,代码容易出错; 三是CompletionHandler会使用单独的线程跑,容易出现多线程问题,频繁线程上下文切换比较消耗资源; 四是异…
一、对Kafka的认识 1.Kafka的基本概念 2.安装与配置 3.生产与消费 4.服务端参数配置 二、生产者 1.客户端开发 必要的参数配置 消息的发送 序列化 分区器 生产者拦截器 2.原理分析 整体架构 元数据的更新 3.重要的生产者参数 三、消费者 1.消费者与消费组 2.客户端开发 必要的参数配置 订阅主题与分区 反序列化 消息消费 位移提交 控制或关闭消费 指定位移消费 再均衡 消费…
AWT事件处理机制概要(来自白书): 1.事件监听器是一个实现了监听器接口的类实例。 2.事件源对象能够注册监听器并向其发送事件对象。 3.当事件发生时事件源将事件对象发送给所有注册的监听器。 4.监听器对象再使用事件对象中的信息决定如何对事件做出响应。 现在来看一个具体案例,当用户点击按钮,JButton对象创建一个ActionEvent对象,再调用Listener.actionPerforme…
工作许久,许多情况下,对于异常的处理都是直接throw,或者catch后,直接打印e.printStackTrace()堆栈信息。那么我们捕获异常后程序到底怎么执行呢? 我的猜测是,捕获就相当于处理了异常,那么程序就应该正常执行,也就是会正常执行完,如果有返回值就正常返回。测试代码如下: /** * 测试捕获异常后,程序执行顺序 */ @Test public void testException…
11-2 Java集合----Collection接口方法 一、Collection 接口 1.Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。 2.JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List) 实现。 3.在 Java5 之前,J…
反射的定义、机制等等概念网上有很多,这里就不做过多的赘述了,本文主要介绍通过反射机制获取对象中一个list属性的值,并将值赋值到另一个对象中。 上代码: 1.实体类 package com.study.reflex; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor public class …
Java提供File类,让我们对文件进行操作,简单整理了一下File类的用法。 1.基本概念 File:文件和目录路径名的抽象表示形式,代表文件或者文件夹。 2.构造方法 // 根据parent抽象路径名和child路径名字符串创建一个新File实例 File(File parent, String child) // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例 File(St…
一、单例设计模式概述 单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模式的一种。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复…