自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (10)
  • 收藏
  • 关注

原创 KMP算法缺陷

但是对于只由两个字母组成的字符串,KMP算法的效率是最差的,因为在构造next数组的过程中,可能会出现大量的重复计算。当然,这种情况下的比较次数可能不是最少的,但是从整体来看,KMP 算法是一种比较高效的字符串匹配算法。如果当前失配元素和 next 数组下标对应子串元素一样,确实会有一些重复的比较,但这样的情况出现的概率并不高,而且在实际情况中对算法效率的影响不大,因此不会影响 KMP 算法的正确性和实用性。在使用KMP算法的时候,有时会发生失配元素和next下标子串对应元素会相同,这种情况相当于–白做。

2023-04-02 12:37:34 420

原创 el-table的show-overflow-tooltip内容过多,自定义样式

【代码】el-table的show-overflow-tooltip内容过多,自定义样式。

2023-03-17 09:46:53 2371

原创 设计模式之组合模式

适用场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式对部分对象和整体对象进行管理。基本要素使用示例具体功能:输出当前部门及子部门的所有名称。以学校为例,一个学校有多个学院,一个学院里有多个学科抽象构件叶子构件容器构件演示输出结果1:输出结果2:...

2022-06-04 17:33:49 112

原创 双重锁检查机制的单例模式为什么要使用volatile关键字?

为什么要使用volatile 修饰instance?主要在于instance = new Singleton()这句,这并非是一个原子操作,事实上在 JVM 中这句话大概做了下面 3 件事情:给 instance 分配内存调用 Singleton 的构造函数来初始化成员变量将instance对象指向分配的内存空间(执行完这步 instance 就为非 null 了)。但是在 JVM 的即时编译器中存在指令重排序的优化。也就是说上面的第二步和第三步的顺序是不能保证的,最终的执行顺序可能是 1-2-3 也可能是

2022-06-02 20:01:27 148

原创 Spring中的IOC功能

文章目录先看这部分1. Spring简介1.1 Spring框架优点1.2 Spring体系结构2. 核心功能IOC2.1 IOC简介2.2 IOC创建对象2.2.1 单例模式对象2.2.2 多例模式对象2.3 获取容器信息2.3.1 对象数量2.3.2 对象名称2.4 基于XML的DI2.4.1 set注入2.4.2 构造注入2.4.3 引用类型自动注入byNamebyType2.4.4 多个XML文件创建2.5 基于注解的DI2.5.1 组件扫描器2.5.2 @Component@Repository@

2021-11-03 09:29:12 1116

原创 Mybatis学习笔记

文章目录Mybatis1. 框架概述1.1 三层架构1.2 框架概念1.3 Mybatis简介2. 分析JDBC缺点3. 实现步骤3.1 加入依赖3.2 创建数据实体类3.3 创建dao接口3.4 创建sql映射文件3.5 创建jdbc配置文件3.5 创建主配置文件3.6 访问数据库4. 实现类介绍5. 获取session封装6. 动态代理实现类7. 深入理解参数7.1 传入单个简单参数7.2 传入多个简单参数7.2.1 使用注解(重要)7.2.2 封装参数(重要)7.2.3 指定顺序7.2.4 封装map

2021-10-15 20:34:01 92

原创 Mybatis中属性名和字段名可不一致(使用resultType)

文章目录只有大小写不一致两者等同,setter方法名任意两者不同,setter方法名任意两者不同,setter方法名(set+字段名等同形式)两者不同,setter方法名(字段名等同形式)总结关于Mybatis中属性名和字段名可不一致的问题在偶然写代码的过程中发现,在不使用resultMap以及字段名重写的情况下,使用resultType网上大多数博客写的是使用resultType,如果返回的是一个封装的对象,那么该对象的属性名和数据库表中的字段名相同其实不然,以下我对在属性名和字段名不一致的时候,

2021-10-09 11:39:26 1279

