
java
文章平均质量分 70
你的豆腐在这
这个博客里面的资料都是站在巨人的肩膀上来的。
展开
-
阻塞队列-DelayQueue延迟队列使用入门及源码详解
简介延迟元素的无限制BlockingQueu,其中元素只能在其延迟到期后才能获取。当元素的getDelay(TimeUnit.NANOSECONDS)方法返回小于或等于零的值时,就会发生过期。即使未到期的元素无法使用take或poll删除,它们也被视为普通元素。此队列不允许 null 元素。方法说明方法 抛出异常 返回值 一直阻塞 超时退出 插入方法 add offer put offer(time) 移除方法 remove p原创 2021-01-25 19:53:49 · 425 阅读 · 0 评论 -
HttpServletResponse和HttpServletRequest取值的2个坑
有时候,我们需要用拦截器对Request或者Response流里面的数据进行拦截,读取里面的一些信息,也许是作为日志检索,也许是做一些校验,但是当我们读取里请求或者回调的流数据后,会发现这些流数据在下游就无法再次被消费了,这里面是其实存在着两个潜在的坑。坑一Request的 getInputStream()、getReader()、getParameter()方法互斥,也就是使用了其中一个,再使用另外的两,是获取不到数据的。除了互斥外,getInputStream()和getReader()都只能使原创 2021-01-23 15:30:34 · 1122 阅读 · 0 评论 -
MySQL:逻辑架构图解和InnoDB存储引擎详解
MySQL逻辑架构1.逻辑架构图基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系。很经典的C/S架构风格,即客户端/服务端模式。2.分层描述客户端连接通常会进行连接池管理,连接用户权限认证,安全管理等操作。可以通过如下命令查看连接配置信息:SHOW VARIABLES LIKE '%connect%';可以看到最大连接和每个连接占用的内存等相关配置。核心功能第二层架构封装MySQL一系列核心操作,查询解析、优化、缓存、内置函数、触发器、视图等,跨原创 2021-01-22 21:27:36 · 241 阅读 · 0 评论 -
DbUtils简化JDBC操作数据库
DbUtils概述DbUtils是Apache提供的一个对JDBC轻量级封装的开源类库,使用它能够简化JDBC程序开发,同时不会影响程序性能。DbUtils API介绍DbUtils提供了org.apache.commons.dbutils.QueryRunner来操作数据库public QueryRunner(DataSource ds)通过数据库来构造QueryRunner对象 public int update(String sql, Object... params) throw.原创 2021-01-22 20:54:50 · 265 阅读 · 0 评论 -
Netty内存池泄漏问题
为了提升消息接收和发送性能,Netty针对ByteBuf的申请和释放采用池化技术,通过PooledByteBufAllocator可以创建基于内存池分配的ByteBuf对象,这样就避免了每次消息读写都申请和释放ByteBuf。由于ByteBuf涉及byte[]数组的创建和销毁,对于性能要求苛刻的系统而言,重用ByteBuf带来的性能收益是非常可观的。内存池是一把双刃剑,如果使用不当,很容易带来...原创 2018-12-10 16:20:28 · 751 阅读 · 0 评论 -
ElasticSearch分词器比较及使用方法
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Elasticsearch中,内置了很多分词器(anal...原创 2018-12-01 18:13:56 · 514 阅读 · 0 评论 -
JVM内存结构、JVM GC的优化策略、实践优化总结
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。优化前准备: 简单回顾JVM相关知识、介绍GC优化的一些通用策略。 优化方法: 介绍调优的一般流程:明确...转载 2018-10-23 19:50:10 · 366 阅读 · 0 评论 -
RPC服务和HTTP服务对比
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看...转载 2018-10-22 15:58:25 · 154 阅读 · 0 评论 -
Java的new和newInstance的区别
问:初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?答:用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展,可重用等软件思想上解释了。下面一个简单的说明演示,要结果可以直接看最后。***********************************...翻译 2018-10-17 15:46:49 · 244 阅读 · 0 评论