- 博客(65)
- 收藏
- 关注
原创 springboot学习笔记03——静态资源导入与首页探究
1.静态资源处理SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面,而当程序识别出用户发出的URL请求的是静态资源而不是控制器的话,这时便会调用WebMvcAutoConfiguration类下的addResourceHandlers方法,该方法具体如下:@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { if (!thi
2021-08-21 16:35:16
216
原创 springboot学习笔记02——配置文件优先级、多环境切换与JavaBean属性赋值
1.配置文件优先级springboot启动时会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件:优先级1:项目路径下的config文件夹配置文件优先级2:项目路径下配置文件优先级3:资源路径下的config文件夹配置文件优先级4:资源路径下配置文件2.多环境切换我们来配置环境时,可以创建多个不同的配置文件来对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境。以下分别通过.pr
2021-08-18 16:35:51
544
原创 JAVA学习笔记——注解与反射
1.什么是注解?1.Annotation 是从JDK 5.0开始引入的新技术2.Annotation的作用:1.可以对程序作出解释,这个作用与我们在程序写的注释的作用类似2.可以其他程序(如编译器)读取,一般通过反射来实现3.Annotation 的格式注解是以“@注释名”在代码中存储在的,还可以添加一些参数值,例如果:@SuppressWarnings(value=“unchecked”)4.Annotation 在哪里使用?注解可以附加在package 、class、method、fi
2021-08-16 16:06:23
203
原创 SpringMVC学习笔记03——JSON
1.什么是JSON简单的来说,JSON是一种轻量级的数据交换格式,其本质就是字符串,而且采用完全独立于编程语言的文本格式来存储和表示数据,此外还易于人们阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON的格式与JavaScript中表示对象的格式相同,数据均在{}里面进行表示,且数据的表示采用的是键值对的方式。用JSON表示的数据如下例所示:{"name":"Xu","age":22,"sex":"男"}2.JSON与JavaScript 的关系JSON可以看作是JavaS
2021-08-09 13:36:36
92
原创 SpringMVC学习笔记02——测试程序运行示例
1.配置web.xml文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jc
2021-08-07 16:07:36
142
1
原创 SpringMVC学习笔记01——SpringMVC执行原理
1.什么是SpringMVCSpring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。而Spring MVC是围绕着DispatcherServlet来设计的。2.DispatcherServletDispatcherServlet的作用是将用户发送过来的请求分发到不同的Servlet中。而DispatcherServle实际上也是一个Servlet (它继承自HttpServlet 基类)。如下图所示:3.SpringMVC执行原理Spring
2021-08-07 13:50:50
134
原创 JavaWeb学习笔记06——filter过滤器
1.什么是filter?过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理大概流程图如下2.简单实现filter2.1 创建filterpublic class FilterTest implements Filter { //容器启动时便会执行该方法 @Override public void init(FilterConfig filterCo
2021-07-17 18:56:44
115
原创 JavaWeb学习笔记05——cookie与session
1.会话会话:用户打开一个浏览器,点击了很多超链接,访问了多个web资源,随后关闭浏览器,这个过程则称之为会话;有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,称之为有状态会话;保存会话状态的两种技术:1.cookie 2.session什么是session?什么是cookie?session和cookie有什么区别?2.Cookie应用public class CookieServlet extends HttpServlet { @Override p
2021-07-11 12:04:42
96
原创 JavaWeb学习笔记04——HttpServletResponse与HttpServletRequest
当web服务器接收到客户端的http请求时,会分别创建一个代表请求的HttpServletRequest对象以及一个代表响应的HttpServletResponse对象;如果要获取客户端请求过来的参数,可通过HttpServletRequest来完成如果要给客户端响应一些信息,可通过HttpServletResponse来完成1、简单分类HttpServletResponse中负责向浏览器发送数据的方法:ServletOutputStream getOutputStream() throw
2021-07-09 17:57:18
204
原创 JavaWeb学习笔记03——ServletContext
1.基本概念说起ServletContext,一些人会产生误解,以为一个servlet对应一个ServletContext。其实不是这样的,事实是一个web应用对应一个ServletContext,所以ServletContext的作用范围是整个应用,明确这点很重要,这是基础中的基础。一个web应用对应一个ServletContext实例,这个实例是应用部署启动后,servlet容器为应用创建的。ServletContext实例包含了所有servlet共享的资源信息。通过提供一组方法给servlet使用
2021-07-03 16:14:59
178
1
原创 JavaWeb学习笔记02——Servlet解析
在JavaWeb学习研究中,Servlet扮演重要的作用,学好它,是后续JavaWeb学习的良好基础。无论是SSH,还是SSM,微服务JavaWeb技术,都应先学好Servlet,从而达到事半功倍的效果,本篇将主要分析Servlet的运行原理。1. UML从图中,可以看出:1.抽象类HttpServlet继承抽象类GenericServlet,其有两个比较关键的方法,doGet()和doPost()2.GenericServlet实现接口Servlet,ServletConfig,Serializ
2021-07-03 13:58:07
150
原创 JavaWeb学习笔记01——Tomcat详解
1.TomcatTomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是
2021-07-02 13:09:12
176
2
原创 Mybatis学习笔记03——ResultMap、日志与分页
1.ResultMap在谈论ResultMap有何作用之前,我们先来看一下一种常见的问题。一般情况下,我们项目中的实体类的属性名是与数据库中表的属性名对应的,但当两者的属性名不相同时,就会出现SQL语句所查询出来的结果集无法映射到对应的实体类属性,这时候我们查出来的属性值就会为空值。例如:实体类User的属性如下所示:package pojo;//实体类public class User { private int id; //id private String name;
2021-07-01 16:19:25
159
原创 Mybatis学习笔记02——配置文件、生命周期及作用域解析
1.Mybatis核心配置文件MyBatis 核心配置文件推荐命名为: mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息MyBatis 核心配置文件能配置的内容如下所示:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环
2021-06-30 22:44:48
163
原创 Mybatis学习笔记01——程序运行示例
1.狂神说MyBatis01:第一个程序2.狂神说MyBatis02:CRUD操作及配置解析3.狂神说MyBatis03:ResultMap及分页4.狂神说MyBatis04:使用注解开发5.狂神说MyBatis05:一对多和多对一处理6.狂神说MyBatis06:动态SQL7.狂神说MyBatis07:缓存...
2021-06-29 17:38:56
124
原创 Linux——管道符、重定向、通配符与环境变量
1.管道命令符管道命令符""的作用是将前一个命令的标准输出当作后后一个命令的标准输入,格式为:命令A|命令B。例如:用翻页的形式查看/etc目录中有哪些文件:[admin@iz2ze3qtjvut2waqz8moa8z root]$ ls -l /etc/ | moretotal 1448...........省略部分文件..............使用非交互式设置用户密码,将root的密码改为123456[admin@iz2ze3qtjvut2waqz8moa8z root]$ echo
2021-06-19 17:38:21
240
原创 Linux——打包压缩文件与文件查询命令
1.tar命令tar 命令用于对文件打包压缩或解压,格式为∶tar [选项] [文件]。打包并压缩文件∶"tar -czvf 压缩包名.tar.gz 文件名"解压并展开压缩包∶"tar -xzvf 压缩包名.tar.gz"例如:将/www.baidu.com目录内文件打包并通过gzip格式压缩:[admin@iz2ze3qtjvut2waqz8moa8z ~]$ tar -czvf test.tar.gz www.baidu.com/www.baidu.com/www.baidu.com
2021-06-16 16:00:06
514
原创 Linux——用户与组管理命令
1.useradd命令useradd命令用于创建新的用户,格式为∶useradd [选项] 用户名。例如:创建名为test的用户,并自定义家路径、UID以及登录解释器(不允许登录):[root@iz2ze3qtjvut2waqz8moa8z admin]# useradd -d /home/testuser -u 8888 -s /sbin/nologin test查看test用户的基本信息:[root@iz2ze3qtjvut2waqz8moa8z admin]# id testuid
2021-06-15 17:21:58
351
2
原创 Linux——文件目录管理命令
1.touch命令touch命令用于创建空白文件与修改文件时间,格式为∶touch [选项] [文件]。我们可以用touch test轻松的创建出一个名字为test的空白文档。此外,在Linux中的文件有三种时间,分别是:更改时间(mtime)∶内容修改时间(不包括权限的)更改权限(ctime)∶更改权限与属性的时间读取时间(atime)∶读取文件内容的时间则touch命令具体的参数如下图所示:若执行命令touch -d "2 days ago" test,便将test文档的访问与修改时间都修
2021-06-15 16:27:14
165
原创 Linux——工作目录切换命令与文本编辑命令
1.pwd命令pwd命令用于显示当前的工作目录,格式为∶pwd [选项]。2.cd命令cd命令用于切换工作路径,格式为∶cd [目录名称]。3.ls命令ls 命令用于查看目录中有那些文件,格式为∶Is [选项] [文件]。4.cat命令cat命令用于查看纯文本文件(较短的),格式为∶cat [选项] 文件。例如:查看文本文件:[admin@iz2ze3qtjvut2waqz8moa8z www.baidu.com]$ cat robots.txt 5.more命令more命
2021-06-13 17:34:05
170
原创 Linux——系统状态检测命令
1.ifconfig命令ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig[网络设备][参数]。例如:查看本机当前的网卡配置与网络状态等信息:[admin@iz2ze3qtjvut2waqz8moa8z ~]$ ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.24.46.28 netmask 255.255.192.0 broadcast 1
2021-06-13 16:40:05
262
原创 Linux——常用系统工作命令
1.命令格式Linux中,命令的格式为:命令名称[命令参数][命令对象],注:命令名称、命令参数、命令对象之间要用空格隔开。命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),而命令参数可以选用长格式(完整的选项名称),也可选用短格式(单个字母的缩写),分别用 “—” 与 “-” 做前缀。2.echo命令echo命令用于在终端显示字符串或者变量,格式为:echo[字符串|变量]。例如:将echo命令的字符串输出到终端:[admin@iz2ze3qtjvut2waqz8moa8z ~]$
2021-06-12 15:17:13
279
1
原创 Linux学习笔记——Yum软件仓库
1.什么是Yum软件仓库Yum仓库能够根据用户的要求分析出所需软件包及其相关依赖关系,自动从服务器下载软件包并安装到系统中,Yum软件仓库拓扑图如下图所示:2.Yum配置文件Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中,配置文件中的内容包括:1.[xxxxx]:yum源的名称,可自定义。2.baseurl=xxxxxxxx:提供方式包FTP(ftp://)、HTTP(http://)、本地(file://)。3…enableed=1:设置此源是否可用
2021-06-12 14:02:40
390
原创 JS接收后端的整型数据后,最后一位数字变为0
1.问题描述当后端传送超过16位的长整数给前端时,就会发生丢失精度的错误,例如当后端传送整型数据49037438013804544时,前端接收到的数据则为49037438013804540,当该整型数据代表的为ID时,就会导致无法对该ID对应的记录进行增删改查。2.解决方法1.想办法将整型数据的位数降至16位及以内2.后端传送整型数据时先将数据转化为字符串类型...
2021-05-16 16:06:17
1379
原创 Git推送远程仓库出错:Please make sure you have the correct access rights and the repository exists.
1.问题原因出现该问题的原因其实就是远程仓库以及本地的ssh key出现了问题2.解决方法首先删除之前的本地ssh key,也就是删除本地的.ssh文件夹,这个文件夹一般存放在C/user目录下,随后输入ssh-keygen -t rsa -C "your@email.com",这里的your@email.com填写的是自己的邮件地址,接着就会出现Generating public/private rsa key pair.Enter file in which to save the key (
2021-05-04 14:53:27
482
原创 linux系统安装mysql
1.Mysql5.6的安装1.1.Mysql的卸载1.1.1.查看是否有mysql软件:rpm -qa|grep mysql1.1.2.卸载mysqlyum remove mysql mysql-server mysql-libs mysql-commonrm -rf /var/lib/mysqlrm /etc/my.cnf查看是否还有mysql软件,有的话继续删除。软件卸载完毕后如果需要可以删除mysql的数据库:/var/lib/mysql1.2.下载rpm包要使用yum 安装my
2021-04-26 15:40:48
85
原创 JAVA学习笔记——servlet
1.什么是servletservlet是运行在服务器端的用来处理请求以及发送响应的应用程序,大致过程如下图所示:2.servlet与tomcat的关系是什么?大家编写servlet程序的时候就会知道,servlet程序中并没有main方法,所以就需要用一个容器来管理这些servlet程序,那么这个容器就可以是我们开发应用程序过程中经常要用到的tomcat。那么,当tomcat接收到用户的请求之后便会将用户的请求封装成request并调用对应的servlet程序,servlet程序处理完请求之后便会
2021-04-23 16:11:06
92
原创 考研复试--算法设计与分析
1.蛮力法蛮力法的设计思想为:遍历,也就是说依次遍历集中的所有元素直到找到符合要求的元素。比如说,要用蛮力法在数组中寻找值为x的元素,那么就需要从数组的第一个元素开始,依次遍历数组中的元素直到找到值为x的元素或遍历完整个数组为止。2.分治法分治法的设计思想为:分而治之,也就是说将一个比较复杂的大的问题分解成一些规模较小的子问题,然后分别求解各个子问题,最后再合并子问题的解得到原问题的解。归并排序和快速排序是分治法的经典应用。归并排序是按照元素在序列中位置进行划分,首先将序列分成左子序列和右子序列,随后
2021-03-15 15:01:11
2131
原创 考研复试--操作系统
1.进程与程序的区别程序是硬盘中的代码的集合,是静态的。而进程是程序的一次执行,是动态的,而且进程有PCB,数据段,程序段构成。比如QQ,执行3次QQ相对应的就会有3个进程,而这3个进程的PCB和数据段都是不一样的,但是程序段是一样的2.为什么要引入线程传统进程机制中,进程是资源分配和调度的基本单位,而且只能在进程间并发。而在引入线程后,进程是资源分配的基本单位,线程则是调度的基本单位,并且各线程间也可以并发,提升了并发度3.线程的类型线程分为用户级和内核级线程,用户级线程是从用户视角就能看到的线
2021-01-22 14:36:35
539
原创 数据结构-树-判断一棵二叉树是否为二叉平衡树
1.算法思想根据二叉平衡树的性质,先判断递归判断左右子树是否为二叉平衡树,随后判断左右子树的高度差是否大于22.实现代码int IsBalance(BiTree T){ //空树为二叉平衡树 if(T==NULL) return 1; //递归判断左右子树是否均为二叉平衡树 int lbalance = IsBalance(T->lchild); int rbalance = ISBalance(T->rchild); if(rbalance == 0 || lbalanc
2020-10-19 16:40:02
149
原创 数据结构-树-二叉树的前序,中序,后序及层次遍历
一.算法思想二.源代码//1.递归前序遍历void PreOrder(BiTreeNode BT) { if (BT!=NULL) { Visit(BT); //先访问根节点 PreOrder(BT->Lchild); //递归遍历左子树 PreOrder(BT->Rightchild); //递归遍历右子树 }}//2.递归中序遍历void InOrder(BiTreeNode BT) { if (BT != NULL) { PreOrder(BT->L
2020-10-10 16:29:13
151
原创 数据结构-栈&树-中缀表达式转后缀表达式
实现方法:(1)参考:添加链接描述(2)①中缀表达式转化成二叉树(中缀表达式就是二叉树的中序遍历)②对二叉树进行后序遍历即可得到后缀表达式
2020-10-05 20:36:36
131
原创 数据结构-栈&链表-判断单链表是否中心对称
一.算法思想思路一:借助栈来实现本算法,首先将链表中前一半的元素进栈。在处理链表后一半元素时,当访问到链表的一个元素时,就从栈中弹出一个元素,并进行比较;若值相等,则继续往下比较,直到链表到尾。若这时栈是空栈,则可以得出该链表中心对称。若比较过程中有元素不相等或链表到尾时栈并不是空栈,则该链表为非中心对称(如xxyxx中心对称)思路二:将单链表的元素全部进栈,然后依次与单链表进行比较,直到比较到链表L为止,该算法与第一个算法相比实现起来较简单,但需要扫描两次单链表,效率较低。二.源代码//判断链表数
2020-10-02 21:20:55
3789
2
原创 数据结构-栈-链栈基本操作(带头结点及不带头结点)
一.数据类型声明#include<stdio.h>struct LQNode { //结点结构体 int data; //数据域 Node next; //指针域};typedef LQNode * Node; //结点结构体指针变量typedef Node List; //结点结构体头指针变量二.带有头结点的链栈基本操作/*带头结点的链栈*///1.初始化void initStack(List list) { list = new LQNode; //把结点结构体
2020-10-01 16:35:37
6615
2
原创 数据结构-链表-设A,B分别为两个递增有序的链表,设计一个算法从A和B中的公共元素产生单链表C,要求不破坏A,B的结点
一.算法思想因A,B都有序,故可以从第一个元素开始依次比较A,B两个表中的元素。若值不等,则值小的指针往后移;若值相等,则创建一个与该值相等的结点,使用尾插法插入到新的链表中,并将两个原表往后移,直到其中一个链表遍历到表尾二.源代码void Get_Common(List A,List B){ /*pa,pb分别为A,B的工作结点;s,r分别为新创建的结点及C链的尾指针*/ Node pa,pb,s,r; List C = new LNode; r = C; pa = A->next;
2020-09-30 15:56:42
1316
原创 数据结构-链表-将两个递增的链表归并为一个递减的链表
一.算法思想实现思路与在顺序表中合并两个递增的有序表类似,递减可由头插法来实现二.源代码void MergeList(List La,lList Lb){ Node pa,pb,r; pa = La->next; pb = Lb->next; La->next = Null;//将La作为结果链表的头指针 while(pa&&pb){ if(pa->data < pb->data){ r = pa->next;//r暂存pa
2020-09-30 15:31:14
2064
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人