自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 底层原理

Redis的底层原理以及网络模型、内存淘汰策略等。

2022-10-07 09:12:37 1975 1

原创 Redis笔记

Redis文章目录Redis一、NoSQL概述什么是NoSQLNoSQL的四大分类二、Redis概述概述启动redis测试性能基础知识三、五大数据类型Redis-Key的命令StringListSetHashZset(有序集合)四、三种特殊数据类型geospatial 地理位置HyperloglogsBitmaps五、事务六、Jedis七、Redis配置文件常用配置:Redis的内存淘汰策略八、Redis 持久化RDB(Redis DataBase)持久化AOF(Append Only File)持久化九

2022-03-20 15:30:13 1047 1

原创 Git笔记

Git文章目录Git版本控制Git的环境配置Git基本理论(核心)Git项目的搭建Git文件操作Git分支管理Git远程仓库版本控制什么是版本控制版本控制(Revision control)是一种在开发过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发、提高开发效率跟踪记录整个软件的开发过程减轻开发人员的负担,节省时

2022-02-08 14:04:32 539

原创 SpringMVC笔记

SpringMVC笔记

2022-01-30 21:55:08 1315 6

原创 Spring笔记

Spring笔记一、Spring概述1.1、Spring框架是什么​ Spring框架是可以在JavaSE/EE中使用的轻量级开源框架,目的是为了解决企业应用开发的复杂性而创建的,Spring的核心是控制反转(IoC)和面向切面编程(AOP)。​ Spring的主要作用就是为代码 “解耦”,降低代码间的耦合度,就是让对象和对象(模块和模块)之间的关系不是使用代码关联,而是通过配置来说明。Spring根据代码的功能特点,使用IoC降低业务对象之间的耦合度。IoC使得主业务在相互调用过程中,不用再自

2022-01-06 14:39:56 1948 14

原创 MyBatis笔记

文章目录一、框架概述1.1、三层架构1.2、什么是框架1.3、MyBatis框架1.3.1、使用JDBC的缺陷1.3.2、MyBatis解决的主要问题1.3.3、MyBatis提供的功能:二、一、框架概述1.1、三层架构三层架构包含的三层:界面层:和用户打交道的,接收用户的请求参数,显示处理结果的。对应的包是controller包。业务逻辑层:接收了界面层传递的数据,计算逻辑,调用数据库,获取数据。对应的包是service包。数据访问层:就是访问数据库,执行对数据的查询,修改,删除等等。对应的

2021-12-25 17:13:02 1368 18

原创 动态代理机制

文章目录代理模式1、使用代理模式的作用2、实现代理的方式3、静态代理代理模式代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。客户类真正想要访问的对象是目标对象,但客户类真正可以访问的对象是代理对象。客户类对目标对象的访问是通过访问代理对象来实现的。代理类与目标类要实现同一个接口。例如:有A,B,C三个类,A原

2021-12-12 22:59:00 1904 24

原创 图的遍历(Java语言)

Java语言实现图的深度优先遍历和广度优先遍历

2021-12-10 00:07:24 1807 22

原创 AVL树(Java语言)

平衡二叉树平衡二叉树也叫平衡二叉查找树,又被称为AVL树,可以保证查询效率较高。它的特点是:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。结点的平衡因子定义为:结点的左子树高度与右子树高度之差。显然,对一棵AVL树而言,其所有结点的平衡因子只能是-1,0,1.挡在一棵AVL树上插入一个结点时,有可能导致失衡,即出现绝对值大于1的平衡因子。单旋转(左旋转)插入70后失去平衡,调整过程如下:。思路:1、创建一个新的结点,值等于当前根节点的值。2、把新

2021-12-05 17:28:49 2555 18

原创 二叉排序(查找)树(Java实现)

二叉排序树:BST(Binary Sort(Search)Tree),又称为二叉查找树。其定义为:二叉排序树或者是一棵空树,或者是具有如下性质的二叉树。① 若它的左子树非空,则左子树上所有节点的值均小于根节点的值,② 若它的右子树非空,则右子树上的所有节点的值均大于(或大于等于)根节点的值。③ 它的左右子树也分别为二叉排序树。简单来说,对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。若有相同的值,可将该节点放在左子节点或右子节点。二叉排序树的创建

