自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络安全前置知识-linux操作系统

虚拟机是由各种虚拟文件所构成的虚拟计算机,而这些虚拟文件都可以由文件系统进行管理。快照本身就是帮助用户记录当前虚拟机状态的方式,这个状态包含虚拟磁盘状态(相当于真实机中的硬盘)、机器内存状态、虚拟机配置信息。1、虚拟磁盘状态:数据、分区格式、文件内容等;

2024-05-02 20:00:45 792

原创 MIT6S.081 如何切换lab分支

写第二个lab的时候发现代码对不上,后来知道是因为分枝不对。博客搜了几下,没找到想要的,就自己弄了,弄成后写下这篇博客来分享下。

2023-03-04 15:31:09 348 1

原创 Spring IOC概念与实现(注解方式)

1、使用 Spring 框架2、反射机制IoC 控制反转 Inverse of Control 创建对象的权限,Java 程序中需要用到的对象不再由程序员自己创建,而是交给 IoC 容器来创建。前置要求:强大的反射和注解基础,可以参考:https://blog.csdn.net/jsdoulaoula/article/details/125529609。

2022-09-04 11:30:33 344

原创 Ajax-老杜

写在前面,此文只能满足想知道ajax是如何一步步实现和框架下封装的是什么。想快速实现,直接去看VUE等框架如何实现即可。传统请求存在的问题页面全部刷新导致了用户的体验较差。传统的请求导致用户的体验有空白期。(用户的体验是不连贯的)四、XMLHttpRequest对象XMLHttpRequest对象是AJAX的核心对象,发送请求以及接收服务器数据的返回,全靠它了。XMLHttpRequest对象,现代浏览器都是支持的,都内置了该对象。直接用即可。创建XMLHttpRequest对象

2022-07-21 20:53:12 1009 2

原创 JavaScript-老杜

(1)简称JS(2)一种脚本语言,脚本语言的特点Java语言是一种非脚本语言,属于编译型语言。JavaScript语言是一种脚本语言(解释型语言),JavaScript的“目标程序”是以普通文本的形式保存。用记事本是可以直接打开的。浏览器打开就直接解释执行了。(3)JavaScript主要用来操作HTML中的节点,产生动态效果JavaScript是一门编程语言,专门用来操作HTML页面中的节点,让网页产生动态效果的。JavaScript中也有变量、数据类型、运算符、if语句、for循环、标识符、关键字

2022-07-20 11:45:49 649 3

原创 HTML+CSS

1、什么是HTML?Hyper Text Markup Language超文本标记语言2、HTML运行在哪?运行在浏览器上。3、HTML怎么开发?新建一个.html或者.htm结尾的文件。使用记事本打开就能开发,浏览器打开就能运行。不需要编译。4、什么是web?web就是网站开发。5、web程序员包括:6、HTML是哪个组织制定的标准呢?W3C.html实际上是w3c制定的一套标准,有不同的版本,例如:HTML4.0、HTML5.0(简称H5.........

2022-07-17 11:19:36 338

原创 JavaWeb(尚硅谷补充实操版)-中

在我们8中的项目里,Servlet太多,很不方便。我们想将其变成这个样子实现:首先将所有Servlet合成一个,然后通过switch来选择。前段代码的action全换成@{/fruit.do},并且加入隐藏域,name = operate, value=对应的操作(比如update)用来属地operate值,然后调用对应方法9.2 第二步改-反射在此之前先回顾一下修改内容中反射的知识:获取对象,不过在这次修改我们直接用this.getclass()即可,因为是写在自己的类里面。用反射替换掉s

2022-07-11 20:02:05 403 2

原创 JavaWeb(尚硅谷补充实操版)-上

html是什么一些功能对图片进行一些调整和提示Tomcat是一个web容器项目可以部署到里面IDEA里完成部署选javaEE里面的javaweb项目新建与WEB-INF同级的HTML完成部署前先进行配置tomcat,选tomcat-local完成部署完全可以改的方便些这里的html放在了web-inf下所以最后没结果IDEA特殊idea把项目部署到这个位置,然后在tomacat里面指明位置,所以tomcat的webapps里面看不到..

2022-07-06 21:07:30 784 4

原创 IDEA 404报错

所请求的资源不可用。  IDEA是通过先将项目打包成war包,然后创建一个Tomcat,将war进行加载的方式来启动项目所以这个请求资源不可用的问题就一定是  1)出现在打包war包的过程中  2)在Tomcat加载这个war包的时候出现的问题。对应第一个本人用的IDEA2021,会自动帮助你配置好。如果是老版本可以自行百度,从Module到Arti...

2022-07-04 08:28:59 3738

原创 JAVA-反射+注解

java反射+注解

2022-07-01 22:47:25 4177

