自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2.项目疑问

自定义异常类继承RuntimeException,属性是枚举类型,里面有各种异常信息。通过有参构造器构造。throw new CustomException(异常信息)

2023-11-17 10:32:16 204

原创 1.freemarker的入门

1.freemarker的介绍Freemarker是模板引擎,一种基于模板和要改变的数据,并用来生成输出文本html网页的通用工具。不是面向最终用户,而是一个java类库,程序员可以嵌入开发产品的组件。

2023-11-17 10:28:39 250

原创 02MyBatisPlus条件构造器,自定义SQL,Service接口

1.用法通过MP的Wrapper来构建复杂的where条件,然后自己定义SQL语句剩下的部分。2.案例将id在指定范围内的用户(1,2,4)的余额扣减指定值把mp构建好的条件传递到mapper,进行sql组装①基于Wrapper构建where条件@Test// 更新条件的ids// 更新的内容// 编写where更新条件// 用户自定义SQL②用户自定义mapper方法参数中用Param注解声明wrapper变量,必须是ew③编写sql语句,进行where拼接。

2023-11-11 12:56:44 838 1

原创 01MyBatisPlus入门案例,常见注解,常用配置

BaseMapper<T>接口自定义Mapper继承MyBatisPlus提供的BaseMapper<T>接口T泛型是操作的实体类的类型。

2023-11-08 21:31:25 211

原创 07_es分布式搜索引擎3

以上的不够智能,需要改进。拼音都是单个字或者全部一句话的首字母。

2023-11-06 12:41:57 139

原创 06_es分布式搜索引擎2

RestAPI中其中构建DSL是通过HighLevelRestClient中的resource()来实现的,其中包含了查询、排序、分页、高亮等所有功能。可以排序的字段:keyword类型,数值类型,地理坐标类型,日期类型。使用 function score query,可以修改文档的相关性算分(query score),根据新得到的算分排序。RestAPI中其中构建查询条件的核心部分是由一个名为QueryBuilders的工具类提供的,其中包含了各种查询方法。查询上海的酒店,品牌是皇冠假日或华美达。

2023-11-02 16:27:31 548

原创 05_es分布式搜索引擎1

开源的分布式搜索引擎,实现海量数据搜索,日志统计,分析,系统监控等功能。

2023-10-31 10:59:54 368

原创 04MQ消息队列

存放消息的队列,事件驱动架构的Broker。

2023-10-26 11:44:38 154

原创 03初始Docker

概念:镜像将应用程序以及系统函数库,环境,配置,依赖打包而成。结构:以mysql镜像为例子①基础镜像:mysql应用依赖的系统函数库,环境,配置,文件。②层:在基础镜像基础上添加安装包,依赖,配置,每次操作后都形成一个层。镜像是分层的③入口:启动的脚本语法概念:Dockerfile是一个文本文件,包含一个个指令,用指令说明执行的操作来构建镜像。每一个指令形成一层Layer3.案例:基于Ubuntu镜像构建一个新镜像,运行一个java项目Dockerfile# 指定基础镜像。

2023-10-24 10:42:15 615

原创 02Nacos和Feign及Gateway配置

①在orderservice导入依赖。

2023-10-19 12:13:30 256

原创 01认识微服务

①SpringCloud是使用最广泛的微服务框架②SpringCloud集成各种微服务组件,基于SpringBoot实现组件自动装配,提供良好的开箱即用。

2023-10-17 20:14:02 640

原创 07JVM_内存模型和CAS与原子类

1.介绍①CAS全称compare and swap比较并交换②当多个线程同时操作同一个资源,只能有一个线程操作成功。但是不会阻塞其他线程,其他线程只会收到操作失败的信号。

2023-09-15 16:05:59 232

原创 6.linux磁盘分区、挂载

整个文件系统包含一整套的文件和目录。且将一个分区和一个目录练习起来。这时载入的一个分区在一个目录下获得。①支持无限多个主分区(但操作系统可能限制,比如windows 下最多128 个分区)②最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )一个独立唯一的文件结构。Linux每个分区组成整个文件系统的一部分。①linux不管多少分区,分给哪个目录使用。②应用:查询/opt目录的占用磁盘的情况,深度为1。④MBR 最大只支持 2TB,但拥有最好的兼容性。③扩展分区要占一个主分区。