2021-12-02 17:40:42 910

原创 哈夫曼树(Java实现)

1、什么是哈夫曼树?①、给定n个权值作为n个叶子节点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称哈夫曼树(Huffman Tree)、赫夫曼树、霍夫曼树。②、哈夫曼树是带权路径长度最短的树,权值较大的节点离根较近2、哈夫曼树的几个重要概念1)路径和路径长度:在一颗树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数组称为路径长度。若规定根节点的层数为1,则从根节点到第L层结点的路径长度为L-12)结点的权及带权路径长度:若将

2021-11-17 20:22:20 2226

原创 堆排序(Java语言实现)

1、堆排序基本介绍1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。2)堆是具有以下性质的完全二叉树,每个节点的值都大于或者等于其左右孩子节点的值,称为大顶堆,并没有要求结点的左孩子的值和右孩子的值的大小关系。3)每个节点的值都小于或等于其左右孩子节点的值,称为小顶堆。4)大顶堆举例:5)小顶堆举例:一般升序采用大顶堆,降序采用小顶堆2、堆排序基本思想1)将待排序序列构造成一个大顶堆2)此时,

2021-11-15 20:27:35 996 1

原创 Maven笔记

文章目录一、Maven简介1.1、软件是一个工程1.2、传统开发项目的问题,没有使用maven管理的项目1.3、需要改进项目的开发和管理,需要maven1.4、构建:项目的构建1.5、maven核心概念1.6、maven工具的安装和配置二、Maven的核心概念2.1、maven约定的目录结构2.2、mvn compile 编译src/main目录下的所有Java文件。2.3、仓库2.4、pom(项目对象模型,是一个pom.xml文件)2.5、maven的生命周期,maven的命令,maven的插件三、依赖管

2021-11-03 22:33:25 365

原创 JSON、AJAX、i18n

文章目录一、什么是JSON?1.1、JSON在JavaScript中的使用1.1.1、JSON的定义1.1.2、JSON的访问1.1.3、json的两个常用方法1.2、JSON在java中的使用1.2.1、JavaBean和JSON的互转1.2.2、List和JSON的互转1.2.3、Map和JSON的互转二、AJAX请求2.1、什么是AJAX请求2.2、原生AJAX请求的示例:三、i18n国际化3.1、什么是i18n国际化3.2、国际化相关要素介绍3.3、国际化资源测试3.4、通过请求头国际化页面4.4、

2021-11-02 14:40:20 97

原创 Listener监听器和Filter过滤器

文章目录一、Listener监听器1、什么是Listener监听器?2、ServletContextListener监听器二、Filter过滤器1、什么是Filter过滤器?2、Filter的初体验一、Listener监听器1、什么是Listener监听器?1、Listener监听器它是JavaWeb的三大组件1之一。JavaWeb的三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。2、Listener它是JavaEE的规范,就是接口。3、监听器的作用是,监听某种事物

2021-10-30 17:09:03 175

原创 Cookie和Session

文章目录一、Cookie1、什么是cookie2、如何创建Cookie一、Cookie1、什么是cookieCookie是服务器通知客户端保存键值对的一种技术;客户端有了Cookie后,每次请求都发送给服务器;每个Cookie的大小不能超过4kb2、如何创建Cookie...

2021-10-28 23:25:21 117

原创 文件的上传和下载

文章目录前言一、文件的上传介绍1.1、文件上传,HTTP协议的说明1.2、commons-fileupload.jar 常用API介绍说明二、使用步骤1.引入库2.读入数据总结一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、文件的上传介绍二、使用步骤1.引入库2.读入数据总结前言文件的上传和下载,是非常常见的功能,在很多的系统中,或者软件中都经常使用文件的上传和下载。比如:QQ头像,就使用了上传邮箱中也有附件的上传和下载的功能一、文件的上传介绍1、要有一个form标签,m