原创 关于Servlet对象的生命周期

用户在浏览器输入url:http://localhost:8080/taobao/searchweb容器截取请求路径:/taobao/searchweb容器在容器上下文中寻找请求路径 /taobao/search 对应的Servlet对象若没有找到对应的Servlet对象:1 )通过web.xml文件中相关的配置信息,得到请求路径 /search 对应的Servlet完整类名2 )通过反射机制,调用Servlet类的无参数构造方法完成Servlet对象的实例化3 )web容器调..

2021-09-04 10:51:30 61

原创 intellij idea在原java项目使用Tomcat部署项目

1. 在项目设置中,选择模块添加web2. 导入相关的jar包3. 添加本地的tomcat4. 在WEB-INF中新建两个文件夹classes、lib,并修改编译后class文件的存放位置5. 添加Aircrafts6. tomcat部署项目...

2021-09-03 20:42:48 177 1

原创 jQuery

1. 概述jQuery就是一个JavaScript库1.1 优点1.2 引入jQuery进入jQuery官网点击DownLoad,选择其中一个,复制粘贴到新的JS文件在需要使用的html文件中引入该js文件即可至此jQuery引入已经完成,接下来便是对jQuery的使用了1.3 顶级对象$$(function() { })// 等同于jQuery(function() { })1.4 DOM和jQuery对象// 1.DOM对象:用原生j

2021-09-01 11:09:17 124

原创 JVM垃圾收集算法

垃圾收集算法垃圾收集算法可以划分为**“引用计数式垃圾收集”和“追踪式垃圾收集”,或者说“直接垃圾收集”和“间接垃圾收集”**分代收集理论目前商业主流的垃圾收集器,大多数都遵循了“分代收集”的理论进行设计,它建立在两个分代假说上:弱分代假说绝大多数对象是朝生夕死的强分代假说熬过越多次垃圾收集过程的对象就越难以消亡这两个分代假说共同奠定了多数垃圾收集器一致的设计原则:收集器应该讲Java堆划分出不同的区域,然后将回收对象依据年龄分配到不同区域存储由此,设计者一般将Java堆

2021-09-01 10:54:38 80

原创 java对象创建过程(以HotSpot虚拟机为例)

对象的创建收到一条字节码new指令时,首先检查这个指令是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,则进行相应的类加载过程接下来进行内存的分配,对象所需的内存大小在类加载完成后便可确定,为对象分配空间等同于在堆中划分一块确定大小的内存块。堆中内存情况有两种:绝对规整,非绝对规整。绝对规整的内存,是被分为空闲内存和使用过的内存,中间放着一个指针作为分界点的指示器,那么分配内存就仅仅把那个指针向空闲空间方向挪动一段与对象大小相

2021-09-01 10:51:05 95

原创 java经典垃圾收集器

经典垃圾收集器Serial收集器(新生代)Serial 即串行的意思,也就是说它以串行的方式执行,它是**单线程的收集器,只会使用一个线程进行垃圾收集工作,GC 线程工作时,其它所有线程都将停止工作。是最基础,历史最悠久**的收集器。使用复制算法收集新生代垃圾。它的优点是简单高效,在单个 CPU 环境下,由于没有线程交互的开销,因此拥有最高的单线程收集效率,所以,它依然是HotSpot在 Client 场景下的默认新生代收集器。ParNew收集器(新生代)就是 Serial 收集器的多线程版本

2021-09-01 10:37:17 98

原创 Markdown文件常用语法

Markdown入门1、代码块// 代码块语法​```+语言1、javapublic static void main(String[] args) { System.out.println("Hello, markdown!");}2、shell#! /bin/bashecho 1for i in `seq 1 10`;do echo $idone2、标题//标题语法# 一级标题## 二级标题以此类推...3、字体样式// 加粗**Markdow

2021-08-16 16:40:36 131

空空如也

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

TA关注的人

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