自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Elasticsearch7】9-面试题

系统中的数据, 随着业务的发展,时间的推移, 将会非常多, 而业务中往往采用模糊查询进行数据的搜索, 而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用 ES 做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的商品表中商品名,描述、价格还有 id 这些字段我们放入 ES 索引库里,可以提高查询速度。对于中文的字典树,每个节点的子节点用一个哈希表存储,这样就不用浪费太大的空间,而且查询速度上可以保留哈希的复杂度 O(1)。

2024-07-22 15:10:00 503

原创 【Elasticsearch7】8-优化

磁盘在现代服务器上通常都是瓶颈。Elasticsearch重度使用磁盘,你的磁盘能处理的吞吐量越大,你的节点就越稳定。

2024-07-21 21:36:04 1076

原创 【Elasticsearch7】7-集成

Spring Data是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA(Elasticsearch…)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD 外,还包括如分页、排序等一些常用的功能。

2024-07-21 21:04:47 770

原创 【Elasticsearch7】6-进阶

虽然Elasticsearch带有一些现成的分析器,然而在分析器上Elasticsearch真正的强大之处在于,你可以通过在一个适合你的特定数据的设置之中组合字符过滤器、分词器、词汇单元过滤器来创建自定义的分析器。字符过滤器字符过滤器用来整理一个尚未被分词的字符串。例如,如果我们的文本是HTML格式的,它会包含像或者这样的HTML标签,这些标签是我们不想索引的。

2024-07-21 14:13:43 1075

原创 【Elasticsearch7】5-环境

默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。而且,如果当前你的网络中没有运行任何 Elasticsearch 节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。

2024-07-17 14:55:09 1209

原创 【Elasticsearch7】4-Java API操作

ElasticSearch软件是由Java语言开发的,所以也可以通过Java API的方式对ElasticSearch服务进行访问。

2024-07-17 00:02:31 473

原创 【Elasticsearch7】3-基本操作

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。使用的是标准的 HTTP 方法,比如 GET、 PUT、 POST 和DELETE。简单的理解就是,如果想要访问互联网上的资源,就必须向资源所在的服务器发出请求,请求体中必须包含资源的网络路径, 以及对资源进行的操作(增删改查)。查找category为小米的文档,在 Postman 中,向 ES 服务器发 GET请求 : http://127.0.0.1:9200/shopping/_search?

2024-07-16 23:33:11 1075

原创 【Elasticsearch7】1-概述

The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎, 是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。

2024-07-15 11:48:55 492

原创 Vue1-Vue核心

Vue核心

2024-07-12 13:33:49 383

原创 Java34-注解

自定义注解单独存在是没有什么意义的,一般会跟反射结合起来使用,会用发射去解析注解。针对于注解,只要掌握会使用别人已经写好的注解即可。关于注解的解析,一般是在框架的底层已经写好了。

2024-07-04 20:12:56 423

原创 Java33-单元测试Junit

对部分代码进行测试。

2024-07-04 20:07:22 430

原创 Java32-xml

XML的全称为(EXtensible Markup Language),是一种可扩展的标记语言 标记语言: 通过标签来描述数据的一门语言(标签有时我们也将其称之为元素) 可扩展:标签的名字是可以自定义的,XML文件是由很多标签组成的,而标签名是可以自定义的xml解析就是从xml中获取到数据用来限定xml文件中可使用的标签以及属性定义一个元素的格式为:<!ELEMENT 元素名 元素类型> 简单元素:EMPTY: 表示标签体为空ANY: 表示标签体可以为空也可以不为空。

2024-07-04 19:59:34 712

原创 Java31-类加载器

如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式//static ClassLoader getSystemClassLoader() 获取系统类加载器。

2024-07-02 21:21:10 620

原创 Java30-log日志

跟输出语句一样,可以把程序在运行过程中的详细信息都打印在控制台上。利用log日志还可以把这些详细信息保存到文件和数据库中。

2024-07-02 21:12:02 160

原创 Java29-动态代理

无侵入式的给方法增强功能。

2024-07-02 21:08:27 127