2021-10-27 22:32:12 324

原创 EL表达式&JSTL标签库笔记

文章目录一、EL表达式1、什么是EL表达式,EL表达式的作用?2、EL表达式搜索域数据的顺序二、使用步骤1.引入库2.读入数据总结一、EL表达式1、什么是EL表达式,EL表达式的作用?EL表达式的全称是:Expression Language。是表达式语言。EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据输出。因为EL表达式在输出数据的时候,要比jsp的表达式脚本要简洁很多。<body> <% request.setAttribute("key"

2021-10-25 16:38:00 250

原创 哈希表(Java语言实现一个哈希表)

1、哈希表的基本介绍哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。需求:有一个公司,当有新员工来报道时,要求将该员工的信息加入,当输入该员工的id时,要求查找到该员工的信息。当该员工离开公司时,删除他的信息。要求:不使用数据库,速度越快越好添加时,id从低到高。使用链表来实现哈希表,该链表不带头节点代码实现:

2021-10-19 21:04:56 1426

原创 JSP笔记

文章目录一、什么是JSP?有什么用?二、JSP的本质是什么三、JSP的三种语法1、jsp头部的page指令2、jsp中的常用脚本I、声明脚本(极少使用)II、表达式脚本(常用)III、代码脚本JSP中的三种注释I、html注释II、Java注释III、JSP注释一、什么是JSP?有什么用?jsp的全称是 java server pages。Java的服务器页面。jsp的主要作用是代替 Servlet 程序回传 html 页面的数据。因为 Servlet 程序回传 html 页面数据是一件非常繁琐的

2021-10-17 21:47:49 113

原创 Servlet笔记

文章目录一、Servlet技术二、ServletConfig类三、ServletContext类四、HTTP协议五、HttpServletRequest类六、HttpServletResponse类一、Servlet技术1、Servlet的概念:Servlet是JavaEE规范之一。规范就是接口。Servlet是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。Servlet是运行在服务器上的一个Java小程序,它可以接受客户端发送过来

2021-10-16 16:45:33 153

原创 线性查找算法(Java实现)

线性查找是逐一比对,发现有相同的值,就返回下标。查找一个满足条件的值:public class LinearSearch2 { public static void main(String[] args) { int[] arr = {1,4,89,10,6,15}; int index = linearSearch(arr,89); //将查找算法的返回值保存到index中 //进行判断 if(index == -1) {

2021-10-13 22:37:33 280

原创 归并排序(Java语言实现)

归并排序:归并排序是利用归并的思想实现的排序方法,该算法采用分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各结果合在一起,即分而治之)。归并排序的基本思想图解归并(和并)的思想图解---->合并相邻有序子序列代码实现该算法: //分和治(合)的方法 public static void mergeSort(int[] arr, int left, int right, int[] temp) { if(left < righ

2021-10-05 17:49:31 1271

原创 Tomcat笔记

1、JavaWeb的概念:JavaWeb是指,所有通过Java语言编写可以通过浏览器访问的程序的总称。JavaWeb是基于请求和响应来开发的。请求:是指客户端给服务器发送数据,叫请求Request响应:是指服务器给客户端回传数据,叫响Response请求和响应是成对出现的,有请求就有响应2、Web资源的分类:web资源按实现技术和呈现的效果不同,又分为静态资源和动态资源两种。静态资源: html、css、js、txt、MP4视频、jpg图片动态资源: jsp页面、Servlet程序3、

2021-10-05 16:09:01 76

原创 快速排序(Java语言实现)

快速排序:是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。1、选定pivot中心轴;2、将大于pivo中心轴的数字放在pivot的右边;3、将小于pivo中心轴的数字放在pivot的左边;4、分别对左右子序列重复前三步操作。图解:代码实现:中轴值为数组的第一个元素: public static vo

2021-10-04 14:58:59 136

原创 XML笔记

XML:可扩展的标记性语言。XML的主要作用:1、用来保存数据;2、可以做为项目或者模块的配置文件;3、做为网络传输数据的格式(JSON现在为主)。XML的注释和HTML的一样。XML命名规则:1、名称可以包含字母、数字以及其他的字符;2、名称不能以数字或标点符号开始;3、名称不能包含空格。XML标签也分单、双标签。XML的属性:一个标签上可以书写多个属性。每个属性的值必须用引号括起来。XML对大小写敏感,且标签要闭合。标签必须正确嵌套。XML文档必须要有根元素。XML里面的文本

2021-10-03 18:55:34 216

原创 希尔排序(Java语言实现)

希尔排序:在简单插入排序经过改进的更高效版本,也称缩小增量排序。算法基本思想:把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减小,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法终止。希尔排序有两种方法:交换法(效率不高) 和 移位法。算法图解:算法实现:交换法://该算法是希尔排序中的交换法(效率不高) public static void shellSort(int[] arr) { int temp = 0;

2021-10-03 16:43:54 179

原创 插入排序(Java语言实现)

算法基本思想:把n个待排序的元素看成一个有序表和无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中适当位置,使之成为新的有序表。代码如下: public static void insertSort(int[] arr) { int insertValue = 0; int insertIndex = 0; for (int i

2021-10-03 15:37:26 91

原创 中缀表达式转换为后缀表达式(逆波兰表达式)并对其求值

中缀表达式转后缀表达式思路:1.初始化一个运算符栈s1和存储中间结果的List集合s2;2.从左至右扫描中缀表达式(这里为了方便把中缀表达式字符串依次存放到数组中);3.遇到操作数时,将其加到s2;4.遇到运算符时,比较其与s1栈顶运算符的优先级:4.1.若s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈;4.2.若优先级比栈顶运算符优先级高,也将运算符压入s1;4.3.否则,将s1栈顶的运算符弹出并加到s2中,再次回到4.1与s1中新的栈顶运算符相比较5.遇到括号时:5.1.若

2021-09-10 17:56:39 226

原创 LeetCode19. 删除链表的倒数第 N 个结点

题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。题解:先判断该链表中有多少个元素,即链表的长度length。该链表为不带头节点的链表。要删除链表的倒数第n个节点,即从链表第一个开始遍历(length - n)个,就可得到删除的节点。当n==length时,即删除倒数最后一个(第一个)节点,就直接返回head.next;创建一个temp对象,让temp.next = head(否则会出现空指针异常),通过遍历找到要删除的节点进行删除.以下是Java代码:class Sol

2021-08-31 18:30:31 87

原创 Java实现生产者和消费者模式

生产者和消费者模式:一个线程负责生产,一个线程负责消费,最终要让生产者和消费者必须均衡。wait()和notify()方法建立在synchronized线程同步的基础之上。**对象.wait()方法会让正在该对象上活动的当前线程进入等待状态,并且释放之前占有的该对象的锁。对象.notify()方法只会通知,不会释放之前占有的该对象的锁。**一个经典例子:使用生产者和消费者模式实现,交替输出:假设只有两个线程,输出以下结果:t1–>1t2–>2t1–>3t2–>

2021-08-04 22:52:53 155

原创 Java中的死锁

死锁:不会出现异常,也不会出现错误,程序一直僵持在那里。package com.java;public class DeadLock { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); //让两个线程共享两个对象 Thread t1 = new MyThread1(o1,o2);

2021-08-04 20:41:42 173

原创 在Java中this关键字和super关键字

在Java中this关键字和super关键字*一个对象对应一个this,this是一个变量,是一个引用。this保存当前对象的内存地址指向自身。super关键字代表的就是“当前对象”的那部分父类型特征。this和super出现在实例方法和构造方法中。this的语法是:“this.”、“this()”、super的语法是:“super.”、“super()”。this和super不能使用在静态方法中。this.在区分局部变量和实例变量时不能省略;super.在“父类中有,子类中又有,如果在子类中访问‘父

2021-05-04 21:55:27 207

空空如也

空空如也

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

TA关注的人

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