原创 JAVA-IO流

JAVA-IO流

2022-06-29 20:44:18 261

原创 Lucene--千锋修改+踩坑版本

搜索技术理论基础1.1. 为什么要学习Lucene原来的⽅式实现搜索功能,我们的搜索流程如下图:上图就是原始搜索引擎技术,如果⽤户⽐较少⽽且数据库的数据量⽐较⼩,那么这种⽅式实现搜索功能在企业中是⽐较常⻅的。但是数据量过多时,数据库的压⼒就会变得很⼤,查询速度会变得⾮常慢。我们需要使⽤更好的解决⽅案来分担数据库的压⼒。...

2022-05-21 20:21:50 743

原创 Maven 本地jar打包到本地仓库

一、进入cmd窗口输入以下命令(个人习惯直接从地址栏输入cmd,回车进入)二、使用如下命令:注意:需要修改里面的内容mvn install:install-file -Dfile=C:\Users\dell1\Desktop\qq_SDK\Sdk4J.jar -DgroupId=sdk -DartifactId=qq-java-sdk -Dversion=1.0.0 -Dpackaging=jar-Dfile:为本地 jar 包的位置-DgroupId:打到 Maven 仓库对应 pom 文件

2022-05-20 20:17:57 326

原创 MybatisPlus从入门到精通-三更草堂补充版

MybatisPlus从入门到精通-基础篇1.概述​ MybatisPlus是一款Mybatis增强工具,用于简化开发,提高效率。 它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。​ 官网: https://mp.baomidou.com/2.快速入门2.0 准备工作①准备数据CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `user_name` var

2022-05-19 15:16:01 1242

原创 SpringBoot-常见场景(下)-三更补充版

接上文(准备开始前后端分离的模式)准备工作:https://www.bilibili.com/video/BV1T54y1n7PB?p=43基本测试(数据库查询–可跳过,与springMVC整合步骤基本一致)因为是前后端分离的项目,所以最终方法的返回值都会放到请求体当中—>@RestController所有文件与之前测试的相同实体类import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstr

2022-05-12 20:27:53 743

原创 SpringBoot-常见场景(上)-三更补充版

SpringBoot-常见场景1.热部署(不是特别推荐)​ SpringBoot为我们提供了一个方便我们开发测试的工具dev-tools。使用后可以实现热部署的效果。当我们运行了程序后对程序进行了修改,程序会自动重启。​ 原理是使用了两个ClassLoder,一个ClassLoader加载哪些不会改变的类(第三方jar包),另一个ClassLoader加载会更改的类.称之为Restart ClassLoader,这样在有代码更改的时候,原来的Restart Classloader被丢弃,重新创建一个

2022-05-12 14:12:03 437

原创 SpringBoot-基础入门-三更草堂补充版

SpringBoot-基础入门-三更草堂1. SpringBoot简介1.1 为什么要学习SpringBoot​ 我们之前的SSM还是使用起来不够爽。还需要写很多的配置才能进行正常的使用。实现一个功能需要引入很多的依赖,尤其是要自己去维护依赖的版本,特别容易出现依赖冲突等问题。​ SpringBoot就能很好的解决上述问题。1.2 SpringBoot是什么​ Spring Boot是基于Spring开发的全新框架,相当于对Spring做了又一层封装。​ 其设计目的是用来简化Sprin

2022-05-12 09:50:21 974

原创 SSM整合-三更补充版

SSM整合1.SSM整合1.0 步骤分析​ 我们先来分析下如何把Spring,SpringMVC,Mybatis整合到一起。1.0.1 步骤①Spring整合上Mybatis​ 通过Service层Dao层都注入Spring容器中②引入配置SpringMVC​ 把Controller层注入SpringMVC容器中③让web项目启动时自动读取Spring配置文件来创建Spring容器​ 可以使用ContextLoaderListener来实现Spring容器的创建。1.0.2 常见疑惑

2022-05-11 19:53:05 266

原创 SpringMVC-3.拦截器+功能-三更扩展版

SpringMVC-031.拦截器1.1 应用场景​ 如果我们想在多个Handler方法执行之前或者之后都进行一些处理,甚至某些情况下需要拦截掉,不让Handler方法执行。那么可以使用SpringMVC为我们提供的拦截器。(依赖AOP实现的效果)下图为2个handler方法1.2 拦截器和过滤器的区别​ 过滤器是在Servlet执行之前或者之后进行处理。而拦截器是对Handler(处理器)执行前后进行处理。如图:1.3 创建并配置拦截器①创建类实现HandlerInterceptor

2022-05-09 17:11:51 238

原创 SpringMVC-2.操作-三更扩展版

