自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法通关村第七关——迭代实现二叉树遍历

访问标记法可能比较难以理解。而Morris法是一个老外发明的巧妙思想:不使用栈,而是用好树中的null指针,但是实现后序遍历任然非常麻烦。前序遍历是中 左 右 ,如果还有左子树就一直找。结束之后返回从最底层逐步向右找。后序遍历的非递归实现有三种基本思路:反转法、访问标记法、和Morris法。也就是 中 右 左遍历 然后将结果集反转就行。

2023-09-09 14:55:04 102

原创 算法通关村——如何使用中序和后序来恢复一个二叉树

文章目录1.树的常见概念1.树的常见概念度:节点的子节点个数树的度:最大的度数叶子节点或者终端节点:度为0的节点双亲节点或父节点:子节点的根兄弟节点:具有相同父节点的节点节点的祖先:从根到该节点所经分支上的所有节点子孙:以某节点为根的子树中任一节点都称为该节点的子孙森林:互不相交的树的集合无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树,也称为自由树有序树:树中任意节点的子节点之间有顺序关系,这种树称为有序树二叉树:每个节点最多含有两个子树的树称为二叉树20w/+++

2023-09-07 00:09:50 94

原创 算法通关村第七关——二叉树遍历

我们从二叉树的角度看递归,每次遇到递归,都按前面说的四部来写,可以更好地写出正确的递归算法。PS: 面试和LeetCode提供的方法可能不能直接用来递归,需要我们再创建一个方法。深度优先遍历有前中后三种情况。

2023-09-06 10:59:34 88

原创 计算机网络(1)

本质上只有上面三层总线型网络物理层数据链路层网络层传输层应用层。

2023-09-04 23:29:36 62

原创 算法通关村第七关——理解递归(青铜)

递归的本质是方法调用,自身调用自身,系统维护了不同调用之间的保存和返回。如果观察递归代码的结构,如图所示:这个调用过程不能一直持续,一定要在满足某个要求之后返回结果,否则就会抛出 StackOverFlow 问题。1.执行时范围不断缩小。2.终止判断在调用之前。所以要先考虑什么情况下终止,再考虑递归的逻辑。

2023-09-04 15:15:31 41

原创 算法通关村第三关——不简单的数组增删改查

栈和队列又被称为访问受限的线性表,插入和删除遭到了限制,只能在固定的位置进行,而Hash比较特殊,其内部真正存储数据一般是数组,但是访问是通过映射来实现的,因此大部分材料里并不将Hash归结到线性表中。初始化的本质就是覆盖已有的值,用你需要的值覆盖原来的0,因为数组本来是一些默认值,然后后替换了一些数。要初始化,就必须从前向后连续空间初始化,不可以出现空缺的情况,这是违背数组原则的。数组是线性表最基本的结构,特点是元素是一个紧密在一起的序列,相互之间不需要记录彼此的关系就能访问,例如月份、星座等。

2023-09-03 00:21:54 77

原创 算法通关村第二关——链表反转问题解析(黄白级)

如果使用链表循环的方式,首先要确定位置,left为1的时候情况分开来,然后保存第三部分头结点right.next,没有就不保存,这个时候就可以不管第三部分头结点了。但是有一个明显的问题,这段代码不注意就会出现环,因为我们没有把循环部分从链表中断开,而且修改指针会很麻烦。其实在第一次遍历到反转区间的时候,我们可以把反转区间这个大问题分解成为:将当前right指针指向的结点,插到已经反转完成的区域之前。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。如果不是,遍历链表的同时,确定指针位置。

2023-08-31 21:09:18 125

原创 算法通关村第一关——链表经典问题之ALLIN笔记

两个链表的头结点都是已知的,相交之后成为一个单链表,但是相交的位置未知,并且相交之前的结点数也是未知的,请设计算法找到两个链表的合并点。双指针,这里用快慢指针,快指针停下的时候,如果下一个结点不为空,就返回慢指针下一个结点。如果为空,就返回慢指针。栈:虽然两个链表长度不等,但是后面的结点是一致的,所以根据栈先进后出的特点,将两个链表压入两个栈中,先出的都是一致的结点,最晚出的就是第一个公共子节点。介绍:将两个升序链表合并为一个新的升序链表并返回,新链表是通过拼接给定的两个链表的所有结点组成的。

