前言
我们说 Kafka 是一个消息队列,其实更加确切的说:是 Broker 这个核心部件。为何这么说?你会发现我们可以通过控制台、 Java 代码、 C++ 代码、甚至是 Socket 向 Broker 写入消息,只要我们遵从了 Kafka 写入消息的协议,就可以将消息发送到 Kafka 队列中。
用专业一点的话术来说,Kafka 定义了一个应用层的网络协议,只要我们基于传输层构造出符合这个协议的数据,就是合法的 Kafka 消息。
所以说我们写入 Kafka 消息的只是一个生产者的客户端,他的形式多种多样,有 Java ,Python,C++ 等多种实现,那么我们每次发消息难道还需要自己去实现这套发送消息的协议么?显然 Kafka 官方已经考虑到这个问题了,为了给我们提供 开箱即用 的消息队列,官方已经帮我们写好了各种语言的优质生产者实现,例如我们今天要讨论的 Java 版本的实现。
Java基础
1.Java语言的三大特性
2.Java语言主要特性
3. JDK和JRE有什么区别
4.Java基本数据类型及其封装类
5.如果main方法被声明为private会怎样?
6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用
7.==与equals的区别
8.Object有哪些公用方法
9.为什么Java里没有全局变量?
10.while循环和do循环有什么不同?
11.char型变量中能不能存储一个中文汉字?为什么?
12.public, private, protected的区别, 继承方法与访问权限
13.float f=3.4;是否正确?
14.shorts1 = 1;s1 = s1 + 1;有错吗? shorts1 = 1;s1 += 1;有错吗
15.8u和&:&的区别?
16.IntegerCache
17.Locale类是什么?
18Java中final. finally. finalize的区别与用法
19.hashCode0和equals0的区别
20.深拷贝和浅拷贝的区别是什么?
21Java中操作字符串都有哪些类?它们之间有什么区别?
22.String str= "a"与String str=new String(“a”)-样吗?
23.抽象类能使用final 修饰吗?
24.static关键字5连问
25.重载(Overload) 和重写(Override) 的区别。重载的方法能否根据返回类型进行区分?
26.Java的四种引用
27.Java中Comparator与Comparable有什么不同?
28. Java序列化,反序列化?
29.什么情况需要Java序列化?
30.序列化的实现?
31.如果某些数据不想序列化,如何处理?
IO&NIO
1.什么是I0流?
2java中有几种类型的流?
3.字节流和字符流哪个好?怎么选择?
4.读取数据量大的文件时,速度会很慢,如何选择流?
5.1O模型有几种?
6.阻塞1O (blocking 10)
7.非阻塞I/O (nonblocking 10)
8.I/O多路复用模型(I0 multiplexing)
9.信号驱动I/O模型
10.异步/O(asynchronous 10)
11.NIO与10的区别?
12.NIO和IO适用场景
13.NIO核心组件
14.什么是channel
15.Java NIO中最常用的