SpringMVC-021.类型转换器​ 虽然我们前面在获取参数时看起来非常轻松,但是在这个过程中是有可能出现一些问题的。​ 例如,请求参数为success=1 我们期望把这个请求参数获取出来赋值给一个Boolean类型的变量。​ 这里就会涉及到 Stirng-——>Boolean的类型转换了。实际上SpringMVC中内置了很多类型转换器来进行类型转换。也有专门进行Stirng-——>Boolean类型转换的转换器StringToBooleanConverter。​ 如果

2022-05-08 20:07:01 205

原创 SpringMVC-1.入门与请求-三更扩展版

SpringMVC-011.SpringMVC概述​ Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的MVC 框架之一。​ 一种轻量级的、基于MVC的Web层应用框架。它能让我们对请求数据的出来,响应数据的处理,页面的跳转等等常见的web操作变得更加简单方便。2.入门案例①导入相关依赖 <dependencies> <!-- servlet依赖 --> <dependency>

2022-05-08 16:43:02 299

原创 spring-AOP+整合-三更扩展版

Spring-031. AOP1.1 概念​ AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。他是一种可以在不修改原来的核心代码的情况下给程序动态统一进行增强的一种技术。​ SpringAOP: 批量对Spring容器中bean的方法做增强,并且这种增强不会与原来方法中的代码耦合。1.2 快速入门1.2.1 需求​ 要求让_08_SpringAOP模块中service包下所有类的所有方法在调用前都输出:方法被调用了。1.2.2 准备工作①添加依

2022-05-07 14:50:03 500

原创 spring-IOC-三更的扩展版

Spring-011.Spring简介​ Spring是一个开源框架,它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson)创建。它是为了解决企业应用开发的复杂性而创建的。​ 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开发,可以非常方便整合其他框架,无侵入的进行功能增强。​ Spring的核心就是 控制反转(IoC)和面向切面(AOP) 。2.IOC控制反转2.1 概念​ 控制反转,之前对象的控制权在类手上,现在反

2022-05-06 10:31:26 231

原创 Vue基础笔记

中文文档: https://vuejs.bootcss.com/guide/syntax.html初步在了解到v-on指令(@)可以添加一个事件监听器,通过它调用在 Vue 实例中定义的方法,完成让用户和你的应用进行交互比如v-on中左边绑定的是我们定义的子组件里所定义的事件v-model 指令,它能轻松实现表单输入和应用状态之间的双向绑定。v-bind指令的意思是:“将这个元素节点的 title attribute 和 Vue 实例的property 保持一致”。如果你再次打开

2022-05-04 17:02:21 761

原创 二叉树-翻转二叉树