2023-09-14 14:56:30 268 1

原创 5.linux的定时任务调度crontab

①任务调度:系统在某个时间执行特定的命令和程序②任务调度分类:系统工作(病毒扫描),用户工作(备份mysql数据库)

2023-09-14 14:48:23 142

原创 06JVM_类加载器

当不满足开发时,可以自定义加载器。比如用网络加载Java类,为了保证传输中的安全性,采用了加密操作,那么以上3种加载器就无法加载这个类,这时候就需要自定义加载器。实现步骤①继承ClassLoader父类②遵从双亲委派模式,重写findClass方法③读取类文件的字节码④调用父类的defineClass方法加载类⑤使用者调用该类的加载器loadClass方法。

2023-09-13 15:00:53 194

原创 05JVM_类加载阶段

③外部通过访问Person类的Class对象获取Person的类数据结构。通过class类提供的接口,可以获得目标类所关联的.class文件的具体数据结构:方法、字段信息。①加载的类在JVM创建相应的类结构instanceKlass的元数据存储在方法区(jdk1.8在元空间内),但_java_mirror的java类镜像存储在堆中。该Class对象在加载类的过程创建的,每个类都有一个Class类型的对象。④类加载器的loadClass方法,只会加载,不会解析和初始化。得到类,字段,方法在内存中的地址。

2023-09-13 09:23:50 237

原创 4.linux的RPM和YUM

Yum能够从指定的服务器联网下载RPM包并且安装,自动处理依赖关系,一次性安装所有的软件包。

2023-09-12 15:21:04 125

原创 04JVM_语法糖

因为编译器在创建匿名对象时,将复制给匿名对象的value属性,x就不能发生变化了,值固定住了。默认构造器没有写任何的构造方法,但经过编译器编译成字节码过程中,会加上调用父类Object的无参构造方法。如果调用foo()无参方法,那么创建一个空的数组new String[]{},而不是传递null。调用foo(实参1,实参2)方法,编译器会根据实参的数量生成一个String数组。③MALE的ordinal()=0,FEMALE的ordinal()=1。Number m()调用子类的方法,同时符合重写的规则。

2023-09-12 10:37:10 276

原创 3.linux的进程和服务管理

1)在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。3)每个进程都可能以两种方式存在的。前台与后台4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

2023-09-12 09:24:38 235

原创 2.linux的组管理和权限管理

在linux中每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所有组,其他组的概念①所有者②所在组③其他组④改变用户所在组。

2023-09-11 14:45:32 226 1

原创 03JVM_类加载

①8~9字节,常量池计数器2个字节代表常量池的长度。4~7字节,表示类的版本00 34(16进制换算十进制是52),表示java8。字段表表示声明的变量,字段的名字,字段的类型是什么。存放字面量(文本字符串,final常量)和符号引用(包名,类名)②后面n个字节(1-常量池-1)就是常量池表,存放的是。②方法的访问修饰符,方法的返回值,方法参数信息。表示常量池的#3项,需要从常量池读取。表示常量池的#4项,需要从常量池读取。00 02:访问标志,查上表,私有的。符号引用(类,方法,字段描述符)

2023-09-11 09:35:21 454

原创 02JVM_垃圾回收GC

当垃圾回收准备回收一个对象时,如果发现他是虚引用,在垃圾回收后把这个虚引用加入引用队列,通知应用程序对象的回收情况。①要确定一个根对象GC Roots(肯定不会被垃圾回收的对象)作为起始节点,当垃圾回收前会对堆对象进行扫描,判断这些对象是否被根对象引用,如果没有被引用那么这个对象就可以垃圾回收。软引用(间接引用)是一些还有用但非必需的对象,当被软引用关联的对象,系统发生内存溢出钱,会把这些对象列进回收范围进行二次回收。在系统进行垃圾回收时,发现弱引用,不管系统堆空间是否充足,都会回收软引用关联的对象。

2023-09-05 20:52:12 660

原创 01JVM_内存结构