2023-08-31 00:00:18 187

原创 算法通关村第二关——终于学会链表反转了

想到这边大体框架有了,但是在写循环体的时候发现一个问题,插入节点我首先处理单链表结点的后继指向问题,但是一旦更改目标结点(cur)的next指针,我们就找不到下一个要反转的结点,所以还需要在每一次反转中用一个局部变量(savenext)保存下一个结点的位置。因为cur表示需要修改指向的结点,第一个就需要,所以pre一开始只能指向null,因为如果也指向head就会形成一个死循环。于是乎,有一个问题,结点操作是操作下一个结点,那么下一个结点为空,也就是这个结点指针为空的时候开始回归。

2023-08-29 15:49:05 229

原创 算法通关村第一关——链表(青铜 C语言)

口述过程:将倒数第二个结点指向空。结果:返回头指针。

2023-08-28 19:43:35 229

原创 王道计算机组成原理2(笔记自用)

按字寻址,32根数据线可以看做存储字长有32位,那么一个存储字就有4个字节,这4个字节的区分,需要从20根地址线拿出两根作为字内寻址,这样剩下18根数据线来寻址,寻址范围:218=256KB。【例】地址线20根,数据线16根,按字节寻址:220=1MB;a × \times × b的芯片,a是字线,连接的是地址线,b是位线,连接的是数据线。本来需要n位地址线同时送行列地址,现在用n/2个地址线,前后传送给行列地址缓冲器。【例】cpu有20根地址线和32根数据线,按字节和字寻址,寻址范围分别是多少?

2023-08-27 22:22:27 87

原创 王道计算机组成原理(笔记自用)

​ 硬件决定性能,软件发挥实力​ 比如苹果系统的软件生态很好,能充分发挥出硬件的实力。软件分为:​ 系统软件:操作系统、数据库管理系统、标准程序库、网络软件、语言处理程序、服务程序;​ 应用软件:Steam。

2023-08-24 20:26:55 98

原创 汇编语言第2版(郑晓薇)&第二章笔记

IP也是一个专用寄存器,同理,技术不是绝对的,你想放也可以放,有些特种需要可以放一下,当然这必须在你谋划好了的情况下,这样一切都还你的控制之下,如果不是你的控制之下,一下子把IP搞混淆了,指向了数据段去,结果数据段又没代码。有的精通做加法,有的精通做基址定位,有的作为循环控制,有的作为访问端口等等。*BP为基址指针寄存器,表示数据在堆栈段中的基地址,基地址是这样的,比如,我们现在去找公共厕所,我们在路上问1个人,他说,你看见前面的红灯吗,红灯处往左100米就有个公共厕所、那么这时候红灯就是一个基地址。

2023-03-27 22:59:41 258 1

原创 力扣日记(2)

复习了昨日的力扣(1),,因为java和数据结构都太菜了,呜呜~~~~

2022-12-25 00:21:07 74

原创 Java中的数据结构 | 常用API | 机制(每日更新)

本文章用于记录使用Java语言学习算法和数据结构过程中,遇到的一些必须掌握的JavaSE知识点。同时会不定期分析相关源码,以及扩展算法相关的内容。

2022-12-25 00:15:54 410

原创 力扣日记(1)

算法思路:不能用双指针,因为排序之后下标会乱。主要知识:哈希表的初始化和使用。主要知识:栈的初始化和方法。主要知识:链表,三位运算符。算法思路:双指针,排序。主要知识:数组,集合。

2022-12-23 22:17:47 68

原创 SSM整合

封装特殊消息到messeage(msg)属性中。

2022-12-22 15:34:33 55

原创 SpringMVC

