自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 收藏
  • 关注

原创 从零开始学习JVM(八)- 垃圾回收相关概念与垃圾回收算法

Java程序中,垃圾是指运行程序中没有任何指针指向的对象,这个对象就是需要被回收的对象。如果不及时对内存中的对象进行清理,那么这些垃圾对象所占的内存空间会一直保留到程序运行结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。

2024-09-07 23:03:49 909

原创 从零开始学习JVM(七)- StringTable字符串常量池

String应该是Java使用最多的类吧,很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事,而且我们又经常使用相同的String对象,那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在,StringTable叫做字符串常量池,用于存放字符串常量,这样当我们使用相同的字符串对象时,就可以直接从StringTable中获取而不用重新创建对象。

2024-09-07 21:23:57 1134

原创 Elasticsearch 7.x入门学习-Java API操作

备注:9200 端口为 Elasticsearch 的 Web 通信端口,localhost 为启动 ES 服务的主机名。代码地址:https://github.com/JustCoding-Hai/es-demo。创建连接,创建数据添加到文档上,没有索引的话会自动创建索引并添加文档。通过 Java API 客户端对象对 ES 索引进行操作。在idea开发工具中创建Maven项目。删除索引执行完成后再次查看索引会报错。批量插入文档后再批量删除文档。查询所有索引数据,代码示例。根据id查询文档示例。

2024-07-21 12:54:53 830

原创 Elasticsearch 7.x入门学习-基础操作

Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。进行全文检索需要扫描整个表,如果数据量大的话即使对 SQL 的语法优化,也收效甚微。建立了索引,但是维护起来也很麻烦,对于 insert 和 update 操作都会重新构建索引。

2024-06-01 23:49:37 1116

原创 从零开始学习JVM(六)-直接内存和执行引擎

直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存空间。执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式

2023-06-03 17:07:56 703

原创 从零开始学习JVM(五)-运行时数据区的方法区

方法区与Java堆一样,是各个线程共享的内存区域。方法区在JVM启动的时候被创建,并且它的实际物理内存空间中和Java堆区一样都是可以不连续的。方法区的大小跟堆空间一样,可以选择固定大小或者可扩展。当关闭JVM就会释放这个区域的内存。

2023-05-18 23:08:05 911

原创 从零开始学习JVM(四)-运行时数据区中的堆

《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。数组和对象可能永远不会存储在栈上。因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。堆是GC(Garbage Collectioni,垃圾收集器)执行垃圾回收的重点区域。在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除。堆是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。

2023-05-16 00:17:46 457

原创 从零开始学习JVM(三)--运行时数据区(程序计数器,虚拟机栈,本地方法栈)

JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。

2023-05-14 19:58:47 426

原创 从零开始学习JVM(二)--类加载子系统

JVM中的类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。类加载器只负责class文件的加载,而它是否可以运行是由执行引擎决定的

2023-05-13 20:08:18 541 1

原创 从零开始学习JVM(一)--初识Java虚拟机

初步认识虚拟机与Java虚拟机

2023-05-12 00:25:11 427 1

原创 Windows系统的JDK安装与配置

注意用户变量和系统变量中都有Path环境变量。两者的区别就是:用户变量只针对当前登录的用户,而系统变量对所有用户都适用。所以修改Path环境变量时,建议直接修改系统变量中的Path。使用win+R快捷键,打开运行窗口,输入cmd,进入cmd程序窗口,使用命令java -version 查看java版本,验证是否配置成功。在系统变量下:新建一个名为“JAVA_HOME”的环境变量。这个变量值就是JDK8的安装路径。跟着安装步骤安装设置好JDK和JRE的路径,建议JDK和JRE的路径在同一个目录下,方便查找。

2023-05-03 16:41:34 1984 1

原创 Jackson自定义序列化注解解决JS接收数值精度丢失问题

Jackson自定义序列化注解解决JS接收数值精度丢失问题

2022-12-24 23:39:43 822

原创 Spring Cloud框架学习-Spring Cloud Config + Bus 实现配置中心

Spring Cloud Config 是一个分布式系统配置管理的解决方案。Spring Cloud Config分为服务端和客户端。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口。而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。

2022-10-29 12:55:26 1413 1

原创 Spring Boot+RabbitMQ 基于死信队列和插件实现延迟队列详解

延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。

2022-10-07 22:56:50 2169

原创 Spring Cloud框架学习-Spring Cloud Zuul

由于每一个微服务的地址都有可能发生变化,无法直接对外公布这些服务地址,基于安全以及高内聚低耦合等设计,我们有必要将内部系统和外部系统做一个切割。需要一个专门用来处理外部请求的组件,就是服务网关。API网关的的定义类似于面向对象设计模式中的Facade模式,像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来调度和过滤。API网关需要实现请求路由,负载均衡,校验过滤,请求转发时的熔断机制,服务的聚合等功能。

2022-10-06 17:23:24 417

原创 MySQL主从复制详解

随着业务流量的增长,一台MySQL数据库服务器已经满足不了需求了,会负载过重,容易出现宕机的情况,导致数据的丢失。这个时候就需要实现数据库的负载均衡和读写分离,来减少单台MySQL数据库服务器的压力。我们可以通过使用MySQL内置的复制功能来搭建MySQL一主一从或一主多从的集群环境。主服务器只负责写,而从服务器只负责读,从而减少单台MySQL数据库服务器的压力。

2022-09-29 00:37:31 6465

原创 MySQL锁机制详解-表锁与行锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源,如CPU、RAM、I/O等的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题。此外,锁冲突也是影响数据库并发访问性能的一个重要因素。

2022-09-04 23:43:33 13690 2

原创 详解MySQL的逻辑架构和SQL语句执行流程

详解MySQL的逻辑架构(连接层,服务层,引擎层,存储层)