1.JVM的定义Java程序的运行环境,java二进制字节码的运行环境2.JVM的好处①一次编写,到处运行②自动内存管理,垃圾回收功能③数组下标越界检查④多态3.jvm,jre,jdk的比较3.常见的JVM主要学习的是HotSpot虚拟机4.jvm的学习路线①ClassLoader:java代码编译成二进制后,会经过类的加载器,这样才能加载到JVM运行②Method Area:类是放在方法区的③Heap:类的实例化对象放在堆区④当类调用方法时,会用到虚拟机栈,程序计数器,本地方法栈。

2023-08-31 16:17:31 348

原创 1.linux的常用命令

①linux是一款操作系统,免费开源,安全高效,稳定,能处理高并发②企业级的项目部署到linux/unix服务器运行。

2023-08-24 13:46:14 2916 1

原创 第24章:事务基础知识

在事务中某个操作失败,系统撤销当前的事务,返回事务之前的状态。事务B也过来更新,事务A覆盖了事务B更新的数据,这就是脏写。当一个事务进行多个操作,所有事务提交commit,修改永久保存下来。事务A在读取一条数据之后,事务B对该数据进行修改并提交,事务A再次读取数据,读取到的还是原来内容。事务的隔离性是指一个事务的执行不能被其他事务干扰,一个事务对数据进行操作,此时的数据对并发的其他事务是隔离的。有事务A对这行数据进行查询,此时事务B对这个数据进行了修改。如果一个事务B向数据库更新数据,事务还没提交或终止。

2023-07-12 21:19:11 485 1

原创 第23章:范式

关于数据表设计的基本原则,规则就是范式NF。

2023-07-10 10:38:39 97

原创 第22章:数据库的设计原则和日常SQL编写

⑾所有存储相同数据的 列名和列类型必须一致 (一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)。④INSERT INTO…③主键的名称以 pk_ 开头,唯一键以 uni_ 或 uk_ 开头,普通索引以 idx_开头,一律使用小写格式,以字段的名称或缩写作为后缀。①表和列的名称必须控制在32个字符以内,表名只能使用英文字母、数字和下划线,建议以英文字母开头。①库的名称必须控制在32个字符以内,只能使用英文字母、数字和下划线,建议以英文字母开头。

2023-07-09 20:49:06 789

原创 第21章:索引优化与查询优化

①覆盖索引是一种数据查询方式,不是索引的类型。索引列+主键包括在select到from中②通过索引值可以直接找到查询字段的值,不需要回表操作就是覆盖索引如:name,age查询张三的年龄:selectname, age查询的字段name和age都在联合索引idx_name_age的索引树中,这样查询就是覆盖索引查询。

2023-07-07 14:46:45 167

原创 第20章:MySQL索引失效案例

当前优化器会选择跟where条件匹配最高的idx_age_classid_name索引,直接查询出对应的主键值然后回表查询,此时的效率最高。所以部分索引失效,因为使用的部分索引,会查询多个主键值还需要回表继续判断,效率低。MySQL可以为多个字段创建联合索引,where条件要使用索引必须按照索引建立时的顺序,依次满足,一旦跳过某个字段,索引后面的字段无法使用。创建联合索引,把范围条件的字段放在索引的最后,idx_age_name_classId。只使用age_classId部分索引,name索引失效。

2023-06-25 14:38:27 1017

原创 Maven的简单介绍

1.Maven是什么①Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)②POM(Project Object Model):项目对象模型2.Maven的作用①项目构建:提供标准的、跨平台的自动化项目构建方式②依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间版本冲突的问题。③统一开发结构:提供标准的、统一的项目结构。

2023-06-19 21:09:33 1978

原创 第19章:索引的创建与设计原则

对某个字段进行去重,使用distinct,对这个字段创建索引,提升查询效率。如:学生表的学号是唯一的,为该字段创建唯一索引很快确定某个学生的信息,使用姓名查询会存在同名现象,降低查询速度。③优化器在优化查询的时候,通过索引进行评估,多个索引,增加优化器的执行计划时间,降低查询性能。表不要超过3张,对where条件创建索引,对连接字段创建索引类型要一致。数据类型越小,索引占用内存越少,一个数据页放下更多的记录,查询速度快。更新数据的时候,也要更新索引,索引提高了查询效率,但是降低了更新效率。