原创 Java28-反射

是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。

2024-07-02 21:04:31 959

原创 Java27-网络编程

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。

2024-07-01 21:48:22 681

原创 Java26-多线程(2)

提到池,大家应该能想到的就是水池。水池就是一个容器,在该容器中存储了很多的水。那么什么是线程池呢?线程池也是可以看做成一个池子,在该池子中存储很多个线程。线程池存在的意义:系统创建一个线程的成本是比较高的,因为它涉及到与操作系统交互,当程序中需要创建大量生存期很短暂的线程时,频繁的创建和销毁线程对系统的资源消耗有可能大于业务处理是对系统资源的消耗,这样就有点"舍本逐末"了。针对这一种情况,为了提高性能,我们就可以采用线程池。

2024-07-01 21:18:54 1130

原创 Java25-多线程(1)

线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程:一类是生产者线程用于生产数据一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为。

2024-06-30 22:17:37 663

原创 Java24-IO(2)

缓冲流,也叫高效流,是对4个基本的FileXxx字节缓冲流字符缓冲流缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据对象的类型和对象中存储的数据。

2024-06-30 21:48:19 764

原创 Java23-IO(1)

一切皆为字节,一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。

2024-06-30 21:17:21 1369

原创 Java22-File类

类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

2024-06-30 16:36:33 597

原创 Java21-异常

我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。,例如年龄负数问题,考试成绩负数问题。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?在开发中根据自己业务的异常情况来定义异常类.自定义一个业务逻辑异常:。一个登陆异常类。自定义一个编译期异常: 自定义类 并继承于。

2024-06-30 16:26:49 870

原创 Java20-Stream流、方法引用

如果使用Lambda,那么根据“可推导就是可省略”的原则,无需指定参数类型,也无需指定的重载形式,它们都将被自动推导。使用说明:Lambda表达式被类的实例方法替代的时候,第一个参数作为调用者,后面的参数全部传递给该方法作为参数。使用说明:Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数。使用说明:Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数。使用说明:Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数。

2024-06-30 16:12:37 748

原创 Java19-集合

Collection集合是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现迭代器,集合的专用遍历方式Iterator iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到有序集合,这里的有序指的是存取顺序用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素。

2024-06-30 15:45:40 1006

原创 Java18-算法

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复的遍历过要排序的数列,一次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到最后面。当然,大家可以按照从大到小的方式进行排列。插入排序是一种最简单直观的排序算法,它的工作原理是通过创建有序序列和无序序列,然后再遍历无序序列得到里面每一个数字,把每一个数字插入到有序序列中正确的位置。插入排序在插入的时候,有优化算法,在遍历有序序列找正确位置时,可以采取二分查找。

2024-06-30 13:07:39 1034

原创 Java17-时间类、包装类

java.util.Date类 表示特定的瞬间,精确到毫秒。:从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。:将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

2024-06-30 12:54:26 934

原创 Java16-正则表达式

语法示例:"." : 匹配任何字符。"\d":任何数字[0-9]的简写;"\D":任何非数字[^0-9]的简写;"\s": 空白字符:[ \t\n\x0B\f\r] 的简写"\S": 非空白字符:[^\s] 的简写"\w":单词字符:[a-zA-Z_0-9]的简写"\W":非单词字符:[^\w]//.表示任意一个字符System.out.println("你".matches(".."));//falseSystem.out.println("你".matches("."));

2024-06-20 21:28:30 968

原创 Java15-API

定义:Math类所在包为java.lang包,因此在使用的时候不需要进行导包。并且Math类被final修饰了,因此该类是不能被继承的。Math类包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算。要想使用Math类我们就需要先创建该类的对象,那么创建对象就需要借助于构造方法。因此我们就需要首先查看一下API文档,看看API文档中针对Math类有没有提供对应的构造方法。

2024-06-19 22:16:04 845

原创 Elasticsearch-使用Logstash同步Mysql

