自定义博客皮肤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的博客

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

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

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

HashMap底层实现原理详解

2022-11-22 16:28:34 725

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

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

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

原创 Docker常用命令操作详解

本文介绍了Docker容器生命周期管理的关键命令和操作。主要内容包括:1)核心概念区分镜像(只读模板)和容器(运行实例);2)容器基本操作:创建/启动/停止/删除(docker run/start/stop/rm);3)信息查询:查看运行状态(docker ps)、日志(docker logs)、资源使用(docker stats)等;4)容器内操作:执行命令(docker exec)、文件复制(docker cp);5)实用技巧:一键清理、修改资源限制等。文章通过具体命令示例展示了从创建到维护容器的完整工

2025-09-08 11:20:30 283

原创 k8s常用命令详解

Kubernetes常用命令摘要 本文介绍了Kubernetes的核心资源类型和常用命令,包括: 资源类型:Pod、Service、Deployment等核心资源的缩写和全称对应关系。 基本语法:kubectl [command] [TYPE] [NAME] [flags]的标准命令格式。 集群管理: 查看集群信息:kubectl cluster-info 查看节点状态:kubectl get nodes [-o wide] 节点详细信息:kubectl describe node <node-nam

2025-09-08 10:48:29 568

原创 详细解读Docker

摘要: Docker是一种轻量级容器化平台,通过将应用及其依赖打包为可移植的容器,实现高效、一致的跨环境部署。其核心包括容器(隔离的进程单元)、镜像(分层构建的静态模板)和仓库(镜像存储分发平台)。相比传统虚拟机,Docker启动更快、资源占用更低,但隔离性较弱。典型应用场景涵盖开发测试、微服务部署及PaaS/SaaS搭建。 关键特性: 容器化技术:环境隔离、快速启动、资源限制。 镜像管理:分层存储、版本控制、共享分发(如Docker Hub)。 Dockerfile:自动化构建镜像,支持多阶段构建、非ro

2025-09-05 16:38:06 1257

原创 Docker多阶段构建Maven项目

Docker多阶段构建优化Java应用部署 本文详细介绍了一个基于Docker多阶段构建的Java应用部署方案。第一阶段使用maven:3.6.3-jdk-11-slim镜像完成代码编译和打包,第二阶段采用更轻量的openjdk:11-jre-slim镜像运行应用,通过COPY --from指令仅复制最终构建产物。这种构建方式显著减小了运行时镜像体积,提高了安全性。文章详细解析了每个Docker指令的执行过程,包括镜像拉取、容器创建、文件复制、依赖下载等关键步骤,并特别强调了Docker构建缓存的优化机制。

2025-09-04 16:51:43 656

原创 [Python]Web项目构建镜像

这是一个高效的两阶段Dockerfile构建方案,专为Python应用设计。第一阶段使用python:3.11-builder镜像创建虚拟环境并安装依赖,第二阶段基于轻量级python:3.11-slim镜像复制虚拟环境和应用代码。关键优化包括:使用多阶段构建减小镜像体积;创建专用用户提升安全性;通过虚拟环境隔离依赖;EXPOSE声明8000端口;最后通过uvicorn启动FastAPI应用。这种构建方式兼顾了开发便利性和生产环境的最佳实践。

2025-08-27 16:49:47 1044

原创 [FastAPI]模式设计总结

本文介绍了基于SQLAlchemy和Pydantic的Python应用架构设计。主要内容包括:1)架构采用请求→路由→服务层→数据访问层→数据库的分层结构;2)SQLAlchemy Models用于定义数据库表结构和关系;3)Pydantic Schemas负责数据验证、序列化和API契约;4)两者分离的优势在于避免数据库污染API、灵活验证规则和不同输入输出格式;5)展示了完整的项目结构、CRUD操作和路由处理示例;6)详细介绍了Pydantic的核心特性,包括数据验证、类型转换、序列化和模型配置。这种设

2025-08-26 11:44:17 888

原创 [Python]库Pandas应用总结

pandas 是 Python 中最重要、最流行的数据处理和分析库。它提供了高效、灵活的数据结构,专门用于处理结构化数据(表格数据、时间序列等)

2025-08-25 17:11:29 242

原创 Python基本语法总结

本文介绍了Python面向对象编程中类的核心概念与应用。主要内容包括:1)类的基本定义与构造方法;2)类属性与实例属性的区别;3)继承机制(单继承与多继承);4)封装与访问控制;5)类方法与静态方法;6)抽象基类应用。文章还详细解析了方法类型(实例方法、类方法、静态方法)、参数传递方式以及特殊方法(如运算符重载、构造/析构方法)。最后通过学生管理系统等实例,展示了如何在实际开发中运用这些面向对象特性。全文系统性地介绍了Python类与方法的完整知识体系,为掌握面向对象编程提供了实用指南。

2025-08-20 15:52:02 310

原创 史上最全Java代理与反射总结

JDK 动态代理基于接口,通过Proxy实现。代理类在运行时生成,继承Proxy并实现目标接口。方法调用被拦截,由处理增强逻辑。适用于 AOP、RPC、ORM 等场景,是 Java 高级编程的核心技术之一。

2025-04-25 11:17:12 665

原创 集合常用Stream操作

Java常用集合Stream操作介绍

2025-04-15 15:01:55 375

原创 一文彻底了解ConcurrentHashMap

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

2025-04-09 22:59:01 1138

原创 Java函数式编程

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

2025-03-28 16:06:44 1452

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

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

2025-02-26 22:17:08 919

原创 Fork/Join框架介绍

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

2025-02-26 00:46:38 977

原创 ThingsBoard Edge与云端数据交互

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

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

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

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

2025-02-24 09:38:16 1079

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

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

2025-02-23 11:59:06 652

原创 Spring监听器Listener

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

2025-02-21 22:40:26 1046

原创 BiConsumer用法详解

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

2025-02-21 18:12:34 985

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

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

2025-02-18 15:39:05 602

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

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

2025-02-17 18:01:44 1206

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

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

2025-02-17 13:39:51 1028

原创 本地编译使用ThingsBoard

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

2025-02-14 15:31:26 1153

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

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

2025-02-13 09:28:39 1425

原创 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 1051 2

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

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

2025-02-08 10:35:37 1269

原创 Mysql系列之--字符集

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

2025-02-07 10:49:37 1204

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

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

2025-02-06 15:53:28 932

原创 Spring Boot整合MQTT

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

2025-02-06 10:41:19 799

原创 Python高性能web框架FastAPI

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

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

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

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

2023-09-26 10:22:15 1933

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

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

2023-09-23 22:49:06 5004

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

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

2023-09-22 23:29:21 31234 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 181

原创 吊打面试官之CAS机制

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

2023-09-16 17:23:02 163

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

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

2023-08-24 13:45:22 2332

原创 Mysql系列之--索引

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

2023-07-21 15:51:36 153

原创 powerdesigner看这一篇就够了

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

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

达梦数据库arm64架构驱动dmPython-2.5.26-cp36-cp36m-linux-aarch64.whl

python3.6.5,aarch64架构连接达梦数据库驱动安装包

2025-12-15

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关注的人

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