- 博客(25)
- 收藏
- 关注
原创 python知识点一:基本数据类型
Python 的基本数据类型包括整型、浮点型、布尔型、字符串、列表、元组、字典和集合等。下面简单介绍一下每种数据类型及使用案例。
2023-03-20 00:25:42
467
原创 vue生命周期
由于发送到后台的验证登陆的方法是异步的,那么无论我们把方法放到created,beforeMount,还是mounted钩子中,都不会导致页面立即跳转到登陆界面。这时候,可以用一个false的标记控制页面,当login过后就重新渲染页面,把我们的页面展示出来,虽然会有一瞬间的空白,但是在体验上面没有什么异样的感觉,比瞬间闪我们系统的页面好太多。答案是将登陆放到App.vue中,在没有渲染页面的时候,就已经先一步跳转到登陆界面,登陆过后立即跳转到我们的后台。如果要优先跳转到路由页面而非App.vue呢?...
2022-08-01 11:30:07
888
原创 vue3+ts+vite+element plus+axios+pinia框架搭建
一、技术栈Vue3:组件封装和拆分比Vue2更加细化和合理。TypeScript:严格类型检查,对于每一个参数和变量,定义之初就规定了其类型,后续再赋值其它类型会报错。Vite:之前看的时候Vite还不适合生产环境,近段时间看网上的口风貌似变了,因此可以尝试作为打包工具替代webpack试试。Element plus:ui组件库,比较热门的vue组件库之一。Axios:基于request的http库,比较常用。Vue-router:路由控制。Pinia:状态管理类库,比vuex更小,对ts的
2022-06-28 00:07:37
5486
8
原创 Jersey框架简单实践(一)
RESTfulREST(Representational State Transfer 表现层状态转化) 是一组架构约束,而不是协议或标准。通常定义:每一个URI代表一种资源;客户端和服务器之间,传递这种资源的某种表现层;客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。而在如今,一般实现了RESTful的架构更结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。Jersey框架Jersey框架是一个实现了RESTful风格的框架。通过简单的配置
2022-05-12 21:20:15
2861
1
原创 优先队列简介
简介优先队列和普通队列最大的区别是出队顺序,普通队列按照严格先进先出的出队顺序,优先队列则对每个队内元素添加了优先级,优先级高的先出队。优先队列底层实现使用的是大顶堆/小顶堆。应用场景数据压缩:赫夫曼编码算法;最短路径算法:Dijkstra 算法;最小生成树算法:Prim 算法;任务调度器:根据优先级执行系统任务;事件驱动仿真:顾客排队算法;选择问题:查找第 k 个最小元素;合并问题:合并k个升序的集合;会员机制:比如抢购活动中vip用户能够优先抢到会员(貌似不太公平);投诉惩罚机制
2022-04-30 21:56:09
399
原创 nginx负载均衡之docker容器
nginx负载均衡之docker容器大致分为几种情况1.容器应用间无关联这种情况,可以采用除nginx端口外容器应用端口全部都指向nginx所指向的宿主机端口,然后2.容器为集群模式
2022-04-30 21:29:51
3619
原创 RPC框架与REST服务
1、常见的RPC框架Dubbo:阿里开源的框架,仅支持Java语言。gRPC:Google开源的框架,支持多种语言。Thrift:Facebook开源框架,支持多种语言。Tars:腾讯开源的框架,仅支持C++语言。Motan:国外开源框架,仅支持Java语言。除此之外,还有Springcloud也带有RPC的功能。以Dubbo为例:架构图只有4个重要角色:注册中心、消费者、提供者、监控中心。官方架构图:交互过程:Consumer 一端通过注册中心获取到 Provider 节点后,通过
2022-04-22 20:10:29
845
原创 TCP/IP协议的三次握手/四次挥手
首先:采用三次握手是为了防止失效的连接请求报文段突然又回传给主机B,因而产生错误。失效的连接请求报文段:client端发送的第一个连接请求报文段并没有丢失,而是在某个网络节点滞留了,以至于延误到连接释放以后的某个时间才到达server。出现的情况:这是server误以为这是一个新的请求,向client发出确认报文段,同意建立连接。假设不采用三次握手,那么只要server发出确认,新的连接就建立了。这时由于client并没有真正的请求,所以不会向server发送数据,但server却一直等待,这样就会浪费
2022-04-18 16:38:42
2225
原创 idea java maven工程打包编译配置
基本概念首先需要明白,我们自己下载的maven亦或是idea自带的maven,本身都具备了clean、compiler、package、install、deploy的能力。所以,即使我们的项目中pom没有引入相关的编译打包jar包,也能完成这些操作。但是,要注意,这个时候打包的项目jar包,是不包含第三方jar包的,仅仅是我们项目的class文件而已。有了这个概念,就可以开始我们的编译配置了。配置方法第一种方式如果希望我们的项目是按照springboot的项目架构,把我们的项目代码和第三方开源jar
2022-03-14 00:24:33
2078
原创 单调栈简介
何为单调栈栈内元素非递增或者非递减。另一种说法是从栈底到栈顶非递增或者非递减。在很多情况下,可能会出现相同的数字元素,所以称之为非递增或者非递减栈更合适。显而易见,从单调栈的这种结构很容易联想到,在算法中,合理运用单调栈,能够将O(n^2)的时间复杂度优化到O(n),这就是技巧。相对的,空间复杂度会增加,因为需要动态维护一个栈。这里需要明白一点,算法里面,都是时间和空间的取舍,所谓的时空间转换指的就是这个,所以要根据具体场景去选择。适用范围求一个数组每一个的下一个最大值、对一个数组排序、判断当前元素
2022-03-07 21:05:46
5870
2
原创 剑指 Offer 30. 包含min函数的栈
要求push,pop,min,top操作都是O(1)的时间复杂度。这里的min指的是返回栈内最小元素。对应leetcode:剑指 Offer 30. 包含min函数的栈思路看到需要0(1)的时间复杂度,毫不犹豫想到肯定要借助辅助空间,这是很典型的空间换时间的案例。那么,在这种情况下,由于栈的变动会导致栈内最小元素跟随着变动,所以,可以再建立一个辅助栈,模拟最小元素的变动情况。需要注意的是,辅助栈的栈底元素一定要与原栈保持一致,这才能保证在最后只剩一个元素的时候,返回正确的最小值。代码:class
2022-03-07 14:13:22
294
原创 剑指 Offer 09. 用两个栈实现队列
原理栈的特征:先进后出队列的特征:先进先出那么,很明显,可以使用两个栈实现对队列的模拟。(这里模拟的是队尾入队,队头出队)思路很重要的是,这里一定要认识到,我们的两个栈,一个用来入队,一个用来出队,才是最合理的。也就是说,入队栈只用来入队,当需要出队的时候,才去管出队栈。如果出队栈空,则将入队栈全部出栈至入队栈,然后弹出栈顶元素;如果出队栈不空,则直接弹出栈顶元素即可。代码:class CQueue { Deque<Integer> stack1; Deque&l
2022-03-07 11:35:24
153
原创 一个类构造器参数过多时的重构思想
首先想到的,毫无疑问是重叠构造器,需要啥域成员可变的时候可以自行构造。但是,这种模式也存在很大的问题,那就是假如域成员很多,构造函数需要定制的参数多变,就会使代码可读性下降。public class People { private String name; private Integer age; private String phone; private String address; private String idNumber; public P
2021-12-10 21:52:16
510
原创 关于java线程中的线程中断方法interrupt()
偶然有一次看到这个方法并不推荐使用,去探究一波原因。调用interrupt()方法,只是将目标线程的interrupted status置为true,并不会暂停当前线程。这依赖目标线程的后续处理,假如没有处理,将不会出现期待的效果。要想中断线程,需要目标线程用Thread.interrupted()方法检查interrupted status,当状态为true时,应主动执行清理,并且抛出InterruptedException异常。注:Thread.interrupted()方法会清理状态(重置为fal
2021-12-10 11:52:56
827
原创 IDEA中的全局批量替换正则表达式
1. 常用搜索快捷键CTRL+F:当前文件全文搜索CTRL+R:当前文件全文替换CTRL+SHIFT+F:当前项目按内容查询(全局查找)CTRL+SHIFT+R:当前项目按内容查询并替换(全局查找替换)2. 正则表达式简单实用的在IEDA中,可以用 A. 来匹配以A开头的内容, 用 B其他正则表达式...
2020-12-30 20:59:22
11963
原创 简述js中var和let的差异
js var和let的区别1:作用域不du一样,var是函数作用域,而let是块作用域,也就zhi是说dao,在函数内声明了var,整个函数内都是有效的,比如说在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问的,而let由于是块作用域,所以如果在块作用域内(比如说for循环内)定义的变量,在其外面是不可被访问的,所以let用在for (let i; i < n; i++)是一种很推荐的写法let不能在定义之前访问该变量,但是var是可以得。也就是说,let必须是先定义,
2020-12-23 22:44:48
890
原创 计网基本概念
1. 计算机网络分层机构TCP/IP 5层模型(1)物理层(2)数据链路层(3)网络层(4)传输层(5)应用层OSI 7层模型(1)物理层(2)数据链路层(3)网络层(4)传输层(5)会话层(6)表示层(7)应用层2.IP地址基本概念网关地址:IP地址主机号最后一位为1,处于本网关的全部主机向外部传输信息都要通过先发送到网关地址,由网关再进行转发到目的网络。网络地址:IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。广播地址
2020-12-11 19:13:38
516
原创 设计模式之单例模式
/** * 首先,单例模式是指确保一个类只有一个实例,并提供该实例的全局访问点。 * 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 * 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 *//** * 1.懒汉式-线程不安全 * 好处:没有使用就没有实例化(延迟实例化),节约资源 */class Singleton_one { private static Singleton_one uniqueInstance
2020-09-11 22:31:10
119
原创 VSCode设置全背景图片
直接修改源文件css帮助 -> 切换开发人员工具,找到下面这行,粘贴地址到文件夹里打开。加入下面的代码,保存,重启vscode即可。body { background-image: url('file:///F:/高清壁纸/wallhaven-96qy3w_1920x1080.png'); background-size: 100%; opacity: 0.9; background-repeat: no-repeat;}下载background-cover插件下载了插件.
2020-09-11 22:08:48
6906
5
原创 IDEA 常用快捷键大全
IDEA 常用快捷键大全Ctrl+N 按名字搜索类Ctrl+Shift+N 按文件名搜索文件Ctrl+H 查看类的继承关系Ctrl+Alt+B 查看子类方法实现Ctrl+B 可以查看父类或父方法定义Alt+F7 查找类或方法在哪被使用Ctrl+F/Ctrl+Shift+F 按照文本的内容查找,Ctrl+F是在本页查找,Ctrl+Shift+F是全局查找Shift+Shift 搜索任何东西,shift+shift非常强大,可搜索类、资源、配置项、方法等,还能搜索路径。
2020-09-05 10:44:21
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人