2022-08-29 00:35:06 2422

原创 Spring Boot多数据源配置并通过注解实现动态切换数据源

Spring Boot提供了AbstractRoutingDataSource 根据用户定义的规则选择使用的数据源,这样我们可以在每次数据库操作前设置使用的数据源,实现可动态路由的数据源,从而实现读写分离的功能。

2022-07-31 19:03:41 5977 6

原创 MongoDB的安全认证详解

默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端的请求进行用户验证,这是非常危险的。

2022-07-25 01:24:52 7195

原创 Spring Boot基于注解方式处理接口数据脱敏

Spring Boot基于注解方式处理接口数据脱敏

2022-07-21 00:27:32 1565

原创 MongoDB分片集群的搭建和使用

分片(sharding)是一种跨多台机器分布数据的方法, MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。............

2022-07-17 21:00:38 1209 2

原创 Spring Cloud框架学习-Spring Cloud Gateway

Spring Cloud Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。..................

2022-07-06 00:41:53 1341 2

原创 Spring Cloud框架学习-Spring Cloud OpenFeign

Spring Cloud OpenFeign 是声明式的服务调用组件,它整合了 Ribbon 和 Hystrix,拥有负载均衡和服务容错的功能。一开始这个组件不叫这个名字,一开始就叫 Feign,但是 Netflix 中的组件现在已经停止开源工作,OpenFeign 是 Spring Cloud 团队在 Netflix Feign 的基础上开发出来的声明式服务调用组件。...

2022-07-02 23:33:52 1267

原创 Spring Cloud框架学习-Spring Cloud Consul

Consul 是 HashiCorp 公司推出来的开源产品。主要提供了:服务发现、服务隔离、服务配置等功能。相比于 其他注册中心组件Eureka 和Zookeeper,Consul 配置更加一站式,因为它内置了很多微服务常见的功能:服务发现与注册、分布式一致性协议实现、健康检查、键值对存储、多数据中心等,我们不再需要借助第三方组件来实现这些功能。...............

2022-06-28 00:18:23 750

原创 Spring Cloud框架学习-Spring Cloud Sleuth

Spring Cloud Sleuth 是 Spring Cloud 提供的一套分布式链路追踪系统。它可以直观地展示出一次请求的调用过程。

2022-06-26 16:48:44 723

原创 Spring Cloud框架学习-Spring Cloud Hystrix

Spring Cloud Hystrix 是Spring Cloud Netflix 子项目的核心组件之一,Hystrix 叫做断路器/熔断器。Hystrix具备服务降级、服务熔断、线程隔离、请求缓存、请求合并及服务监控等强大功能。

2022-06-23 10:16:20 186

原创 Long类型字段前端获取精度丢失的解决方案

使用Jackson的@JsonSerialize注解解决Long类型字段前端获取精度丢失

2022-06-22 23:35:00 4041

原创 vue集成vis-network实现拓扑图

vue集成vis-network实现拓扑图

2022-06-22 11:55:59 2282

原创 MongoDB副本集详解与搭建

MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高可用性,是所有生产部署的基础。也可以说,副本集类似于有自动故障恢复功能的主从集群。

2022-06-05 23:33:22 4902 1

原创 Spring Cloud框架学习-Spring Cloud Stream

Spring Cloud Stream 用来构建消息驱动的微服务。Spring Cloud Stream 中,提供了一个微服务和消息中间件之间的一个粘合剂,这个粘合剂叫做Binder,Binder 负责与消息中间件进行交互。而我们开发者则通过 inputs 或者 outputs 这样的消息通道与Binder 进行交互。

2022-03-08 22:55:33 2347

原创 Spring Cloud框架学习-注册中心Spring Cloud Eureka

在传统的RPC框架中,管理每个服务与服务之间依赖关系比较复杂,而使用注册中心可以很好的实现服务治理。Eureka注册中心可以管理服务之间的依赖关系,实现服务的注册与发现,服务间的调用,负载均衡。...

2022-02-27 13:47:19 537

原创 软件设计师考试-程序设计语言与语言处理程序基础

软件设计师考试-程序设计语言与语言处理程序基础

2022-01-01 16:39:09 2171

原创 软件设计师考试-计算机网络与网络安全部分的笔记

软件设计师考试-计算机网络与网络安全部分的笔记

2022-01-01 14:09:19 7468 2

原创 软件设计师考试-法律法规与多媒体部分的笔记

软件设计师考试-法律法规与多媒体部分的笔记

2021-12-27 22:53:54 822

原创 软件设计师考试-数据库部分的笔记

软件设计师考试-数据库部分的笔记

2021-12-27 00:01:59 1843

原创 快速入门RabbitMQ

RabbitMQ基于AMQP协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。

2021-12-19 23:38:47 1922

原创 阿里云OSS存储入门学习

阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。

2021-12-05 19:06:05 1532

原创 Docker网络详解与实战

Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace、Veth设备对、Iptables/Netfilter、网桥、路由等。本文结合实际使用入门学习Docker网络

2021-12-05 17:43:24 6205 8

转载 日志打印的15个好建议

前言大家好,我是捡田螺的小男孩。日志是快速定位问题的好帮手,是撕逼和甩锅的利器!打印好日志非常重要。今天我们来聊聊日志打印的15个好建议~公众号:捡田螺的小男孩1. 选择恰当的日志级别常见的日志级别有5种,分别是error、warn、info、debug、trace。日常开发中,我们需要选择恰当的日志级别,不要反手就是打印info哈~error:错误日志,指比较严重的错误,对正常业务有影响,需要运维配置监控的;warn:警告日志,一般的错误,对业务影响不大,但是需要开发关注;info:

2021-12-05 12:12:27 662

空空如也

空空如也

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

TA关注的人

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