- 博客(61)
- 收藏
- 关注
原创 【Linux】简单命令
管道是⼀种古⽼的 "进程间通信" ⽅式. 在 Linux 指令中可以使⽤ | 作为管道标记.我们敲的所有的 Linux 命令, 都可以使⽤ tab 键来尝试补全, 加快效率.意思是将前⼀个指令标准输出的内容, 作为第⼆个指令的标准输⼊内容.如果命令或者⽬录敲错了, 可以 ctrl + c 取消当前的命令。x 显⽰所有程序, 不⽌是会话中的进程。-a 显⽰所有正在或不在侦听的套接字。-p 显⽰套接字所属进程的PID和名称。u 以⽤⼾为主的格式来显⽰程序状况。a 显⽰⼀个终端的所有进程。f 显⽰完整格式输出。
2025-03-06 10:42:03
391
原创 【JavaEE进阶】Spring Web MVC 综合性练习
1. 校验接⼝请求路径:/user/login请求⽅式:POST接⼝描述:校验账号密码是否正确1. 获取全部留⾔全部留⾔信息, 我们⽤List来表⽰, 可以⽤JSON来描述这个List数据.请求:响应: JSON 格式"from": "⿊猫","to": "⽩猫","message": "喵"},{"from": "⿊狗","to": "⽩狗","message": "汪"},//...
2025-02-21 16:42:55
670
原创 【JavaEE进阶】Spring Web MVC⼊⻔
本节⽬标学习常⻅的Spring Web MVC注解掌握使⽤SpringMVC来完成基础的功能开发了解MVC和三层架构的设计模式掌握企业开发中的⼀些命名规范。
2025-02-20 17:23:52
1219
原创 【专题二 二叉树中的深搜】814. 二叉树剪枝
通过决策树,抽象出递归的三个核心问题这个问题要减去该节点,必须左子树全为0,右子树全为0,再判断该节点,则相当于一个对于一个节点,如果他本身就是空节点,那么直接返回空,否则对于其左子树和右子树进行判断,如果左子树为空,右子树为空,且该节点值为0,那么把该节点置为null,返回该节点。
2025-01-19 12:23:56
745
原创 【JavaEE初阶】线程安全问题
按照之前对于锁的设定, 第⼆次加锁的时候, 就会阻塞等待. 直到第⼀次的锁被释放, 才能获取到第⼆ 个锁. 但是释放第⼀个锁也是由该线程来完成, 结果这个线程已经躺平了, 啥都不想⼲了, 也就⽆法进⾏解锁操作. 这时候就会 死锁.我们把⼀段代码想象成⼀个房间,每个线程就是要进⼊这个房间的⼈。B 是不是也可以进⼊房间,打断 A 在房间⾥的隐私。. 当这个锁被某个线程占有的时候, 其他线程尝试进⾏加锁, 就加不上了, 就会阻塞等待, ⼀直等到之前的线程解锁之后, 由操作系统唤醒⼀个新的线程,再来获取到这个锁.
2024-12-21 09:38:19
1151
原创 【Mysql】Java的JDBC编程
三. JDBC工作原理JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类。JDBC访问数据库层次结构:JDBC优势:Java语言访问数据库操作完全面向抽象接口编程开发数据库应用不用限定在特定数据库厂商的API程序的可移植性大大增强。
2024-12-19 17:04:06
909
原创 【JavaEE初阶】线程 和 thread
⽽上⾯我们的公司业务中,张三、李四、王五虽然是不同的执⾏流,但因为办理的都是⼀家公司的业务,所以票据是共享着的。为了让业务更快的办理好,张三⼜找来两位同事李四、王五⼀起来帮助他,三个⼈分别负责⼀个事情,分别申请⼀个号码进⾏排队,⾃此就有了三个执⾏流共同完成任务,但本质上他们都是为了办理⼀家公司的业务。⽤我们上⾯的例⼦来看,每个执⾏流,也需要有⼀个对象来描述,类似下图所⽰,⽽ Thread 类的对象就是⽤来描述⼀个线程执⾏流的,JVM 会将这些 Thread 对象组织起来,⽤于线程调度,线程管理。
2024-12-17 19:36:26
1047
原创 【蓝桥杯备战】Day 1
LCR 018.验证回文串给定一个字符串s,验证s是否是,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的。s =true"amanaplanacanalpanama" 是回文串false解释:"raceacar" 不是回文串s。
2024-12-12 10:14:07
1246
原创 【JavaEE 初阶】⽹络编程套接字
二、Socket套接字一、⽹络编程基础1.应用层操作系统提供的一组 api =>socket api(传输层给应用层提供)2.传输层 两个核心协议.差别非常大,编写代码的时候,也是不同的风格因此, socket api 提供了两套TCP 有连接, 可靠传输, 面向字节流, 全双工UDP 无连接, 不可靠传输, 面向数据报, 全双工(1)有连接/无连接 (抽象的概念,虚拟的/逻辑上的连接)
2024-12-05 10:46:45
1240
原创 【JavaEE进阶】SpringBoot 快速上⼿
Maven了解Maven,并配置国内源使⽤SpringBoot创建⼀个项⽬, 输出HelloWorld。
2024-11-24 10:35:04
786
原创 【JavaEE进阶】 JavaScript
创建数组有两种⽅式1. 使⽤ new 关键字创建// Array 的 A 要⼤写2. 使⽤字⾯量⽅式创建 [常⽤]// 数组中保存的内容称为 "元素"注意: JS 的数组不要求元素是相同类型.这⼀点和 C, C++, Java 等静态类型的语⾔差别很⼤. 但是 Python, PHP 等动态类型语⾔也是如此.1. HTML是⼀种超⽂本标记语⾔, 主要⽤于⻚⾯内容的显⽰和排版.如果需要更漂亮的样式展⽰和⻚⾯效果, 需要搭配CSS和JavaScript来使⽤。
2024-11-22 14:19:39
900
原创 【MySQL】阶段性总结
1.登录2.查看数据库版本3.查看现有数据库4.创建数据库5.选择数据库6.查看当前选择了哪个数据库7.删除数据库8.查看警告信息9. 退出。
2024-11-18 21:56:46
790
原创 【MySQL】MySQL表的增删改查(基础)---CRUD02
1.比较运算符大于,大于等于,小于,小于等于等于,NULL不安全,例如的结果是NULL<=>等于,NULL安全,例如的结果是TRUE(1)!=, <>不等于范围匹配,[a0, a1],如果,返回TRUE(1)如果是option中的任意一个,返回TRUE(1)IS NULL是NULL不是NULLLIKE模糊匹配。表示任意多个(包括0个)任意字符;表示任意一个字符。
2024-11-18 00:06:30
754
转载 【JavaEE进阶】CSS
CSS 能够对⽹⻚中元素位置的排版进⾏像素级精确控制, 实现美化⻚⾯的效果. 能够做到⻚⾯的样式和结构分离.⼀个类可以被多个标签使⽤, ⼀个标签也能使⽤多个类(多个类名要使⽤空格分割, 这种做法可以让代码更好复⽤)CSS 选择器的主要功能就是选中⻚⾯指定的标签元素. 选中了元素, 才可以设置元素的属性.边框是⼀个复合属性, 可以同时设置多个样式, 不分前后顺序, 浏览器会根据设置的值⾃动判断。⾏内样式, 只适合于写简单样式. 只针对某个标签⽣效. 缺点是不能写太复杂的样式.声明的属性是键值对. 使⽤;
2024-11-17 10:35:55
908
原创 【JavaEE进阶】HTML
HTML(Hyper Text Markup Language), 超⽂本标记语⾔.超⽂本:⽐⽂本要强⼤. 通过链接和交互式⽅式来组织和呈现信息的⽂本形式. 不仅仅有⽂本, 还可能包含图⽚, ⾳频, 或者⾃已经审阅过它的学者所加的评注、补充或脚注等等.标记语⾔:由标签构成的语⾔HTML的标签都是提前定义好的, 使⽤不同的标签, 表⽰不同的内容.类似⻜书⽂档, Word⽂档如果选中⽂本, 点击标题1, 就会使⽤标题1的样式来显⽰⽂本, 上述标题1就是⼀个"标签"<h1>我是⼀级标题</h1>
2024-11-09 23:47:15
1103
原创 【JavaEE进阶】导读
随着技术的发展, ⽆论是后端开发还是前端开发, 开发的时候都很少使⽤原⽣的代码,⽐如:JDBC、JS 等. 取⽽代之的是各种开发框架. 如:后端框架:Spring, SpringBoot, Mybatis等,前端常⽤的框架: Vue、Node等. 这些框架都有⼀个共同的特点, 就是简单, ⾼效. 这极⼤的提⾼了我们的开发效率. 那什么是框架呢?通俗的来讲: 框架是实现某种功能的半成品, 他提供了⼀些常⽤的⼯具类, 我们在框架的基础上, 可以更加⾼效的进⾏开发.
2024-11-08 15:41:32
1440
原创 【Java数据结构】lambda表达式
注解,那么编译器就会按照函数式接口的定义来要求该接口,这样如果有两个抽象方法,程序编译就会报错的。所以,从某种意义上来说,只要你保证你的接口中只有一个抽象方法,你可以不加这个注解。我们这里只是为了说明变量捕获,所以,匿名内部类只要会使用就好,那么下面我们来,简单的看看匿名内部类的使用就好了。:类似方法中的形参列表,这里的参数是函数式接口里的参数。在上述代码当中的main函数当中,我们看到的就是一个匿名内部类的简单的使用。的简化,实际上是创建了一个类,实现了接口,重写了接口的方法。如下代码就是错误的代码。
2024-11-07 20:47:28
852
原创 【Java数据结构】枚举
我们刚刚在反射里边看到了,任何一个类,哪怕其构造方法是私有的,我们也可以通过反射拿到他的实例对象,那么枚举的构造方法也是私有的,我们是否可以拿到呢?,现在我们可以直接用枚举来进行组织,这样一来,就拥有了类型,枚举类型。、枚举本身就是一个类,其构造方法默认为私有的,且都是默认继承与。由此可知,枚举虽然是私有的,但不允许通过反射来调用枚举的方法。但是常量举例有不好的地方,例如:可能碰巧有个数字1。场景:错误状态码,消息类型,颜色的划分,状态机等等。枚举具有内置方法 ,代码更优雅。,但是他有可能误会为是。
2024-11-07 19:47:37
446
原创 【Java数据结构】字符串常量池
方式2,就是池化技术的一种示例,钱放在卡上,随用随取,效率非常高。1. 家里经济拮据,每月定时打生活费,有时可能会晚,最差情况下可能需要向家里张口要,速度慢。2. 家里有矿,一次性打一年的生活费放到银行卡中,自己随用随取,速度非常快。类型对象的效率更高,而且更节省空间。文件中的常量池被加载到内存中称为运行时常量池,运行时常量池每个类都有一份。版本对字符串常量池的处理方式不同,此处在。结论:只要是new的对象,都是唯一的。等字面类型的常量经常频繁使用,方式添加进字符串常量池中。实现的,看不到其实现的源代码。
2024-11-05 23:32:09
732
原创 【数据结构】Map && Set
(2)查找结点 (3)插入结点 1. 如果树为空树,即根 == null,直接插入(4)删除节点(难点) 设待删除结点为 cur, 待删除结点的双亲结点为 parent 对于删除节点来说较为复杂,再单独写一个私有函数整体代码: 3 性能分析 插入和删除操作都必须先查找,查找效率代表了二叉搜索树中各个操作的性能。 对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深
2024-11-05 21:22:07
630
原创 【JavaEE初阶】计算机是如何工作的
一、计算机发展史一、计算机发展史计算的需求在⼈类的历史中是⼴泛存在的,发展⼤体经历了从⼀般计算⼯具到机械计算机到⽬前的电⼦计算机的发展历程。⼈类对计算的需求,驱动我们不断的发明、改善计算机。⽬前这个时代是“电⼦计算机”的时代,发展的潮流是:更快速、更稳定、更微型。二、Java发展史Java 诞生于 上个世纪 90 年代(C 语言 197x,C++ 198x),Java 诞生的时候,C/C++ 是业界最流行的语言。
2024-10-23 22:12:04
728
1
原创 【双指针算法】快乐数
int类型的数据最大为2.1e9,再大一点则为10个9,9999999999,共9^2*10=810,则进行811次运算必然会回到之前的,数。解答:这里用到了鸽巢原理(抽屉原理):N个巢穴,N+1只鸽子,那么可以得知至少有一个巢里面的鸽子数大于1。由图可知,不管是最后可以变成1的还是不可以变成1的都相当于形成环了,只是成环处值不一样。问题转变成,判断链表是否有环。采用双指针,快慢指针算法。证明:为什么一定会成环?
2024-10-20 01:11:16
250
原创 【双指针算法】复写零
解法:双指针算法先根据“异地”算法,然后优化成双指针下的“就地”操作1.先找到最后一个需要复写的数2.“从后向前”完成复写操作。
2024-10-19 14:25:49
377
原创 【Java数据结构】Java对象的比较
2 对象比较的问题c1、c2和c3分别是Card类型的引用变量,上述代码在比较编译时: c1 > c2 编译失败 c1== c2 编译成功 c1 < c2 编译失败 从编译结果可以看出,Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较。 那为什么==可以比较? 因为:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接
2024-10-17 11:44:15
885
原创 【Java数据结构】优先级队列(堆)
方法2:把前K个元素创建为大根堆,遍历剩下N-K个元素,和堆顶元素相比较,如果比堆顶元素小,就把堆顶元素删除,插入当前元素。,该中场景下,使用队列显然不合适,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。问题,能想到的最简单直接的方式就是排序,但是:如果数据量非常大,排序就不太可取了。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。child,调整结束树不满足此性质,因此需要继续向下调整,即。,即根节点的左右子树不满足堆的特性,又该如何调整呢?
2024-10-17 11:11:38
814
原创 【双指针算法】移动零
可以归结为数组划分/数组分块(采用双指针算法)-->利用数组下标充当指针(1)首先定义两个指针(3)cur从前往后移动的过程双指针算法是快排最核心的一步,设置基准元素tmp,左边让他都小于tmp,右边让他都小于tmp。
2024-10-13 22:58:51
234
原创 【Java数据结构】队列(Queue)
实际中我们有时还会使用一种队列叫循环队列。环形队列通常使用数组实现。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。模拟的入栈要进入不为空的队列,出栈要从不为空的队列出栈。)是指允许两端都可以进行入队和出队操作的队列,接口是比较多的,栈和队列均可以使用该接口。双端队列(deque。入队列:进行插入操作的一端称为。出队列:进行删除操作的一端称为。是个接口,在实例化时必须实例化。是一个接口,使用时必须创建。
2024-10-06 21:49:00
722
原创 【Java数据结构】栈 (Stack)
题目:中缀表达式a+b*c+(d*e+f)*g,其转换成后缀表达式为abc*+de*f+g*+。顺序遍历pushV,如果栈顶元素和popV当前元素相同,则弹出,不同则将pushV当前元素入栈。出栈:判断出栈元素和最小栈栈顶元素关系,相同则最小栈也出去。,进栈过程中可以出栈,则下列不可能的一个出栈序列是()依次入栈,然后再依次出栈,则元素出栈的顺序是( )。栈帧:运行一个方法、一个函数时,给它开辟的内存。栈、虚拟机栈、栈帧有什么区别呢?类似,都是动态的顺序表,不同的是。出栈:栈的删除操作叫做出栈。
2024-10-06 12:26:33
983
原创 【Java数据结构】LinkedList
LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。在集合框架中,LinkedList也实现了List接口,具体如下【说明】实现了List接口的底层使用了双向链表没有实现接口,因此LinkedList不支持随机访问的任意位置插入和删除元素时效率比较高,时间复杂度为O(1)比较适合任意位置插入的场景。
2024-10-04 23:48:33
655
原创 【Java数据结构】 链表
1.2.3.上节课已经熟悉了ArrayList的使用,并且进行了简单模拟实现。通过源码知道,ArrayList由于其底层是一段连续空间,当,效率比较低,因此。因此:java集合中又引入了LinkedList,即链表结构。链表是一种存储结构,数据元素的是通过链表中的次序实现的。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:单向------双向循环------ 非循环带头------ 不带头(1)(2)(3)虽然有这么多的链表的结构,但是我们重点掌握两种。
2024-10-03 22:13:20
801
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