题目思路DFS使用BFS遍历的时候交换只需要对原有的BFS遍历时加上交换的代码即可(老三行)。 public TreeNode invertTree(TreeNode root) { public TreeNode invertTree(TreeNode root) { //root为空的情况要进行排除否则会在交换时出现空指针异常 if(root==null) { return null; } //用层序遍历完成对二叉树的

2022-03-27 10:17:50 385

原创 二叉树-二叉树的层序遍历

参考:nettee题目DFS与BFSDFS(深度优先搜索)和 BFS(广度优先搜索)就像孪生兄弟,提到一个总是想起另一个。然而在实际使用中,我们用 DFS 的时候远远多于 BFS。在二叉树的遍历上,两者不同之处在于代码的简易程度不同和遍历的顺序不同。遍历的顺序就是数字的顺序。void dfs(TreeNode root) { if (root == null) { return; } dfs(root.left); dfs(root.right)

2022-03-26 23:58:00 158

原创 二叉树-二叉树的迭代遍历

前序遍历处理:将元素放进result数组中(根节点-中间)访问:遍历节点/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(in

2022-03-25 23:23:06 59

原创 二叉树-二叉树的递归遍历

递归确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件:操作系统是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定单层递归的逻辑。前序遍历1. 确定递归函数的参数和返回值把树和用于存放前序的list作为参数。递归函数不需要返回值,因为我们把要求的都放入list里面,由主函数输出。2. 终止条件当前遍历的节点是空了,那么本层递归就要要结束了,所以

2022-03-25 00:41:04 895

原创 栈与队列-前 K 个高频元素

题目思路统计出现频率,在之前哈希表也有用到过Java中Collections.sort()的使用在日常开发中,很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中如:Map ,Set ,List 等集合中。他们都提供了一个排序方法 sort(),要对数据排序直接使用这个方法就行,但是要保证集合中的对象是可比较的。怎么让一个对象是 可比较的,那就需要该对象实现 Comparable 接口。然后重写里面的compareTo()方法。我们可以看到Java中很多类都是实现

2022-03-24 13:17:49 1041

原创 栈与队列-滑动窗口最大值

题目思路前面出,后面进。这已经不能再明显了,我们显然要使用队列这种数据结构了。offer()方法在可能的情况下插入一个元素,否则返回false,这和Collection.add方法不同,后者只能通过抛出一个uncheck Exception来表示插入元素失败(什么是不检查异常?下次总结),offer()方法是为了正常情况下的“失败”而设计的,而不是异常情况,比如固定容量的队列。remove()和poll()方法删除并且返回队首元素,至于从队列中删除哪一个元素就和队列排序策略的函数实现有关了(有各种

2022-03-20 14:32:10 757

原创 栈与队列-逆波兰表达式求值

题目思路看懂第一张图,基本就会发现,这就是将上一题中的消消乐环节,换成对应的计算。并且不用去考虑之前必须要考虑的if else(仅限消除的时候会用到)两者都是通过栈来实现。class Solution { public int evalRPN(String[] tokens) { Deque<Integer> deque = new LinkedList<>(); for (int i = 0; i < tokens.len.

2022-03-17 20:00:51 209

原创 栈与队列-删除字符串中的所有相邻重复项

题目思路这一题比上一题的括号要简单许多。这道题目就像是我们玩过的游戏对对碰,如果相同的元素放在挨在一起就要消除。此时就可以用一个栈来实现。综合上一题,我们会发现这个if else对于这类题是尤为重要的,尤其要注意我们关注的只有栈顶元素,只有这样我们才能正确的消除。public String removeDuplicates(String s) { Deque<Character> deque = new LinkedList<>(); f

2022-03-17 19:29:48 3450

原创 栈与队列-有效的括号

题目https://leetcode-cn.com/problems/valid-parentheses/思路public static boolean isValid(String s) { //先判断奇偶,奇数返回false if (s.length()%2==1){return false;} //偶 Deque<Character> deque = new LinkedList<>();

2022-03-17 17:07:36 604

原创 栈与队列-用队列实现栈

题目https://leetcode-cn.com/problems/implement-stack-using-queues/思路-两个队列先将push的元素放入辅助队列中交换辅助队列和主队列(是直接交换队列,队列底层用linkedlist实现)如果queue1中就有元素,我们则需要再进行一步操作(如图)代码class MyStack { Queue<Integer> queue1; Queue<Integer> queue2; pu

2022-03-16 21:21:00 398

原创 栈与队列-用栈实现队列

题目https://leetcode-cn.com/problems/implement-queue-using-stacks/思路队列是先进先出栈是先进后出所以我们用两个栈就可以实现注意在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。最后如何判断队列为空呢?如果进栈和出栈都为空的话,说明模拟的队列为空了。class MyQueu

2022-03-12 11:18:21 78

原创 字符串-重复的子字符串

题目https://leetcode-cn.com/problems/repeated-substring-pattern/思路-KMP求出next数组用一个小例子来说明next数组代码为什么这么写用next数组求解如果 next[len - 1] != 0,则说明字符串有最长相同的前后缀(最长相等前后缀的长度为:next[len - 1]如果len % (len - next[len - 1] ) == 0 ,则说明 (数组长度-最长相等前后缀的长度) 正好可以被 数组的长度整除,

2022-03-10 09:45:36 330

原创 字符串-实现 strStr()

题目https://leetcode-cn.com/problems/implement-strstr/暴力解法我们加上flag来进行判断 public int strStr(String haystack, String needle) { int n = haystack.length(), m = needle.length(); for (int i = 0; i <= n-m ; i++) { boolean flag =

2022-03-09 14:43:13 158

原创 字符串-剑指Offer58-II.左旋转字符串

题目思路一public String reverseLeftWords(String s, int n) { StringBuilder sb = new StringBuilder(); char[] c = s.toCharArray(); int end = c.length-1; int i =n; //1.存 while (i<=end){ sb.append(c[i

2022-03-08 13:45:26 214

原创 字符串-翻转字符串里的单词

题目https://leetcode-cn.com/problems/reverse-words-in-a-string/思路一-API选手join方法List<String> strings = List.of("Java", "is", "cool");String message = String.join(" ", strings);// message returned is: "Java is cool"split方法得到的结果显然不是我们想要的。说明我们应该

2022-03-08 11:02:36 349

原创 字符串-剑指Offer 05.替换空格

题目https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/思路一开始自然想到的是直接讲String转换成char数组,然后用ascii码值把空格换成%20.但很显然,%20不是char类型,会发现String是无法存到字符数组里面的。此时,说明我们需要新建一个数组来存储。但这个数组要保证最坏的情况,就是数组里面元素基本都是空格。建立字符数组地长度为 s 的长度的 3 倍,这样可保证字符数组可以容纳所有替换后的字符。 public St

2022-03-07 16:51:44 46

空空如也

空空如也

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

TA关注的人

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