2023-06-15 11:47:30 1223

原创 2.链表的实现:带哨兵

3.按照索引查找节点,条件是一直找到最后为空 p!先找到index-1的节点,然后在后面插入,先让新节点连接。2.向链表尾部添加元素,先找最后一个节点,然后插入。直接调用index()方法,插入索引位置是0。头结点的序号是-1,所以i=-1开始。=null,节点全部读取。4.索引位置index插入一个值。1.带哨兵的单链表的定义。5.向链表头部添加节点。6.按照索引位置删除。

2023-06-14 22:10:10 134

原创 第18章:逻辑架构

①MySQL是典形的C/S架构,服务器端使用mysqld②客户端进程向服务器进程发送SQL语句,服务器进程在向客户端进程发送处理结果。查询请求演示图查询请求详细图①客户端访问MySQL服务器前,第一件事是建立TCP连接。②经过三次握手建立连接成功后,MySQL服务器对TCP传输的账号和密码做认证。如果错误,客户端结束执行。如果正确,从权限表查出此账号的权限。③TCP连接收到请求会在线程池分配一个线程专门与这个客户端交互。每一个连接从线程池获取线程,省去了创建和销毁线程的开销。①SQL接口。

2023-06-14 14:49:44 1118

原创 第12章:SpringMVC执行流程

根据返回的ModelAndView(此时会判断是否存在异常:如果存在异常,则执行HandlerExceptionResolver进行异常处理)选择一个适合的ViewResolver进行视图解析,根据Model和View,来渲染视图。2.DispatcherServlet对请求URL进行解析,得到请求资源标识符URI,判断请求URI对应的映射。: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。作用:统一处理请求和响应,整个流程的控制中心,由它调用其他组件处理用户的请求。

2023-06-07 15:35:16 793

原创 第11章:SpringMVC注解配置

①WebInit。

2023-06-07 15:24:37 733

原创 第10章:SpringMVC的异常

①控制器 [替换springMVC.xml]在springMVC.xml配置,算术异常。error.html页面。

2023-06-07 15:11:55 56

原创 第9章:SpringMVC的拦截器

的拦截器的preHandle()都会执行,postHandle()都不执行,返回false的拦截器之前的拦截器的afterComplation()会执行。:控制器方法执行之前执行preHandle()。preHandle()会按照配置的顺序执行,而postHandle()和afterComplation()会按照配置的反序执行。②postHandle:控制器方法执行之后执行postHandle()若某个拦截器的preHandle()返回了false。若每个拦截器的preHandle()都返回true。

2023-06-07 15:06:58 757

原创 第8章:SpringMVC的文件上传和下载

该控制器方法的返回值就是响应到浏览器的响应报文。使用ResponseEntity实现下载文件的功能。文件不管是上传还是下载,都是文件复制的过程。添加属性enctype=“multipart/form-data”,二进制上传。②如果只实现页面跳转,不进行业务逻辑处理。在SpringMVC.xml里面。② 在FileController.java类里面。使用ResponseEntity用于控制器方法的。在springMVC.xml配置。①file.html页面。在pom.xml添加依赖。

2023-06-06 15:18:10 369

原创 第7章:SpringMVC的HttpMessageConverter

RequestEntity封装请求报文的一种类型,需要在控制器方法形参中设置该类型的形参,当前请求的请求报文会赋值给该形参,可以通过getHeaders()获取请求头信息,通过getBody()获取请求体信息。@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当前请求的请求体就会为当前注解所标识的形参赋值。①HttpMessageConverter,报文信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文。④转换为json对象。

2023-06-06 15:06:34 348

原创 第6章SpringMVC的RESTful

REST:Representational State Transfer,表现层资源状态转移①资源将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念②资源的表述源的表述可以有多种格式,例如HTML/XML/JSON/纯文本/图片/视频/音频③状态转移状态转移说的是:在客户端和服务器端之间转移(transfer)代表资源状态的表述。通过转移和操作资源的表述,来间接实现操作资源的目的。

2023-06-06 14:54:40 359

空空如也

空空如也

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

TA关注的人

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