自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GM_115的博客

致力于提升技能,打造技术大神

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 【HashMap】面试被问到HashMap底层原理你居然说不清?

HashMap底层实现原理详解

2022-11-22 16:28:34 662

原创 Eureka原理看这一篇就够了

1.服务发现概念首先,要理解服务发现的概念,需要先了解分布式系统,这里引用一个通俗易懂的分布式系统比喻“当一头牛拉不动车的时候,不要试图寻找一头更强壮的牛,而是用两头牛来拉车”因此,从狭义来解释,分布式系统是:由多个应用程序协同来完成任务的一种工作模式系统。这里的任务可以是一个下单操作、可以是一个复杂的统计计算、可以是存储一个超大数据等等,总之就是这个任务不适合或者无法通过单个程序独立完成,需要多个程序协同完成。2.服务发现解决的问题2.1.解耦、屏蔽程序之间IP及端口依赖分布式..

2022-03-23 17:11:25 5657 2

原创 一文彻底了解ConcurrentHashMap

ConcurrentHashMap 适用于 高并发、线程安全的 Map 操作,相比 Hashtable 和 Collections.synchronizedMap,它提供了更好的性能和扩展性。

2025-04-09 22:59:01 913

原创 Java函数式编程

Java 8是Java语言发展史上的一个重要里程碑,它引入了函数式编程范式,极大地丰富了Java的表达能力。下面我将从核心概念到实际应用全面介绍Java 8的函数式编程特性。

2025-03-28 16:06:44 263

原创 【注解】Java自定义注解

Java注解(Annotation)又称为Java标注,是Java 5开始支持加入源代码的特殊语法元数据。是附加在代码上的一些元信息,可以用于添加元数据、配置或行为到代码中,支持自定义注解,是一个强大的功能,自定义注解的实现包括定义注解、处理注解(通过反射或注解处理器)以及在实际代码中使用注解。注解相关类都包含在java.lang.annotation包中。自定义注解使用@interface关键字定义。

2025-02-26 22:17:08 551

原创 Fork/Join框架介绍

Fork/Join 框架是 Java 7 引入的一种并行计算框架,旨在高效地处理可以递归分解的任务(Divide-and-Conquer)。它特别适合处理分治算法、递归任务以及并行计算任务。Fork/Join 框架的核心思想是将一个大任务拆分成多个小任务(Fork),并行执行这些小任务,最后将结果合并(Join)。Fork/Join 框架是 Java 中处理并行计算任务的高效工具,核心组件包括和。通过合理使用这些组件,可以实现高效的任务拆分、并行执行和结果合并。

2025-02-26 00:46:38 591

原创 ThingsBoard Edge与云端数据交互

通过Excutors创建了多种线程池,Consumer队列消费者消费消息、数据库查询事件请求云端Cloud等。消息队列支持内存(in-memory、kafka、微软awsSqs、谷歌pub/sub、RabbitMQ)Spring监听器,通过Spring监听器实监听现实体增、删、改操作,然后进行相应的操作处理。主要包括边缘对设备、设备数据的维护,包括创建、修改、删除等操作。消息通信使用谷歌的双向流式Grpc。数据库使用postgres。

2025-02-24 18:55:56 177 2

原创 【Java 8】Lambda表达式介绍

Java 8 的 Lambda 表达式极大地简化了代码,使得函数式编程在 Java 中变得更加容易。通过 Lambda 表达式,你可以编写更简洁、更易读的代码,尤其是在处理集合、多线程和事件驱动编程时。

2025-02-24 09:38:16 816

原创 【并发编程】线程调度线程池

Java 中 ScheduledExecutorService接口定义调度线程池,newSingleThreadScheduledExecutor类实现了该接口,用于创建一个独立线程的调度线程池。它适合用于需要按计划执行任务的场景,并且任务之间不需要并行。

2025-02-23 11:59:06 485

原创 Spring监听器Listener

Spring 监听器(Listener)用于监听应用程序中的事件,并在事件发生时执行特定操作。常见的事件包括应用启动、关闭、请求处理等。Spring 提供了多种监听器接口,例如ApplicationListener、ServletRequestListener、HttpSessionListener等,开发者可以通过实现这些接口或者添加对应的注解来监听和处理事件。创建自定义事件类,自定义事件类需要继承ApplicationEvent。

2025-02-21 22:40:26 667

原创 BiConsumer用法详解

BiConsumer 是 Java 8 引入的一个函数式接口,函数式接口(Functional Interface)的概念被引入,这是为了支持Lambda表达式和方法的引用。函数式接口是仅包含一个抽象方法的接口,这样的接口可以被隐式地转换成函数式接口的实现,从而允许你直接传递代码作为参数,位于java.util.function 包中。BiConsumer它表示一个接受两个输入参数且不返回任何结果的操作。通常用于需要处理两个参数的场景,例如遍历 Map、批量处理数据等。

2025-02-21 18:12:34 341

原创 【Java基础】for循环语句

