- 博客(173)
- 资源 (1)
- 收藏
- 关注
原创 vue3父子组件传值
/父组件 < template > < div class = " father " > < h1 > 父组件 < span > {{text}} < div class = " box " >
2023-12-24 16:02:20
1346
原创 vue整合axios 未完
axios前端异步请求库类似jouery ajax技术,axios用来在前端页面发起一个异步请求,请求之后页面不动,响应回来刷新页面局部;Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
2023-12-21 10:14:54
916
原创 vuex--未完
vue3.0以上,本文是3.0vue2.0Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库(全局管理,相当于一个全局变量,所有页面共享)。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。第一步:引入 在main.js 中–生成项目是已经做好//vuex第二步:在store文件夹下的index.js中Promise介绍//全局状态初始值state: {count:1},//计算state,获取对应的值getters: {},
2023-12-19 15:14:20
1182
原创 vue模板--未完学习中
script-setup 的推出是为了,减少一些心智负担,只需要给 script 标签添加一个 setup 属性,那么整个 script 就直接会变成 setup 函数,所有顶级变量、函数,均会自动暴露给模板使用(无需再一个个 return 了)。//声明一个对象,名字是data;//相当于生命周期中的create和before create。/*scoped表示当前style属性只属于当前模块*///对象只有在return之后才能在html中使用。//引入本页面需要的东西。
2023-12-19 10:02:42
409
原创 vue3路由
Vue 路由允许我们通过不同的 URL 访问不同的内容。通过 Vue 可以实现多视图的单页 Web 应用(single page web application,SPA)。vue路由库vue路由中文文档。
2023-12-18 12:24:55
1125
原创 vue模板语法
/声明一个对象,名字是data;//声明一个对象,名字是data;作用:创建一个 ref 对象,其 value 值指向另一个对象中的某个属性。//将一个响应式对象,转换为普通对象,并且将其中的属性转换为 Ref 对象。//相当于生命周期中的create和before create。//相当于生命周期中的create和before create。//只有return之后才能在html中使用。//只有return之后才能在html中使用。//引入本页面需要的东西。//引入本页面需要的东西。
2023-12-17 20:50:07
462
1
原创 vue 生命周期
在组件DOM实际渲染之前调用,此时根元素还不存在,在选项API中,可使用this.$el来 访问;在组合API中,使用setup()方法替换了beforeCreate和created,那么在这两个生命周期中的方法将放在setup中执行。卸载组件实例后调用,调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。beforeUpdate对于跟踪对组件的编辑次数,甚至跟踪创建撤销功能的操作很有用。在组件的第一次选然后调用,此时元素可用,允许直接DOM访问。
2023-12-17 20:33:30
957
原创 新建vue3项目
src文件夹是核心源代码的所在目录,展开后如下所示(不同版本的vue-cli生成的目录会稍有不同,不过核心都是一样的),正常开发的时候一般只修改 src 文件夹下的文件。│ ├── router 目录 :用来存放 index.js,用来配置路由,定义各个页面对应的URL。│ ├── main.js:是项目的入口文件,初始化 vue 实例,并引入所需要的插件。│ ├── app.vue:是项目的主组件,所有页面都是在该组件下进行切换的。
2023-12-17 19:30:22
1713
原创 排序C语言版
#include <stdio.h>#include <stdlib.h>//一下排序方法默认从小到大,数组从0开始/** * 直接插入排序:边比较边移动位置 * * */void directSort(int *a, int length){ int i,j; for(i = 1; i < length;i++){//i 从1开始知道数组结尾 if(a[i-1] > a[i]){ //开始寻找位置 int tmp = a[i
2021-05-06 06:00:40
264
原创 跨域之后如何获取真实的客户端IP
参考场景1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端的代理服务器的地址,并不是客户端的真实地址,3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址,如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务
2020-12-18 16:23:56
590
1
原创 zookeeper 的相关命令
启动命令sh bin/zkServer.sh start查看ZK服务状态:sh bin/zkServer.sh status停止ZK服务: sh bin/zkServer.sh stop重启ZK服务:sh bin/zkServer.sh restartlinux启动客户端./zkCli.sh退出客户端quit查看所有节点ls /查看某个节点ls /节点1/节点2查看节点种的内容get /节点1/节点2删除节点delete /节点1/节点2创建文件,
2020-12-11 11:27:04
141
原创 spring中通过注解来实现对象的创建和赋值
使用步骤:1、加入maven依赖:spring-context(注解的使用必须加入spring-aop依赖,该依赖在引入spring-context时,已经被间接引入)2、在类中加入spring注解(多个不同功能的注解)3、在spring的配置文件中,加入一个组件扫描器的标签,来说明注解在项目中的位置。...
2020-11-22 21:33:09
1068
原创 spring 给对象赋值
概念spring 给对象赋值的方式有两种 一种是配置文件,一种是注解DI:依赖注入,给属性赋值1、基于XML的实现:在spring的配置文件中,使用标签和 属性完成2、基于注解实现:使用spring中的注解来完成属性的赋值DI语法分类:1、set注入(设置注入):spring调用类的set方法,在set方法可以实现属性的赋值。【80%左右都是使用该方法注入】2、构造注入:spring中调用构造方法,创建对象,在构造方法中王车工赋值基于XML的实现set注入set方法是在构造方法之后,才执
2020-11-22 21:32:27
903
原创 spring junit
概念测试的方法:1、main方式2、junit工具(更加简单和方便)junit:单元测试,一个工具类库,做测试方法用的单元:指方法,一个类中由多个方法,每个方法成为欸单元使用步骤加入依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version>
2020-11-21 14:15:16
95
原创 spring 项目创建对象
建立简单的spring项目,实现容器创建对象只要由类就可以创建对象新建maven项目:以maven-archetype-quickstart为模板删除多余的配置加入spring依赖、junit依赖创建类(含接口)创建spring配置文件:beans.xml,声明类的信息,由spring创建和管理测试类,测试声明对象项目结构pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven
2020-11-21 13:28:26
131
原创 redis的基本数据结构 字典
概念字典又称为符号表和关联数组或者映射,是一种用于保存键值对的抽象数据结构。字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构。C语言中并没有内置这种数据结构,于是Redis中构建了属于自己的字典。有很多高级的字典结构实现,例如我们 Java 中的 HashMap 底层实现,根据键的 Hash 值均匀的将键值对分散到数组中,并在遇到哈希冲突时,冲突的键值对通
2020-11-02 13:39:24
197
转载 jwt工具实现token
jwt简介JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者RSA的公私密钥对进行签名。简洁(Compact):可以通过url,post参数或者在HTTP header发送,因为数据量小,传输速度也很快自包含(Self-contained):负载中包含了所有用户所需要的信息,避免了多
2020-10-23 17:16:14
248
1
转载 token定义
参考1、什么是Cookie?cookie指的就是浏览器里面能永久存储数据的一种数据存储功能。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。Cookie有什么功能特点呢?在同一个页面中设置 Cookie,实际上是按从后往前的顺序进行的。如果要先删
2020-10-23 15:44:37
463
1
原创 Java常用的工具类
IOUtilsLongAdder:LongAdder 是一个多线程高并发时使用的自增计数器,它的设计思想就是以空间换时间。相比较于 AtomicLong,它在高并发时更高效,因为 AtomicLong 自增时使用了 unsafe.getAndAddLongcells数组是LongAdder高性能实现的必杀器:AtomicInteger只有一个value,所有线程累加都要通过cas竞争value这一个变量,高并发下线程争用非常严重;而LongAdder则有两个值用于累加,一个是base,它的作用类
2020-10-23 15:22:01
99
原创 Java中的锁机制
基础知识基础知识之一:锁的类型锁从宏观上分类,分为悲观锁与乐观锁。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。java中的乐观锁基本都是通过CAS操作实现的,CAS是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。悲观锁悲观
2020-10-23 11:09:45
107
原创 CountDownLatch概念
CountDownLatch概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。CountDownLatch的用法
2020-10-22 14:44:31
351
转载 zookeeper中watcher的使用及原理
watcher网上watcher解决的问题在进入watcher之前我们先试想在应用服务器集群中可能存在的两个问题:因为集群中有很多机器,当某个通用的配置发生变化后,怎么让自动的让所有服务器的配置统一生效?当集群中某个节点宕机,如何让集群中的其他节点知道?为了解决这两个问题,zookeeper引入了watcher机制来实现发布/订阅功能,能够让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态发生变化时,会通知所有订阅者。watcher基本原理zookeeper中实现watcher需要
2020-10-22 14:39:58
1635
原创 zookeepe API
zookeeper安装教程百度即可实际开发中可以编写一个Java类来读取zookeeper的配置文件ZooKeeper API的基础知识与ZooKeeper集合进行交互的应用程序称为 ZooKeeper客户端或简称客户端。Znode是ZooKeeper集合的核心组件,ZooKeeper API提供了一小组方法使用ZooKeeper集合来操纵znode的所有细节。客户端应该遵循以步骤,与ZooKeeper集合进行清晰和干净的交互。连接到ZooKeeper集合。ZooKeeper集合为客户端分.
2020-10-22 13:51:49
91
原创 Zookeeper leader选举
Leader 选举是保证分布式数据一致性的关键所在。Leader 选举分为 Zookeeper 集群初始化启动时选举和 Zookeeper 集群运行期间 Leader 重新选举两种情况。在讲解 Leader 选举前先了解一下 Zookeeper 节点 4 种可能状态和事务ID概念。1、Zookeeper 节点状态LOOKING:寻找 Leader 状态,处于该状态需要进入选举流程LEADING:领导者状态,处于该状态的节点说明是角色已经是 LeaderFOLLOWING:跟随者状态,表示 Lead
2020-10-22 10:45:18
103
转载 zookeeper工作流程
一旦ZooKeeper集合启动,它将等待客户端连接。客户端将连接到ZooKeeper集合中的一个节点。它可以是领导或跟随者节点。一旦客户端被连接,节点将向特定客户端分配会话ID并向该客户端发送确认。如果客户端没有收到确认,它将尝试连接ZooKeeper集合中的另一个节点。 一旦连接到节点,客户端将以有规律的间隔向节点发送心跳,以确保连接不会丢失。如果客户端想要读取特定的znode,它将会向具有znode路径的节点发送读取请求,并且节点通过从其自己的数据库获取来返回所请求的znode。为此,在ZooKee
2020-10-22 10:38:06
254
原创 zookeeper简介
zookeeper详解基本概念zookeeper概述Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。简单的说,zookeeper=文件系统+通知机制。分布式应用分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有
2020-10-22 10:27:00
151
原创 Java8 InvocationHandler 动态代理
java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invoke方法。每一个动态代理类的调用处理程序都必须实现InvocationHandler接口,并且每个代理类的实例都
2020-10-21 17:26:31
149
原创 Redis链表
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活的调整链表的长度。作为一种常用的数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言没有内置这种数据结构,所以Redis构建了自己的链表实现。链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。除了链表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis
2020-10-19 15:26:48
60
原创 Redis数据结构-简单的动态字符串
前言C语言中的字符串是基于数组来实现的,每个字符串会多出一个空字符:Redis中的简单动态字符串是SDS(simple dynamic string)类型:sds遵循C语言中以空字符为结尾的惯例是为了利用C语言函数库中的某些字符串函数,而且添加空字符的这一个操作是有sds函数自动完成的。redis采用SDS的原因是为了满足字符串在安全性、效率以及功能方面的要求【C语言中的字符串并不能满足】SDS的优点常数复杂度获取字符串长度(len)C语言中的字符串并不记录长度信息,所以需要对整个字符串
2020-10-19 14:09:09
539
原创 jvm调优CPU突然飙问题定位
基本概念内存泄漏内存溢出(一定是代码问题)调优用到的工具jdk自带的原声工具 分类 名称 作用 命令行工具 jps 虚拟机状况查询 jsatck java堆栈跟踪工具 jinfo java配置信息工具 jmap java内存映像工具 jstat 虚拟机统计信息监视工具 可视化监控工具 jconsole Java监视与管理控制台 visualVM 多台合一故障处理工具 可视化监控工具:需要服务器开通一个调试端口,正式环境
2020-10-11 16:27:43
483
原创 强引用,弱引用,软引用,虚引用
前言从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。总结Java中4种引用的级别和强度由高到低依次为:强引用 -> 软引用 -> 弱引用 -> 虚引用引用类型被垃圾回收时间用途生存时间强引用从来不会对象的一般状态JVM软引用当内存不足时对象缓存内存不足时终止弱引用正常垃圾回收时对象缓存垃圾回收后终止虚引用正常垃圾
2020-10-08 11:40:48
424
原创 MySql索引
索引定义一般情况下,对于查询语句,在没有建立索引的时候,mysql会进行全表扫描,而且不扫描完不会停止,如果我在nickname上建立索引,那么mysql相当于只扫描nickname这一列即可,而且因为这一列已排好序,找到对应结果或结果集可以直接返回。索引分类单列索引(全文索引,主键索引,唯一索引,普通索引):一个索引只包含一个列,一个表可以有多个单列索引。组合索引:一个组合索引包含两个或两个以上的列索引存储类型-B-Tree索引InnoDB使用的是B+Tree。B+Tree:每一个叶子
2020-10-07 10:27:52
159
原创 ArraryList 扩容
ArraryList 扩容机制ArraryList 的初始容量是10,扩展为原来的1.5倍;在执行add方法时,判断容量是否充足; //arrarylist public boolean add(E e) { ensureCapacityInternal(size + 1);//确保内部容量 elementData[size++] = e; return true; } private void ensureCapacityInternal
2020-10-06 15:20:08
132
1
原创 jvm GC基础
什么是垃圾简单说就是内存中已经不再被使用到的空间就是垃圾怎么判断是垃圾引用计数:(python在用)每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。可达性分析(Reachability Analysis)又称为根可达:(Java在用)GCroots,或者说tracingGC的“根集合”就是一组必须活跃的引用基本思路就是通过一系列名为”GCRoots”的对象作为起始点,从这个被称为GC Roots的对象开始向
2020-09-20 18:39:42
166
原创 堆的参数调整
堆的参数调整入门调优参考堆结构jdk1.7Young Gen(-Xmn):新生代【-Xmn:新生代的大小,默认是1/3】JVM Heap(-Xms -Xmx):老年代【-Xms:老年带的初始大小;-Xmx老年代的最大大小】-XX:PermSize:永久代的默认值-XX:MaxPermSize:永久代的最大值jdk1.8:将永久代取消换成元空间,元空间存储在物理内存。因此,默认情况下,元空间的大小仅受本地内存的限制。类的元数据放入native memoty,字符串池 和类的静态变量放
2020-09-13 17:52:31
292
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人