Java语法基础
文章平均质量分 77
加糖苏打水
恭请光临~
展开
-
RabbitMQ消息确认机制详解
RabbitMQ消息确认详解:消费者在获取到消息后,会向服务端发送ACK确认,这时消息会立刻删除。消息发布确认要确保消息成功发送到服务端broker。确保RabbitMQ消息的可靠性。开启生产者确认机制,确保生产者的消息能到达队列;设置备份交换机,将无法路由到队列的消息送到备份队列;开启持久化功能,确保消息未消费前在队列中不会丢失;开启消费者应答机制,设置自动应答或手动应答回调;开启消费者失败重试机制,设置重试次数和间隔时间;开启消息恢复机制,重试机会耗尽的消息投递到异常交换机,交由人工处理。原创 2024-01-05 14:46:02 · 1345 阅读 · 1 评论 -
【SocketChannel详解】
SocketChannel是一种面向流的连接socket套接字的可选择通道。SocketChannel 作为网络 IO 通道,具体负责进行读写操作。NIO把缓冲区的数据写入通道,或者把通道里的数据读到缓冲区。具有特点:是用来连接Socket套接字的,主要用途用来处理网络I/O的通道,是基于TCP连接传输,SocketChannel实现了可选择通道,可以被多路复用的。原创 2023-12-05 14:29:27 · 693 阅读 · 0 评论 -
【ServerSocketChannel详解】
ServerSocketChannel是面向流的监听socket套接字的可选择性通道。具有以下特点:具有阻塞和非阻塞两种模式;可以注册到多路复用器上(且一般都与复用器配合使用);基于TCP连接;需要绑定到特定端口上;是线程安全的。SocketChannel提供了连接到socket的通道,提供了类似于java.net包中对于网络操作的api的功能。既然已经有连接到Socket套接字的通道,可以主动发起连接、传输数据(client端),功能就是接收连接、接收数据的通道(server端)。原创 2023-12-05 14:39:29 · 416 阅读 · 0 评论 -
HttpServlet和DispatcherServlet的区别
HttpServlet和DispatcherServlet是原生和MVC中封装的servlet的区别。Servlet定义一套处理网络请求的规范,但并不能直接处理请求,而是由tomcat监听端口,根据url等信息,确定要将请求交给哪个servlet去处理,service方法返回响应对象,再返回给客户端。dispatcherServlet是子接口,作为一个前端控制器为每个请求配置一个统一的servlet来处理,体现了MVC和代码解耦理念的支持,起到了路由分发的作用,根据配置的节点有效地将请求转发到控制器方法。原创 2023-12-03 16:24:47 · 451 阅读 · 1 评论 -
JAVA属性初始化顺序
属性分为静态属性和非静态属性,参与初始化或者说赋值顺序的,JAVA类的属性的初始化方式有默认初始化,定义时显式初始化,代码块赋值,构造器赋值,spring@value属性注入。为考虑不同的情况,细分为①静态变量默认初始化②静态变量显式赋值③非静态代码块赋值④静态代码块赋值⑤创建对象⑥构造器赋值⑦spring@value属性注入⑧非静态变量默认初始化⑨非静态变量显式初始化,此外我们额外插入一个⑤创建对象来对标划分整个过程以便更好理解。现在来一一比较各种方式赋值的先后顺序。原创 2023-10-19 16:30:04 · 144 阅读 · 1 评论 -
泛型通配符“?“的使用详解
Java在使用泛型时,C 与 C 是并列的两个类,没有子父类关系,也就不能相互赋值。如 ArrayList 与 ArrayList 没有关系,这使得在给方法传参时,通用性很差。使用通配符C能使得代码的兼容性更好。但是通配符?在读取和写入数据及有限制条件的情况下的使用有特别的规定,本文主要讲解了这方面的内容。原创 2023-08-16 15:18:20 · 456 阅读 · 1 评论 -
一文搞懂JAVA中forEach()方法的使用
在集合、Stream中都出现了forEach()方法实现对其中元素的遍历,forEach()传入的Consumer对象参数可以用lambda表达式或方法引用来进一步简化表达。原创 2023-08-14 17:40:38 · 527 阅读 · 0 评论