优点:隐藏资源的访问行为,无法通过地址得知对资源是什么操作。书写简化按照RESF风格访问资源时使用行为动作区分对资源的操作http://localhost/users : |查询全部用户信息| GET(查询)http://localhost/users/1 :|查询指定用户信息| GET(查询)http://localhost/users : |添加用户信息 | POST(新增/保存)

2022-12-20 21:18:34 135

原创 23种设计模式

单例模式,它的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式具备典型的3个特点:1、只有一个实例。2、自我实例化。3、提供全局访问点。因此当系统中只需要一个实例对象或者系统中只允许一个公共访问点,除了这个公共访问点外,不能通过其他访问点访问该实例时,可以使用单例模式。单例模式的主要优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,所以扩展起来有一定的困难。

2022-11-27 09:24:12 347

原创 JVM战损版

定义Java Virtual Machine,JAVA程序的运行环境(JAVA二进制字节码的运行环境)好处一次编写,到处运行自动内存管理,垃圾回收机制数组下标越界检查比较JVM JRE JDK的区别常见JVM每个线程运行需要的内存空间,称为虚拟机栈。(私有)每个栈由多个栈帧组成,对应着每次调用方法时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的方法,位于栈的顶部。全称:Garbage FirstJDK 9以后默认使用,而且替代了CMS 收集器。适用场景。

2022-11-27 09:13:26 279

原创 RabbitMQ

MQ全称Message Queue 消息队列 ,是在消息传输过程中保存消息的容器。多用于分布式系统之间进行通信。1.远程调用 2.通过mq间接通信AMQP,即 Advanced Message Queuin Protocol (高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言的限制。

2022-11-13 19:33:11 712

原创 Docker

​ Docker Compose 是一个编排多容器分布式部署的工具,提供命令集管理器化应用的完整开发期,包括服务构建,启动和停止。利用 Dockerfile 定义运行环境镜像使用 docker-compose.yml 定义组成应用的各服务运行 docker-compose up 启动应用。

2022-11-06 18:45:59 326

原创 web基础:Tomcat && Sevlet&& JSP

tomcat是一个开源免费的轻量级web服务器,支持servlet/jsp 少量javaEE规范Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖于Tomcat才可以运行web服务器作用?封装了Http协议操作,简化开发可以将web项目部署到服务器中,对外提供网上浏览服务tomcat简介web项目结构Maven Web项目结构:开发中的项目多了一个webapp软件包pom.xml文件设置打包的格式 .war部署的JavaWeb项目结构:开发完成,可以部署的项目。

2022-11-06 18:24:47 441

原创 黑马Dubbo入门

Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

2022-11-06 18:14:07 1044

原创 Linux命令

管理计算机硬件的其实是内核,用户正是通过shell来跟内核通信的,从本质上说shell是一个能执行各种命令的宏处理器。而bash(/bin/bash)就是linux默认的shell。Shell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。

2022-11-06 17:39:47 751

原创 Nginx尚硅谷学习笔记

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。但是不支持 java。

2022-11-06 14:59:32 1450

原创 web基础:MVC模式和三层架构

MVC是一种分层开发的模式,其中:M:Model,业务模型,处理业务V:View,视图,页面展示C:Controller,控制器,处理请求,调用模型和视图。

2022-11-03 14:59:06 535

原创 数据库系统概论

模式定义CREATE SCHEMAAUTHORIZATION[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3GwH17qe-1666955774617)(rkeogflsc.hb-bkt.clouddn.com/image-20221023113020819.png)]模式定义+视图(一个表的查询)

2022-10-28 19:18:35 601

原创 Redis尚硅谷学习笔记(2)

String是redis最基本的类型,可以理解成与Memcached一摸一样的类型,一个key对应一个value。String类型是二进制安全的。意味着Redis的String可以包含任何数据。比如jpg图片或者序列化对象。String类型是Redis最基本的数据类型,一个字符串value最多可以是512M。单键多值Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到表的头部或者尾部。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的结点性能会较差。

2022-10-28 19:08:43 1308

原创 SpringBoot笔记

