- 博客(46)
- 收藏
- 关注
原创 Elasticsearch 的索引阻塞实现数据保护
接着,创建了一个更新索引设置的请求(UpdateSettingsRequest),并将索引的“index.blocks.write”属性设置为 true 以将其设置为只读。在Elasticsearch 中,索引阻塞(Index Freeze)是一种用于保护数据的机制,特别针对可写的 Elasticsearch 索引。这样,即便是经过认证的用户或者具有相应权限的用户,也无法修改该索引中的文档。通过这一机制,您可以确保特定索引中的数据不会受到误操作的影响,从而满足合规性要求,并提供长期数据保存的安全性。
2024-03-12 17:58:07
634
原创 MySQL事务:确保数据完整性与并发性的关键
揭秘MySQL事务:如何划重点解决数据混乱的问题?教科书般的稳定性:MySQL事务居然可以让数据停止摆烂?
2023-08-14 16:24:15
356
原创 建造者模式-简单介绍01
建造者模式(Builder Pattern)是一种创建型设计模式,其主要目的是将一个复杂对象的构建过程和其表示分离,使得同样的构建过程可以创建不同的表示。在该模式中,构建者对象负责构建对象的各个部分,而指挥者对象则负责统一构建流程并返回构建好的对象。通过建造者模式,我们可以在创建食品订单时,通过指挥者角色定义了一定的步骤和顺序,具体的建造者则负责创建订单对象的各个部分。具体建造者角色(ConcreteBuilder):实现建造者接口,实现各个部件的构建,并返回构建好的产品。
2023-06-20 11:43:44
514
原创 抽象工厂模式-简单介绍01
例如,假设我们需要创建一些不同的按钮,在 Windows 和 Mac 系统中,每个系统中的按钮的外观和行为都是不同的。我们可以使用抽象工厂模式来实现一个界面主题工厂,根据客户端要求的操作系统类型,创建相应的按钮。抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。这种模式属于对象创建型模式。在抽象工厂模式中,一个接口可以创建多个产品,抽象工厂模式将客户端代码从具体的产品类中解耦。
2023-06-20 11:42:50
282
原创 工厂方法模式-简单介绍01
在工厂方法模式中,创建对象的代码由一个称为“工厂”的对象负责,而不是由客户端直接创建。客户端只需要调用工厂的方法来创建对象,无需关心具体实现细节。工厂方法模式是一种创建型设计模式,它定义了一个接口,用于创建对象,但是由子类来决定该创建哪个类的实例。这个模式让一个类的实例化延迟到其子类。这个代码示例演示了工厂方法模式的使用,使得客户端代码不需要知道具体要创建哪个类的实例,而是由具体的工厂类来负责实例化。假设有一个披萨店需要提供各种口味的披萨。我们可以使用工厂方法模式来实现不同口味的披萨创建。
2023-06-20 11:41:24
187
原创 Java 23种设计模式
创建型模式主要用于处理对象的创建过程,包括对对象的实例化、创建和组装。结构型模式主要关注的是类和对象之间关系的组织方式,从而形成更大的结构。行为型模式主要关注对象之间的通讯和协作方式,以及对算法和责任的分配。以上是Java中常用的23种设计模式,我们可以根据具体需求选择合适的设计模式来解决问题。Java中常用的23种设计模式可以分为三大类,即创建型模式、结构型模式和行为型模式。
2023-06-20 11:36:20
224
原创 Java 基础面试题01
Java 是一种面向对象的编程语言,Java 中的所有元素都是对象,而对象可以调用其它对象的属性和方法,这也是 Java 中一个对象可以与另一个对象进行交互的重要基础。在上面这个示例中,我们定义了一个 Box 类,里面有一个用泛型声明的类型参数 T,在 add 方法中可以把任意类型的对象加入到 Box 中,在 get 方法中可以获取存储在 Box 中的对象,这里我们只允许存储字符串类型的对象。抽象类不能实例化,而接口定义的是一套抽象方法的集合,它定义了一个类应该具有的方法,但是并不关注这些方法的具体实现。
2023-06-20 11:23:50
1150
原创 Spring Boot starter 分析
Spring Boot starterSpring boot 在配置上相比spring要简单许多, 其核心在于spring-boot-starter, 在使用spring boot来搭建一个项目时, 只需要引入官方提供的starter, 就可以直接使用, 免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置。Spring官方提供了很多starter,第三方也可以定义starter。为了加以区分,starter从名称上进行了如下规范:Spring官方提供的starter名称为
2022-01-22 16:29:00
421
9
原创 消息中间件(一)五大MQ比较
MQ技术众多, 包含RocketMQ、KAFKA、RabbitMQ、ActiveMQ、ZeroMQ等。消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。技术比对对比点ActiveMQRabbitMQRocketMQZeroMQKafka成熟度成熟
2022-01-04 10:42:27
1919
原创 [深度讲解]JVM调优\Tomcat调优
性能调优1、代码优化所谓代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含义是最终生成的目标代码(运行时间更短、占用空间更小),时空效率优化。原则上,优化可以在编译的各个阶段进行,但最主要的一类是对中间代码进行优化,这类优化不依赖于具体的计算机。在不改变程序运行效果的前提下,对被编译的程序进行等价变换,使之能生成更加高效的目标代码。1.0、编码规范避免随意使用静态变量当某个对象被定义为static变量所引用,那么gc
2021-08-23 10:40:36
1783
65
原创 jmap的使用以及内存溢出分析
jmap的使用以及内存溢出分析jmap(java内存映像工具)jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。还有几种方式获取dump文件:使用JVM参数选项-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:HeapDumpPath=path 设置dump文件路径(有时候dump文件比较大的时候可能无法自动导出,这时候就需要使用jmap -dump手动导
2021-08-19 14:53:59
8174
56
原创 JVM-内存模型
JVM-内存模型Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。根据java虚拟机规范,java虚拟机管理的内存将分为下面五大区域。程序计数器内存空间小,线程私有。字节码解释器工作是通过改变这个计数器的值来选取下一条需要执行的指令代码、分支、循环、跳转、异常处理线程恢复等基础功能都需要依赖计数器完成。(如果线程正在执行一个Java方法,从这个计数
2021-08-19 11:17:49
319
原创 JVM参数
JVM-参数jvm的参数类型分为三类:标准参数(-help 、-version)-X参数 (-Xint、-Xcomp)非标准参数-XX参数(-XX:newSize、-XX:+UseSerialGC)使用率较高标准参数所有的JVM实现都必须实现这些参数的功能,而且向后兼容。命令 java -help可以列出java 应用启动时标准选项(不同的JVM实现是不同的)。[root@localhost ~]# java -help用法: java [-options] class [args...
2021-08-09 15:57:02
659
原创 数组(SE-05)
数组数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。数组的定义1、数据类型[] 数组名int[] arr; double[] arr; char[] arr;2、数据类型 数
2021-07-02 17:31:01
262
原创 SpringBoot快速入门
SpringBoot概述Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,可以“直接运行”这些应用程序. SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率.特征创建独立的 Spring 应用程序直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件)提供自以为是的“入门”依赖项以简化构建配置自动配置
2021-07-02 15:16:33
117
原创 Java语法(SE-04)
类型转换Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。隐式转换一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的。double num = 100; // 将int类型的100直接赋值给double类型System.out.println(num); // 输出100.0类型从小到大关系图整数默认是int类型,
2021-07-01 16:46:53
125
原创 Java语法(SE-03)
注释注释是对代码的解释和说明文字,可以提高程序的可读性,在程序中添加必要的注释文字十分重要。Java中的注释分为三种:单行注释。单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。// 这是单行注释文字多行注释。多行注释的格式是使用/* 和 */将一段较长的注释括起来。/*这是多行注释文字这是多行注释文字这是多行注释文字*/注意:多行注释不能嵌套使用。关键字关键字是指被Java语言赋予了特殊含义的单词。关键字是java语言中一些被赋予特定意义的一些单词,不可以把它
2021-07-01 16:17:12
105
原创 第一个Java程序—HelloWorld(SE-02)
Java程序开发运行流程编写Java程序,需要三个步骤:编写程序,编译程序,运行程序。编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。字节码文件字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二
2021-07-01 15:55:41
119
原创 Java语言(SE-01)
Java语言背景Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言Java之父:詹姆斯·高斯林(James Gosling)2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.comjava语言的三个版本:JavaSE: Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础JavaME: Java 语言的(小型版),用于嵌入式消费类电子设备Java
2021-07-01 15:35:38
960
MAT工具让你像专家一样分析和解决Java内存问题
2023-08-14
jad158gwin(class文件转java文件)
2023-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人