Java 中的for传统for循环:适用于需要精确控制循环变量的场景。增强型for循环:适用于遍历数组或集合。嵌套for循环:适用于处理多维数据或复杂逻辑。无限for循环:需要结合break语句退出。forEach方法:适用于集合和流,结合 Lambda 表达式使代码更简洁。

2025-02-18 15:39:05 358

原创 【并发编程】Java并发编程核心包

是 Java 并发编程的核心包,提供了丰富的工具和框架来支持多线程编程、并发任务执行、线程安全集合、同步机制等。

2025-02-17 18:01:44 1078

原创 [异步编程]Java异步编程Future与回调Callback

Future属于一个接口,位于java.util.concurrent包里面,Future接口定义了如下图方法//尝试取消任务执行//返回任务是否被取消状态//任务是否停止//返回任务结果,阻塞等待返回结果//可以设置等待超时时间/***/return "任务完成";});System.out.println("回调结果:" + result);});System.out.println("执行其他操作1");

2025-02-17 13:39:51 852

原创 本地编译使用ThingsBoard

ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。

2025-02-14 15:31:26 674

原创 中间件之--一文全解Kafka

本文详述了Kafka的概念、作为消息队列,介绍了消息队列的核心及优势,详细分析了Kafka是如何实现消息队列的原理,介绍Kafka架构设计,详细介绍Kafka如何单点以及分布式部署,Kafka如何实现高吞吐的性能,同时介绍Kafka在实战中如何应用。

2025-02-13 09:28:39 1182

原创 Java持久化之--Spring Data JPA

JPA(Java Persistence API)是Java实现ORM(Object Relational Mapping)技术提供的规范,主要用于将Java对象映射到关系数据库,便于持久化操作。Spring Data JPA是Spring 框架下的一个模块,是基于JPA规范实现的上层封装,旨在简化JPA的使用。

2025-02-12 15:37:57 941 2

原创 Mysql系列之--InnoDB存储引擎

InnoDB是MySQL默认的存储引擎,也是使用最广泛的存储引擎。用户使用客户端执行SQL命令请求时,MySQL服务器经历了连接管理、查询缓存、语法解析、查询优化、调用存储引擎。MySQL存储引擎负责数据的处理,内存中处理过后的数据刷入磁盘,或者磁盘数据写人内存。

2025-02-08 10:35:37 1044

原创 Mysql系列之--字符集

我们知道在计算机中只能存储二进制,那么如何将字符存储到计算机中,这个时候就需要将字符映射称为二进制,将所有字符映射为二进制就需要映射表。

2025-02-07 10:49:37 942

原创 Mysql系列之--重新认识Mysql

Mysql是一个被广泛使用的开源的关系型数据库管理系统(RDBMS),使用结构化查询语句SQL进行管理和操作数据。Mysql有客户端和服务端,客户端通过ip地址、端口、用户名、密码连接到服务端,然后使用SQL语句进行数据的增删改查操作。

2025-02-06 15:53:28 884

原创 Spring Boot整合MQTT

MQTT是基于代理的轻量级的消息发布订阅传输协议。

2025-02-06 10:41:19 581

原创 Python高性能web框架FastAPI

FastAPI是一个用于构建API的现代的、高性能的web框架,使用Python并且基于标准的Python类型提示。

2024-10-21 09:22:04 873 1

原创 一篇彻底学会Maven使用(超详细)

Maven译为专家、内行,是Apache组织下的一个开源项目。基于项目对象模型POM(Project Object Model),Maven进行项目的构建、文档管理。对java项目可以进行构建、依赖管理。

2023-09-26 10:22:15 1644

原创 最全Linux安装JDK1.8及Maven

Linux安装Jdk 1.8,以CentOS 7安装为例,安装好CentOS 7会自带Open JDK,所以首先卸载自带的OpenJDK,安装自己的JDK版本。

2023-09-23 22:49:06 4704

原创 一文掌握SourceTree使用(超级详细)

SourceTree是一款开源的代码仓库客户端工具,界面美观,操作简单,具有代码克隆、本地创建、提交代码、撤销修改,拉取(pull)代码、上传(push)代码、合并分支等操作。对于软件开发人员是一款必备的应用软件。

2023-09-22 23:29:21 28935 6

原创 吊打面试官之Java线程抽象队列同步器AQS

JDK 1.5之后提供了JUC线程同步包,AQS就是该包下面提供的一个线程同步框架,提供给用户在实现多线程并发编程时使用。AQS(Abstract Queued Synchronizer)抽象同步队列,既然是一个抽象类,那么就需要用户实现该类。JUC包下面,已经提供了一些通过AQS实现的同步工具栏,例如CountDownLatch(倒计数门闩)、ReentranLock(重入锁)、ReentranReadWriteLock、Semaphore(信号量)、SyclicBarrier(循环屏障)等。

2023-09-17 12:46:37 130

原创 吊打面试官之CAS机制

CAS(Compare And Swap)即比较并交换,CAS是一种乐观锁,即它比较乐观,它总是默认为不会出现线程并发,当出现以后再进行解决,而Java中Synchronized是一种悲观锁,它比较严谨,认为总是会出现并发情况,所有它直接就获取锁,不管有没有后面的线程竞争资源。Java的JUC包下面提供了atomic包,里面有很多原子操作类AtomicInteger、AtomitLong等。都是基于CAS机制实现。

