Java知识
文章平均质量分 86
Java知识分享
靠谱的内推君
这个作者很懒,什么都没留下…
展开
-
一篇文章搞明白Java中的SPI机制
SPI机制是Java的一种服务发现机制,为了方便应用扩展。那什么是服务发现机制?简单来说,就是你定义了一个接口,但是不提供实现,接口实现由其他系统应用实现。你只需要提供一种可以找到其他系统提供的接口实现类的能力或者说机制。这就是SPI机制( Service Provider Interface)eclipse和idea里的插件使用就是通过SPI机制实现的。开发工具提供一个扩展接口,具体的实现由插件开发者实现,开发工具提供一种服务发现机制来找到具体插件的实现,这就达到了插件的安装效果。从而可以使用插件服务。转载 2023-12-11 15:55:39 · 150 阅读 · 0 评论 -
数据结构解析-HashMap
概要HashMap在JDK1.8之前的实现方式 数组+链表,但是在JDK1.8后对HashMap进行了底层优化,改为了由 数组+链表+红黑树实现,主要的目的是提高查找效率。如图所示:JDK版本 实现方式 节点数>=8 节点数<=6 1.8以前 数组+单向链表 数组+单向链表 数组+单向链表 1.8以后 数组+单向链表+红黑树 数组+红黑树 数组+单向链表 HashMap1.继承关系public class转载 2020-05-20 16:21:51 · 160 阅读 · 0 评论 -
深入理解HashMap(精华必看)
Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。1、hashmap的数据结构要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap也不例外。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“),请看转载 2020-05-20 16:28:22 · 270 阅读 · 0 评论 -
绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!
Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具,使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布,一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业转载 2020-05-25 04:09:28 · 477 阅读 · 0 评论 -
[Mark]解决ElasticSearch深度分页机制中Result window is too large问题
问题描述今天在使用ElacticSearch做分页查询的时候,遇到一个奇怪的问题,分页获取前9999条数据的时候都是正常的,但每次获取第10000条数据的时候就无法获取到结果。检查自己代码中的分页逻辑也未发现什么问题,于是进行单步调试,当单步获取第10000条数据的时候捕捉到了下面的异常:Failed to execute phase [query_fetch], all shards failed; shardFailures {[1w_m0BF0Sbir4I0hRWAmDA][fuxi_use转载 2020-09-03 13:11:27 · 193 阅读 · 0 评论 -
Sentinel 介绍与使用
简介Sentinel可以简单的分为Sentinel核心库和Dashboard。核心库不依赖Dashboard,但是结合Dashboard可以取得最好的效果。 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对Dubbo / Spring Cloud等框架也有较好的支持。 控制台(Dashboard)基于Spring Boot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。S原创 2021-05-26 12:58:41 · 318 阅读 · 0 评论 -
不会看 Explain执行计划,劝你简历别写熟悉 SQL优化
一个技术大牛说到他面试了一个工作6年的程序员,表情挺复杂,他说:我看他简历写着熟悉SQL语句调优,就问了下Explain执行计划怎么看?结果这老哥一问三不知,工作6年这么基础的东西都不了解!感受到了大佬的王之鄙视,回到工位我就开始默默写这个,哎~ 我TM也不太懂Explain,老哥你这是针对我啊!哭唧唧~Explain有什么用当Explain与SQL语句一起使用时,MySQL会显示来自优化器关于SQL执行的信息。也就是说,MySQL解释了它将如何处理该语句,包括如何连接表以及...转载 2020-05-23 15:46:29 · 250 阅读 · 0 评论 -
另辟蹊径,MySQL主从同步延迟,这样解决也挺好
一、canal是个啥?canal是阿里开发的一款基于数据库增量日志解析,提供增量数据订阅与消费的框架,整个框架纯JAVA开发,目前仅支持Mysql和MariaDB(和mysql类似)。那什么是数据库增量日志?MySQL的日志种类是比较多的,主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志。而MySQL数据库所发生的数据变更(DML(data manipulation language)数据操纵语言,也就是我们熟悉的增删改),都会以二进制日志(binary log)形式存储。二、转载 2020-05-23 16:29:37 · 1691 阅读 · 0 评论 -
面试官:怎么排查堆内存溢出呀?
今天就带着大家看看堆内存溢出我们一般怎么排查的。在排查之前,我想jvm的基础知识大家应该都是了解了的吧?我就带大家回温一下JVM的内存模型(这玩意跟JAVA内存模型JVM可不一样,不要记错了)今天我就直说堆,因为溢出是发送在堆中的。JVM堆内存被分为两部分:年轻代(Young Generation)和老年代(Old Generation)。年轻代年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两转载 2020-05-23 17:13:44 · 1945 阅读 · 0 评论 -
Elasticsearch查询——布尔查询Bool Query
Elasticsearch在2.x版本的时候把filter查询给摘掉了,因此在query dsl里面已经找不到filter query了。其实es并没有完全抛弃filter query,而是它的设计与之前的query太重复了。因此直接给转移到了bool查询中。Bool查询现在包括四种子句,must,filter,should,must_not。为什么filter会快?看上面的流程图就能很明显的看到,filter与query还是有很大的区别的。比如,query的时候,会先比较查询条件,.转载 2020-09-03 13:13:52 · 306 阅读 · 0 评论 -
使用Java实现简单串口通信
使用Java实现简单串口通信最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^一:首先,你需要下载一个额外的支持Java串口通信操作的jar包,由于java.comm比较老了,而且不支持64位系统,这里推荐Rxtx这个jar包(32位/64位均支持)。官方下载地址:http://fizzed.com/oss/rxt...转载 2018-03-14 16:23:49 · 1243 阅读 · 0 评论 -
手把手教你定位常见Java性能问题
概述性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。预备知识既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。top命令top命令使我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用...转载 2020-05-19 02:05:14 · 278 阅读 · 0 评论