java
文章平均质量分 70
Java个体户
这个作者很懒,什么都没留下…
展开
-
tomcat源码分析-如何接收连接?如何读数据?
接收客户端连接,是一个专门的线程。说白了,就是这个线程,专门干这个事情:只接收客户端连接。从客户端读数据是读线程池处理。读数据:调用servlet类的service方法。读线程池配置(最小10,最大200-这里就是tomcat默认200的来源)。真正创建读线程池的地方。具体是交给读线程池处理读数据。监听事件是一个独立的线程,专门用于监听事件,本质是不断轮询事件。最终的读数据是交给读数据线程池去执行。即读数据,最终是交给读线程池读数据。在监听端口的时候,就已经创建了。核心步骤:接收客户端连接。原创 2022-08-25 12:29:55 · 316 阅读 · 1 评论 -
java序列化实现原理和深度分析
java序列化 什么是序列化? 对象和二进制的转换。 转换的目的是啥? 对象转换为二进制,然后再把二进制恢复为对象。 具体应用场景是,把对象写到磁盘文件,或者更常见的就是把对象传到远程机器(比如,dubbo rpc框架)。 什么是java序列化? java序列化特殊一点点,是对象和字节数组( byte[] )的转换。但是,字节数组的本质也是二进制。 序列化的作用? 所以,无论是其他语言,还是java语言的序列化,本质作用都是为了从磁盘文件或者远程机器恢复对象。 官方文档介绍 Serialization i原创 2021-12-09 15:55:40 · 378 阅读 · 0 评论 -
dbcp监控
背景 实现数据库连接池的监控功能,比如活跃连接数量/总数量,超过阈值就告警。 实现 重写dbcp数据源,主要是重写获取连接的方法,从而实现监控功能。 步骤 1.获取数据源对象 重写dbcp数据源,主要是重写获取连接的方法,然后获取数据源对象,打印连接池的监控数据,并且计算获取数据库连接的耗时。 2.配置数据源 配置数据源的时候,使用自己重写的数据源类。 代码 获取数据源对象 /** * 重写dbcp数据源,主要是重写获取连接的方法,从而实现监控功能 * * @author gzh * @creat原创 2020-09-23 20:28:09 · 1023 阅读 · 0 评论 -
java-对象引用和对象本身
示意图 应用场景 1.赋值 只有用新的对象本身直接赋值给对应引用,该对象引用的值会改变,因为对象引用指向的对象本身改变了。 2.方法入参 调用方法和被调用方法。 代码 import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author gzh *原创 2020-09-07 21:53:43 · 855 阅读 · 0 评论