- 博客(60)
- 收藏
- 关注
原创 Nestjs基础
Nest 是一个渐进的 Node.js 框架,可以在 TypeScript 和 JavaScript (ES6、ES7、ES8)之上构建高效、可伸缩的企业级服务器端应用程序。
2024-07-07 22:08:18
683
原创 Vue3基础(二)
子 => 父事件对象$event: 是调用emit时所提供的数据,可以是任意类型!!!$attrs用于实现当前组件的父组件,向当前组件的子组件通信(祖→孙$attrs是一个对象,包含所有父组件传入的标签属性。$attrs会自动排除props中声明的属性(可以认为声明过的props被子组件自己“消费”了)父组件子组件
2024-07-05 23:35:25
858
原创 伸缩盒模型,flex布局
默认值为 auto,表示继承父元素的 align-items 属性。order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。通过align-self属性,可以单独调整某个伸缩项目的对齐方式。
2024-06-25 21:39:50
310
原创 nvm安装
查看已经安装的nodejs版本列表(*号所在的是正在使用的)在安装目录下找到settings.txt文件,追加淘宝镜像。查看nodejs和npm的版本号,验证是否成功。使用某个版本号的nodejs。cmd下查看nvm版本号。查看nodejs版本列表。打开nodejs版本控制。
2024-06-24 00:06:35
289
原创 Java多线程下载工具,多线程,多任务,断点续传,GUI
多任务下载:封装任务类,每个任务类中记录着下载地址(URL)、保存地址、下载线程数组、监控线程、下载的对话框、是否时断点续传、线程数量、每个线程已经下载的字节数(当断点续传时)、文件长度、是否正在下载等信息,每次新建下载任务都会初始化一个任务对象,然后这个对象运行下载线程和监控线程。下载任务监控线程:每个下载任务中都包括一个监控和线程,监控和线程每隔一秒会检查每个下载线程的下载情况,并实时计算出下载的完成百分比、已下载的大小、下载速度、已下载时间、预计下载剩余时间等信息,并实时显示在对话框上。
2024-06-17 21:34:42
1053
原创 vite搭建React+ts+eslint+prettier
初始化完成后已经配置好eslintsrc下一般只留下初始化git仓库(可选)git init .
2024-05-18 11:21:55
632
原创 React18
/ 封装自定义Hook// 问题: 布尔切换的逻辑 当前组件耦合在一起的 不方便复用// 解决思路: 自定义hook// 可复用的逻辑代码value)// 哪些状态和回调函数需要在其他组件中使用 returnreturn {value,toggle// 封装自定义hook通用思路// 1. 声明一个以use打头的函数// 2. 在函数体内封装可复用的逻辑(只要是可复用的逻辑)// 3. 把组件中用到的状态或者回调return出去(以对象或者数组)
2024-05-16 21:41:27
1456
1
原创 node.js
一般只给html文件设置字符集,其他的资源会根据引用它的html文件的字符集进行解析。__dirname是文件夹的绝对路径,__filename是文件的绝对路径。content-type中的字符集优先级该与html中的meta标签的字符集。将请求信息转化成一个对象,并将属性名都转化成了『小写』关于路径:如果访问网站的时候,只填写了。地址或者是域名信息,此时请求的路径为『:这个请求是属于浏览器自动发送的请求。通过配置命令别名可以更简单的执行命令。用 writeFile实现追加写入。
2024-05-16 21:40:26
1001
原创 八股设计模式(一)
需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:1.类图中的符号+:表示public-:表示private#:表示protected2.泛化关系(继承)用带空心三角箭头的实线来表示3.依赖关系使用带箭头的虚线来表示//添加配料。
2024-05-07 11:56:10
590
原创 八股kafka(一)
第三个有可能是在消费者端丢失消息,kafka消费消息都是按照offset进行标记消费的,消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次,如果出现重平衡的情况,可能会重复消费或丢失数据。如果有这样的需求的话,我们是可以解决的,把消息都存储同一个分区下就行了,有两种方式都可以进行设置,第一个是发送消息时指定分区号,第二个是发送消息时按照相同的业务设置相同的key,因为默认情况下分区也是通过key的hashcode值来选择分区的,hash值如果一样的话,分区肯定也是一样的。
2024-05-07 11:55:52
1075
原创 八股springcloud(一)
提供了两种方式:1,创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,只是对配置的这个服务生效远程调用服务雪崩是指一个服务失败,导致整条链路的服务都失败的情形,一般我们在项目解决的话就是两种方案,第一个是服务降级,第二个是服务熔断,如果流量太大的话,可以考虑限流。
2024-05-06 18:20:04
739
原创 八股spring+springboot+springMVC+Mybatis(一)
候选人aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,一般比如可以做为公共日志保存,事务处理等3、面试官。
2024-05-06 16:58:38
1218
原创 JVM面试篇
一、什么是JVM二、字节码的组成三、说一下运行时数据区四、哪些区域会出现内存溢出,会有什么现象?五、JVM在JDK6-8之间在内存区域上有什么不同六、类的生命周期七、什么是类加载器八、什么是双亲委派机制九、如何打破双亲委派机制什么是双亲委派机制?双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上交给父类加载器查找是否加载过,再由顶向下进行加载。 双亲委派机制的作用
2024-03-31 14:14:00
339
原创 JVM原理
在32位虚拟机中,局部变量表中每个槽占32位,所以long和double类型的数都占据两个槽在64位虚拟机中, 局部变量表中每个槽占32位,但是为了保证字节码的通用性,所以仍然占两个槽,内存空间为通用性做出了让步。堆->栈 : 补全 栈->堆 : 截断 boolean特殊,只取最后一位 问题:finally
2024-03-31 14:12:39
491
原创 JUC/多线程 模式(四)
即,用在一个线程等待另一个线程的执行结果产生结果的线程和使用结果的线程是一一对应的,有多少个生产结果的线程就有多少个使用结果的线程。要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者消费者)JDK中,join的实现、Future的实现,采用的就是此模式因为要等待另一方的结果,因此归类到同步模式。
2024-03-30 10:02:48
992
原创 JUC/多线程原理(三)
Override@Override@Override@Override// 尝试,不成功,进入等待队列@Override// 尝试,不成功,进入等待队列,可打断@Override// 尝试一次,不成功返回,不进入队列@Override// 尝试,不成功,进入等待队列,有时限@Override// 释放锁@Override// 生成条件变量。
2024-03-30 10:02:20
1024
原创 读写锁 应用/原理
0,则已经加了写锁,判断拥有锁的线程是否是当前线程,如果不是当前线程,进入if内返回false,如果是当前线程,执行下面代码。=0,表示进行了锁重入,直接返回false,如果锁状态==0,将当前拥有锁的线程设置为null,返回true。向数据库中查询数据,为了提高性能,多次查询同一条信息时,只有第一次是从数据库中查询,剩下从缓存中查询,一旦修改数据库,缓存清空。t2线程释放后返回false,释放锁成功,t3线程释放后,运行到此处返回true返回到。支持锁重入:即读锁内可以有读锁,写锁内可以有写锁。
2024-03-29 09:31:56
1060
原创 JVM基础
先初始化main方法所在的类,打印D,在打印A,创建对象时先执行搞糟代码块,打印C,执行构造方法打印B,打印CBloadClass双亲委派机制源码//双亲委派机制部分代码//根据路径获取字节码二进制文件//对字节码二进制文件进行校验//将二进制文件加载到方法区和栈中打破双亲委派机制:自定义类加载器,重写loadClass()方法,删除双亲委派机制部分代码,直接加载二进制文件,然后调用defineClass()方法如果自定义类加载器而不想破坏双亲委派机制,应该重写findClass()方法。
2024-03-29 09:28:57
1398
原创 JUC/多线程锁的用法(二)
支持多间休息室,有专门等烟的休息室、专门等早餐的休息室、唤醒时也是按休息室来唤醒。等待区,从而让其他线程就机会获取对象的锁。只有“某个线程”获得锁之后,“某个线程”才能唤醒正在wait的线程。等待的线程中挑一个唤醒(并不是直接获得CPU,而是进入等待队列)notifyAll是唤醒所有等待线程,就不那么【精确】强大之处在于,它是支持多个条件变量的,这就好比。是以线程为单位来【阻塞】和【唤醒】线程,而。它们状态 TIMED_WAITING。在睡眠的同时,不会释放对象锁的,但。只能随机唤醒一个等待线程,
2024-03-28 09:31:11
818
原创 JUC/多线程的基本使用(一)
1、自定义拒绝策略接口当等待队列满了的时候,采取什么拒绝策略@FunctionalInterface // 拒绝策略。
2024-03-28 09:30:02
701
原创 线程安全集合类原理
它维护了一个segment数组,每个segment对应一把锁优点:如果多个线程访问不同的segment,实际是没有冲突的,这与jdk8中是类似的缺点:Segments数组默认大小为16,这个容量初始化指定后就不能改变了,并且不是懒惰初始化。
2024-03-27 19:16:12
577
原创 ReentrantLock 原理
循环,找出当前节点的前驱节点定义为p,此时p就是哑元节点,此时 p == head,再次尝试获取锁(如果当前节点是排在第二位的节点,就可以尝试再次加锁),如果尝试加锁成功。先将当前节点的状态设置为0,进入enq(node)方法,将node挂在到阻塞队列末尾,返回node的前驱节点(Thread-3)记为p,将p的状态设置为-1,然后返回true。将关联s线程(刚才关联Thread-1线程的节点)的节点设置为头节点(删除之前的头节点,将此节点关联的线程改为null)
2024-03-27 19:15:40
1668
原创 leetcode 25、k个一组翻转链表
是一个正整数,它的值小于或等于链表的长度。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。的整数倍,那么请将最后剩余的节点保持原有顺序。个节点一组进行翻转,请你返回修改后的链表。
2024-03-12 12:03:53
187
原创 Git基础使用
git init要使用Git对我们的代码进行版本控制,首先需要获得本地仓库1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库2)进入这个目录中,点击右键打开Git bash窗口3)执行命令git init4)如果创建成功后可在文件夹下看到隐藏的.git目录。
2024-02-18 23:51:33
1156
原创 kafka安装配置(docker)
Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper。Docker安装zookeeper。Docker安装kafka。
2024-02-14 11:46:20
582
1
原创 SpringCloud进阶(一)
Sentinel是阿里巴巴开源的一款微服务流量控制组件。Sentinel 具有以下特征:•丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。•完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。•广泛的开源生态。
2024-02-01 22:36:30
1418
原创 Nacos安装
在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releases如图:将压缩包解压到任意非中文目录下,如图:目录说明:bin:启动脚本conf:配置文件Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。如果无法关闭占用8848端口的进程,也
2024-01-31 00:24:51
289
原创 docker创建ES集群
首先编写一个docker-compose文件,内容如下:这里用了3个容器,建议linux虚拟机至少有4G内存es运行需要修改一些linux系统权限,修改文件sysctl -p。
2024-01-30 00:44:46
465
Java五子棋小游戏,GUI
2024-06-17
Java多线程下载器,多线程,多任务,断点续传
2024-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人