是由 团队提供的全新框架,其设计目的是用来简化 应用的初始搭建以及开发过程。编写 的配置类作为 程序, 的配置类代码如下​ 做到这只是将工程的架子搭起来。要想被外界访问,最起码还需要提供一个 类,在该类中提供一个方法。 就是对这三步进行简化。 开发分为如下几步:对 工程进行相关的设置选中 ,然后勾选 由于需要开发一个 程序,使用到了 技术,所以按照下图红框进行勾选经过以上步骤后就创建了如下结构的模块,它会帮自动生成一个 类,而该类一会再启动服务器时会用到在 包下创建 ,代码如下:1

2022-10-25 12:01:30 523

原创 Maven高级学习笔记

继承:模块依赖关系维护。继承作用:通过继承可以实现在子工程中沿用父工程的配置maven中的继承与java中的继承相似,在子工程中配置继承关系示例在父工程ssm中声明依赖管理,将子工程所有的依赖都声明在此处。利用标签声明此处进行依赖管理具体的依赖添加自己工程的依赖springmvc环境jackson相关坐标3个只展示了部分依赖在子工程中定义父工程定义该工程的父工程父工程的名字ssm父工程的pom文件。

2022-10-23 20:09:37 140

原创 Redis6尚硅谷学习笔记(1)

web2.0时代nginx,分开请求,负载均衡,降低web数据库压力问题1:session问题,不同的web服务器可能产生重复的session对象解决了cpu和内存压力方案1.将信息存储到客户端 cookie,安全性降低方案2.session复制,数据冗余,结点越多浪费越大*方案3.nosql数据库。不需要io,将数据存在内存中,结构简单速度快问题2解决了IO压力方案1.对表做处理,破坏一定业务逻辑方案2.缓存数据库:减少io读操作1.2.1 Nosql数据库概述。

2022-10-23 19:56:20 694

原创 SpringFramework(3)

AOP是一种编程思想,那么AOP也是一种编程思想,编程思想主要的内容就是指导程序员该如何编写程序,所以它们两个是不同的。前面咱们有技术就可以实现这样的功能即“代理模式”。为了能更好的理解AOP的相关概念,我们准备了一个环境,整个环境的内容我们暂时可以不用关注,最主要的类为:当在App类中从容器中获取bookDao对象后,分别执行其,,和方法后会有如下的打印结果:这个案例中其实使用了Spring的AOP,在不惊动(改动)原有设计(代码)的前提下,想给谁添加功能就给谁添加:Spring是如何实现 ?(1)Sp

2022-10-21 09:41:28 629

原创 SpringFramwork(2)

ioc管理第三方bean

2022-10-21 09:26:48 650

原创 SpringFramework(1)

(1)IOC(2)整合Mybatis(IOC的具体应用)(3)AOP(4)声明式事务(AOP的具体应用)官网:https://spring.io,从官网我们可以大概了解到:Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。Spring已形成了完整的生态圈,也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring有若干个项目,可以根据需要自行选择,把这些个项目组合起来,起了一个名称叫全家桶,如下图所示说明:图中的图标都

2022-10-21 09:13:59 582

原创 JDBC快速入门

数据库连接池是个容器,负责分配,管理数据库连接connection允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个释放空闲时间超过最大空闲时间的数据库连接来避免一位内没有释放数据库连接而引起的数据库连接遗漏资源重用提升系统的响应速度避免数据库连接遗漏(还没释放完就赶紧拿去用了)

2022-10-21 07:59:00 742

原创 druid配置详解

druid配置

2022-10-21 07:48:12 1240

原创 Maven学习笔记

maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM(Project Object Model):项目对象模型依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围作用范围主程序范围有效(main文件范围内)测试程序范围有效(test文件范围内)是否参与打包(package指令范围内)scope主代码测试代码打包示例compile(默认)√√√log4jtest√junit。

2022-10-20 15:51:16 1316

原创 GIT分布式版本控制工具

为什么要用Git?Git安装流程?Git使用?常见问题?

2022-10-19 15:09:44 991 2

空空如也

空空如也

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

TA关注的人

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