将mysql-connect-java.jar放入mysql中,版本要和mysql一致,用来进行数据库连接。创建jdbc.sql,在文件中编写sql,这条sql会作为logstash执行sql进行同步。进入logstash的bin目录下,新建文件夹mysql,在这个文件夹中存放配置信息。使用elasticsearch-head查看,其安装本地下载zip压缩包解压就可以。在/usr/local/src/下新建logstash文件夹,解压。创建mysql.conf,注意使用UTF-8字符集编码,否则报错。

2024-06-17 23:05:28 606

原创 【Elasticsearch7】2-安装linux7.9.2

注:jdk版本为1.8。

2024-06-17 21:38:21 301

原创 Redis-分片机制

业务需要:由于单台redis内存容量是有限的,无法实现海量的数据实现缓存存储概念:由多个redis节点协助工作的机制就是redis的分片机制作用:为了实现redis扩容特点:分片机制把该机制中包含的多台redis缓存服务器当作一个整体,即看作一台redis服务器使用缺点:当redis分片中一个节点宕机,则可能会影响整个服务的运行,redis分片没有实现高可用。

2024-05-05 21:27:07 477 1

原创 Java14-抽象、接口、内部类

abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。//接口的定义格式:interface 接口名称{// 抽象方法// 接口的声明:interface// 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用implements关键字。将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。

2024-04-18 16:04:09 989 1

原创 云服务器部署Springboot项目

修改ip地址在控制台输入npm run build:prod会产生dist文件将dist文件中的内容移动至/usr/local/nginx/html目录下。

2024-04-18 09:11:59 829 2

原创 云服务器安装Mysql、MariaDB、Redis、tomcat、nginx

进入根目录cd /都在/usr/local/src文件夹上传压缩包rz 压缩包。

2024-04-14 18:50:43 2353 2

原创 Java13-多态、包、权限修饰符、final

多态: 是指同一行为,具有多个不同表现形式。包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。包名的命名规范包名一般是公司域名的倒写。例如:黑马是,包名就可以定义成com.itheima.技术名称。包名必须用”.“连接。包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。Java提供了final关键字,表示修饰的内容不可变。final: 不可改变,最终的含义。可以用于修饰类、方法和变量。类:被修饰的类,不能被继承。

2024-04-13 23:13:26 2129 1

原创 Java12-继承

我们发现,子类有参数构造方法只是初始化了自己对象中的成员变量score,而父类中的成员变量name和age依然是没有数据的,怎么解决这个问题呢,我们可以借助与super(...)去调用父类构造方法,以便初始化继承自父类对象的name和age。老师类,学生类,还有班主任类,实际上都是属于人类的,我们可以定义一个人类,把他们相同的属性和行为都定义在人类中,然后继承人类即可,子类特有的属性和行为就定义在子类中了。如果子类父类中出现重名的成员方法,则创建子类对象调用该方法的时候,子类对象会优先调用自己的方法。

2024-04-13 22:37:15 1099 1

原创 Java11-ArrayList

提供一种存储空间可变的存储模型,存储的数据容量可以发生改变//下面是空参,有参,get和set方法loop:System.out.println("-----------------欢迎来到学生管理系统-------------------");System.out.println("1:添加学生");System.out.println("2:删除学生");System.out.println("3:修改学生");System.out.println("4:查询学生");

2024-04-10 22:53:52 937 1

原创 Java10-API、String类、StringBuilder、StringJoiner

API (Application Programming Interface) :应用程序编程接口String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。当我们在拼接字符串和反转字符串的时候会使用到。

2024-04-09 16:40:54 642

原创 Java9-键盘录入

2.next(),nextInt(),nextDouble()在接收数据的时候,会遇到空格,回车,制表符其中一个就会停止接收数据。1.next(),nextInt(),nextDouble()在接收数据的时候,会遇到空格,回车,制表符其中一个就会停止接收数据。比如:键盘录入123,那么会把123当做int类型的整数返回。next()、nextInt()、nextDouble()这三个配套使用。当代码运行到第二行,会让我们键盘录入,此时录入123。而nextInt是遇到空格,回车,制表符都会停止。

2024-04-09 16:19:30 301

空空如也

空空如也

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

TA关注的人

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