2023-09-16 17:23:02 97

原创 一文彻底掌握Spring三级缓存

DefaultSingletonBeanRegistry类中定义了三级缓存。一级缓存:singletonObjects,保存完整的单例bean实例对象earlySingletonObjects,存放原始单例对象,即实例化后未进行属性赋值和初始化的bean对象三级缓存:singletonFactories,存放factoryObject,因为FactoryObject是函数式接口,所有三级缓存存放的是lambda表达式2、三级缓存的作用。

2023-08-24 13:45:22 1985

原创 Mysql系列之--索引

Mysql官方对于索引的解释,索引是帮助mysql更高效的利用数据的一种数据结构,类似于一本书,书的目录就是索引,能够快速的定位到内容索引的类型比较多,有聚集索引、组合索引、前缀索引、主键索引默认情况下,索引方法有BTree、HASH两者。

2023-07-21 15:51:36 101

原创 powerdesigner看这一篇就够了

首先创建一个物理模型:file->new modelModel name:物理模型名称,可以自定义命名,或者使用默认名称DBMS:物理模型所匹配的数据库点击确定,生成一个物理模型。

2023-05-09 12:57:03 4069 1

原创 树结构转规则

json串转为树,然后转为可以作为嵌套条件的查询规则

2023-04-24 11:07:04 203

原创 idea自动生成代码--看这篇就够了

idea自动生成代码

2022-11-16 14:03:24 11068 2

原创 一文看懂 win 10安装docker并部署spring boot项目

win 10操作系统安装docker 并部署spring boot项目

2022-11-09 11:50:43 2783

原创 中间件之--kafka

代表消息刚好被消费一次,不丢失也不重复消费。表示至少消费一次,假设consumer group收到消息后,将消息进行处理持久化入库,然后返回告诉partition,如果在返回过程,服务挂掉,那么partition一直收不到ack确认,partition会重新发送消息,消费者重新消费持久化入库,会造成消息的重复消费。,ISR是AR的一个子集,producer发送消息,首先到达leader副本,然后follower副本定时同步leader副本中的数据,两个副本有一定的延迟,“一定同步程度”可以通过参数配置。

2022-11-01 09:42:57 1083

原创 文件压缩下载,Feign文件流传递

文件下载,压缩,解压

2022-10-24 11:58:35 4247

原创 Mybatis-plus自动生成代码

1、添加依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.2</version></dependency><dependency> <groupId>org.freemarker</gr

2022-05-23 17:34:46 509

原创 Mysql执行计划-看这一篇就够了

Mysql执行计划

2022-03-10 15:41:51 11592

原创 下载安装redis 3.0

安装环节CentOS 71、安装gccyum install gcc2、下载redis 3.0 安装包wget http://download.redis.io/releases/redis-3.0.0.tar.gz3、解压redis-3.0.0.tar.gztar -xvfredis-3.0.0.tar.gz4、安装cd redis-3.0.0#如果不加参数,linux下会报错make MALLOC=libc5、启动redissrc/redis-s.

2020-11-25 15:00:10 1049

原创 Spring-cloud之Feign-源码分析

1、OpenFeign简介OpenFeign是一个声明式的网络请求客户端,OpenFeign会根据带有注解的方法信息构建出请求模板。1)OpenFeign配合注册中心(Eureka)一起使用,可以从注册中心获取服务提供方信息,例如IP地址和端口号;2)服务提供者,OpenFeign是RESTful网络请求客户端,对服务提供者没有任何影响,服务提供者只要对外提供网络接口即可,确保该服务提供者被注册到注册中心;@RestController@RequestMapping("/feign-

2020-11-23 11:34:35 139 1

原创 Eureka源码分析-Eureka Server

Eureka Server作为一个开箱即用的服务注册中心,提供了服务注册、接收心跳、服务剔除、服务下线、集群同步、或者注册表信息等功能,Eureka Server也是一个Eureka Client,在配置文件中如果不关闭客户端行为,也会进行注册拉取注册信息的操作1、服务实例信息InstanceRegistry是Eureka Server的核心接口,类图如下InstanceRegistry接口职责是内存中管理注册到Eureka Server的实例信息,该接口继承了LeaseManager(管理

2020-11-20 17:35:44 204

Java面试题.docx

Java面试题,Spring相关面试,吊打Spring相关面试。

2023-09-26

Java基础及高级学习笔记.zip

包含了Java学习过程中Java基础知识、高级知识、面试相关的知识,希望有兴趣的伙伴一起学习进步。

2023-09-26

Spring常见面试问题(超详细)

Spring常见面试问题,包括Spring的概念、核心知识,原理以及包括使用。一文读懂Spring,轻松搞定大厂面试,搞定面试官。

2023-08-27

apollo-master.zip

apollo管理配置中心部署包,configservice、adminservice、portal、数据库脚本

2019-12-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除