- 博客(42)
- 收藏
- 关注
原创 JAVA 多线程
JDK5以后提供 实现提供比使用synchronized方法和语句可以获得更广泛的锁定操作。Lock是接口 不能直接实例化 采用它的实现类 ReentrantLock来定义实例化。:线程是操作系统能够进行运算调度的最小单位 被包含在进程当中 是进程中的实际运作单位。注意 put() take()方法的底层实现 自动实现锁的功能了。等待唤醒机制:生产者消费者模式是一个十分经典的多线程协作的模式。特点2 里面的代码全部执行完毕 线程出来后 锁自动打开。1 继承Thread类。多线程实现的三种方式。
2024-09-09 15:36:35
458
1
原创 MyBatisPlus 第二天
所以不会上锁,但是如果想要更新数据,则会在更新前检查在读取至更新这段时间别人有没有修改过这个数据。如果修改过,则重新读取,再次尝试更新,循环上述步骤直到更新成功(当然也允许更新失败的线程放弃操作),乐观锁适用于多读的应用类型,这样可以提高吞吐量。物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据。公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的。3 @TableField:实体类中的字段名和数据库中的字段名不一致。此时运行原先的测试类,就能够正确输出120。
2024-08-11 16:07:44
482
原创 VUE 基础(六)
大致思路: 各个组件中配置内容 格式 样式 在一个vue中进行组件的汇总,main.js创建Vue示例 并表明为哪个容器使用 xxx .html直接使用。全局指令: Vue.directive(指令名,配置对象) Vue.directive(指令函数)2) 第二种写法(CamelCase): School(Vue脚手架才能使用)1) 第一种写法(kebab-case): my-school。2) 第二种写法(首字母大写) School。组件包括: 1)非单文件组件 2) 单文件组件。
2024-08-11 00:17:41
519
原创 MyBatisPlus 第一天
2) 5.x的版本可以使用8.0的驱动 具有向上兼容 5.x的没 有 cj包,8.0有cj包(关系到驱动项和URL)3) 你的电脑安装的是8.0的mysql 需要在URL后面加上时 区,5.x的版本不需要。
2024-08-10 11:29:34
686
原创 数据库中用JSON数据存储
如果查询出来的数据不想要双引号 可以用下面的形式。(4) 只含有一个键就返回数据/全部含有就返回数据。(5) 只要含有一个相关数据 返回它的key。(2) 增加(在原有JSON数据中)1 插入JSON数据的方法。2 查询JSON数据的方法。3 修改JSON数据的方法。
2024-08-07 10:43:13
434
原创 SpringBoot基础 第二天
(1) 要在src/main/resources文件夹下创建static和templates两个文件夹staitc存储静态资源,templates存储模板引擎。创建数据源注册类(可以写在启动类上 不要放在MvcConfig类中,也可以单独写一个配置类)这里的${hello}可以联想成Vue中的{{}}表达式,这里调用了控制器中的方法。在application.yaml中配置数据库的驱动 用户名 密码。(2)要在pom.xml依赖下导入依赖。同上在yaml中配置数据库的基本信息。配置druid数据库的话。
2024-08-06 22:54:28
401
原创 SpringBoot简单项目(二维码扫描)
这里注意下,如果你是用手机扫码的话,手机很多应用是配有自动扫描的就i不需要下面扫描的代码了。pom.xml中导入依赖。
2024-08-06 10:39:29
498
原创 SpringBoot基础 第一天
Person类中利用ConfigurationProperties(prefix=" ")引入配置类中的元素 但是注意Person类中的类的名字必须与application.yaml中一致。如果不是标准的application.properties 是其他的Person类中需要用PropertySource来添加配置文件的路径。给容器中添加组件,将方法的返回值添加到容器中 容器中这个组件的默认ID就是方法名。的配置文件,我们自己编写的配置文件,也不能自动识别;的配置文件,让配置文件里面的内容生效;
2024-08-05 23:09:45
644
原创 SpringBoot 增删改查项目
3 在templates文件夹下,建立首页,增加,更新网页。4 建立Service以及Impl接口,Mapper方法。配置数据源(在application.yaml)5 在Controller层创建控制器。1 pom.xml中导入依赖。3 建立实体类 MyUser。(1)首页 index。(1) 首页展示信息。
2024-08-05 15:59:08
540
2
原创 Vue基础(五)
4v-once:所在节点在初次动态渲染时成为静态资源 以后数值变化不会引起v-once所在结构的变化。3 v-cloak:使用css配合v-cloak可以解决网速过慢时网页显示{{xxx}}的问题。1 v-text (不推荐) 不如{{}}更灵活 不解析标签。2 v-html (可获得cookie)5 v-pre:跳过其所在节点的编译过程。
2024-08-03 21:10:54
168
原创 SpringBoot(一) SpingBoot的创建
选择Spring Intializr进入 进行项目的创建。(3) 然后点击下一步 进入这个网页进行最后调整 SpringBoot项目就创建完成了。1 在idea中创建,以下为具体步骤(我的idea用的2021版本 其他版本略有不同)(1)点击项目,进入这个网页,对你的项目名称 所在位置 JDK版本等进行调整。3输入网址 start.aliyun.com进入网页 进行创建 过程同2。(2) 点击服务器url 进入网页 对一些版本进行调整。2 输入网址 https://spring.io 进入网页。
2024-07-31 22:54:43
266
原创 VUE 基础(三)
如果内容变了,生成新的真实DOM,随后替换页面中的真实DOM。1 虚拟DOM中key的作用:当数据发生变化时,VUE会根据新的数据生成新的虚拟DOM随后将新的DOM和旧的DOM进行比较。(1) computed封装对数据处理获得一个结果,可以直接使用->this.计算属性 {{计算属性}}2 对比规则:(1)旧虚拟DOM找到了与新虚拟DOM相同的key。3 用index作为key引发的问题。面试题: react,vue中的key的作用(key的内部原理)1 计算属性:基于现有的数据,计算出新的属性。
2024-07-31 10:29:47
333
原创 VUE 基础(二)
绑定后 无论是改变v-model中的值 还是data中的整体的数值都会发生相同的变化。2 v-if:根据表达值的真假,切换元素的显示和隐藏(用法大致同v-show 不过多展示)5 v-model:获取和设置表单元素的值(双向数据绑定) 通常用于文本内容。3 v-bind:设置元素的属性(比如src,title,class)1 v-show:根据表达值的真假,切换元素的显示和隐藏。格式: v_bind:属性名=表达式。4 v-for:根据数据生成列表结构。
2024-07-29 19:01:20
397
原创 VUE 基础(一)
使用数据格式是 v-text=" " 引号里面添加引用的数据的名称,如果直接使用v-text的话 标签的内容会全部被替换 所以常用第二种方法 +用来拼接前后的内容,同时也可以用+拼接数据。只在作用范围内有效果,外面的message不受影响 当然除了id选择器也可以选择使用其他选择器(建议使用id选择器)v-html与v-text:如果只是单纯文本框内容使用v-text 如果需要进行渲染则使用v-html。格式: v-on:事件名=”方法"(可以将v-on:变换成@)3 v-text:设置标签的文本值。
2024-07-27 23:58:40
311
原创 alicebot(一)
rule()方法用于定义插件的触发规则,handle()方法当符合插件规则时会被调用,同时每个插件类都必须是plugin的子类。上述代码中 else用于try语句成功执行,触发条件是你发送hello,它会发送信息问你的姓名,然后返回"hello+姓名"ask()和get()方法 都可以指定超时时间,因为都是异步方法 所以需要使用await。,则当前插件执行完毕后会停止当前事件传播,比当前插件优先级低的插件将不会被执行。它会先运行rule()方法 根据返回值判断是否要运行handle()方法。
2024-07-26 22:51:15
315
原创 【无标题】
思路:将大于中位数的数字 初始化为1 小于的初始化为-1 将等于的化为0 运用前缀和和后缀和的方式 将中位数的左边取后缀和 中位数的右边取后缀和 左右两边的值是相反数即为一组 最终取共有几组即为中位数数列的个数。给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。第一行为两个正整数n和b ,第二行为1~n 的排列。输出一个整数,即中位数为b的连续子序列个数。
2024-04-28 12:23:34
339
原创 数据库的基本操作
- select * from tb_1 where date>="2024-4-5" and date<="2024-4-25" and sex="女"-- 聚合查询 提供聚合函数 count(字段) 数量 avg() 平均值 sum() 求和 max()求最大 min()求最小。-- select * from tb_1 where name="打算" or sex="女"-- select * from tb_1 where name in ("打算","撒旦")-- 范围查找 in。
2024-04-28 10:26:44
380
原创 【无标题】
来源:牛客网某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
2024-04-24 17:36:41
422
原创 简单仓库管理系统(增删改查功能)
商品名称: <input type="text" class="name_1"> <input type="button" class="btn_1" value="查找">String jsonStr = "{\"code\":0,\"msg\":\"成功了\",\"count\":"+count+",\"data\":[";String jsonStr = "{\"code\":0,\"msg\":\"成功了\",\"data\":[";alert("寻找进不去")
2024-04-24 16:40:22
2112
原创 java 抽象类(abstract)
4 抽象类当中不一定全是抽象方法 也可以使用普通方法 普通方法在抽象类中必须是实现好的 子类不会被强制重写抽象类当中的普通方法。6 final不能和abstract一起用 final修饰的方法是禁止要求重写 abstract要求的是必须重写 两者冲突。2 abstract修饰的抽象方法可以不在抽象类当中实现 但一定要在子类当中重写 并实现。7 private修饰的方法对子类不可见 abstract修饰的方法要求重写冲突。9子类继承抽象类后 如果不想实现抽象类中的抽象方法 那么此类必须是个抽象类。
2024-04-22 23:02:03
348
原创 java使用数据库
/jdbc:msql://localhost:端口名字/连接的数据库名字。//加载驱动 报错的原因:这个类可能找不到 解决方法:抛出或者try/catch。System.out.println("修改成功");
2024-04-22 09:55:55
965
2
原创 L2-005 集合相似度
给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。
2024-04-19 21:26:31
573
1
原创 L2-004 这是二叉搜索树吗?
一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。
2024-04-19 10:56:38
1742
1
原创 golang 流程控制
fmt.Println("学生1年龄是: ",age)fmt.Println("学生1年龄是: ",age)fmt.Println("A级")fmt.Println("B级")fmt.Println("C级")fmt.Println("D级")fmt.Println("E级")fmt.Println("A级")fmt.Println("B级")fmt.Println("C级")fmt.Println("E级")fmt.Println("D级")fmt.Println("A级")
2024-04-18 23:02:23
760
原创 PTA L2-003 月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。
2024-04-18 20:32:17
274
原创 java 继承
②:发生在父子类当中,子类可以重写父类的方法。重写父类的方法要求重写父类方法的实现逻辑,方法名、参数列表必须相同。返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;①:重载发生在同一个类当中,方法的重载要求:方法名相同,但是参数列表不同(参数列表的的变量形式不同)。继承的层次: java只支持单继承,一个子类只能有一个父类,一个父类可以有多个子类。②:调用父类的构造器,只能在子类构造器的第一行使用。子类如果和父类的方法重合了,那么子类对象优先调用自己的。
2024-04-18 20:09:55
163
原创 golang 终端输入 运算符优先顺序
/传入地址的目的是 在Scanln函数中 对地址的值改变时同时也对age进行了改变。fmt.Println("学生2年龄是:",age_1)fmt.Println("学生1年龄是: ",age)&& 只要有一个是false 则一定是false。fmt.Println("请输入学生1年龄:")fmt.Println("请输入学生2年龄:")||只要一个是true 则一定是true。其他运算符 &返回变量的存储地址。//方式2 Scanf。* 取指针变量所对应的值。//方式1 Scanln。
2024-04-18 17:31:02
289
原创 PTA L2-001 紧急救援
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地的城市编号。
2024-04-18 17:06:17
1872
原创 golang 指针
func main(){ var age int =18 //*int 是指针类型(可以理解为指向int类型的指针) //&age是一个地址 是ptr变量具体的值 var ptr *int =&age //想获取ptr所存储的值 fmt.Println(*ptr) }4 基本数据类型都有对应的指针类型 表现形式为 *+变量类型。&+变量 可以获取变量内存的地址。2 指针变量接收的一定是地址值。3 指针变量的地址不可以不匹配。1 通过指针改变变量的值。
2024-04-17 17:06:40
604
原创 golang数据类型转换
/ParaseInt(字符串,转化成几进制,转化的数据类型)PS:转换时只是单纯将T的值转换类型 T的类型并没有发生变化。空间大的数据类型转化为数据小的数据类型 可能会出现数据的溢出。//返回值有两个 第二个可以用_直接忽略。基本数据类型转化为字符串类型。字符串类型转化为基本数据类型。
2024-04-16 17:35:00
213
原创 golang 浮点 字符 bool 字符串
字符类型:本质是一个整数 可以直接参与运算 输出字符的时候 将码值输出(字母,数字,标点详见ASCII码表,汉字详见Unicode)一般字符类型 用byte定义 但汉字会出下溢出一般使用int类型存储。字符是不可变的 指的是字符串一旦定义 其中字符串的值无法改变。字符串中如果没有特殊字符 字符串可以使用双引号“ ”字符串类型:一串固定长度的字符连接起来的字符序列。如果有特殊字符 字符串的表现形式使用反引号‘ ’浮点类型底层存储: 符号位+指数位+尾数位。浮点类型:存放小数值的。
2024-04-16 12:07:56
340
原创 golang 变量的定义方法 整数数据类型认识
3) var num 如果没有写变量类型 根据等号后面的值进行自动判断。使用建议:保证程序正常运行的情况下 尽可能使用占用空间小的数据类型。2) var num int 指定变量类型 不赋值 使用默认值。注意:数字的大小不能超过类型的表数范围 否则会出现报错。设计者认为这样定义全局变量过于麻烦,可使用以下形式。4)num :=50 注意" : "介绍:相当于一个数据存储空间的表示。例如 var age int;重复定义相同的变量会出现报错。全局变量:定义在函数外的变量。
2024-04-16 11:39:44
485
原创 static输出顺序 final基本用法
先将父类放入方法区,再将子类放入方法区,父类中存在static,先进行输出,随后输出子类中的static 然后执行子类中的main方法,new Test()不仅创建了子类中的test,同时创建了父类中的方法(和多态有关系) 同时父类的方法比子类中的方法更早创建所以先执行。进行扫描后 从上到下按顺序执行 先进行Demo内部的程序 因为static修饰方法和static修饰代码块的执行等级是同级的,最后再进行class内部的程序输出。多态:子类对象可以使用父类对象的方法。程序中存在static的输出顺序。
2024-04-16 10:53:01
325
原创 golang语言 第一节 输出hello
在所在文件的目录下 输入 go build 1.go。func main() main主函数 程序的入口。然后在cmd 再输入1.exe 即可得到输出结果。结果输出时需要使用cmd 快捷方式win+r。package main 声明文件所在的包。import "fmt" 引入所需要的包。1.exe是编译后产生的二进制可执行文件。会在当前文件夹下生成两个文件 如图。例如文件名字为1.go。
2024-04-15 21:36:24
218
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人