首页
学习
活动
专区
工具
TVP
发布

软件工程

专栏成员
712
文章
408295
阅读量
31
订阅数
CompletableFuture的特点以及常规使用
CompletableFuture是Java 8引入的一个新特性,是一种用于异步编程的工具类。它可以用于处理异步任务,例如网络请求、文件读写、数据库查询等等,使得这些任务可以并发执行并在完成时得到通知。
名字是乱打的
2023-04-30
4010
树的子结构判断
📷 注意这里是判断树2是不是树1的子结构,而不是判断树2是不是树1的子树!!!我们仅需判断树2的所有结点都能在树1的一片连续区域找到即可; //判断树2是否是树1的子结构 //思路: //若树2是树1的子结构那么必然存在一条结点后面的树的结构和树2完全一致,包括左右子树 public boolean HasSubtree(TreeNode root1,TreeNode root2) { if (root1==null||root2==null){
名字是乱打的
2022-12-14
2340
按之字形顺序打印二叉树
两个栈来实现; 定义一个放奇数层得栈,一个方偶数层得栈,和一个层奇偶标志, 遍历两个栈,每次消灭一个栈中得数据,添加在list中添加一层得数据 需要注意得是结合栈得先进后出性质,当我们遍历到奇数层时候,我们要从左到右得添加数据到栈二.同理偶数相反.
名字是乱打的
2022-12-13
2620
判断数组是否是二叉树搜索树的后序遍历结果
简单粗暴方法 主要目标是找到左子树结束的点,因为有可能没有左子树,因此这里先将左子树开始的点设置为左边界之前的一个点;
名字是乱打的
2022-12-13
5100
序列化与反序列化二叉树
📷 思路: 回溯 代码: String Serialize(TreeNode root) { if (root==null){ return "#!"; } //先序遍历 String res=root.val+"!"; res+=Serialize(root.left); res+=Serialize(root.right); return res; }
名字是乱打的
2022-12-13
1510
二叉搜索树转双向链表
📷 思路: 明确Convert函数的功能。 输入:输入一个二叉搜索树的根节点。 过程:将其转化为一个有序的双向链表。 输出:返回该链表的头节点。 明确成员变量pLast的功能。 pLast用于记录当前链表的末尾节点。 明确递归过程。 递归的过程就相当于按照中序遍历,将整个树分解成了无数的小树,然后将他们分别转化成了一小段一小段的双向链表。再利用pLast记录总的链表的末尾,然后将这些小段链表一个接一个地加到末尾。 /** * 已排链表的最后一个结点 */ priva
名字是乱打的
2022-12-13
2550
Redis的Lua
贴一个自己封装的通用lua执行器 /** * 通用lua脚本执行器 * * @param luaStr lua脚本 * @param resType 返回值类型 * @param keys key值集合 * @param args 参数类型集合 * @return lua执行结果 * @author zyh */ <T> T commonLuaExecute(String luaStr, C
名字是乱打的
2022-12-13
2580
用先序和中序遍历重建二叉树
📷 1. 分析 前序遍历:根→左→右 中序遍历:左→根→右 由前序遍历序列pre={1,2,4,7,3,5,6,8}可知根结点是1; 则在中序遍历序列in={4,7,2,1,5,3,8,6}中找到1,便可知1所在位置的左侧是左子树,1所在位置的右侧是右子树; 递归调用:将左子树和右子树分别看成一颗树,将其前序遍历序列、中序遍历序列分别传入到该方法中,便可得到左子树的根结点、右子树的根结点。 此时需要用第一步得到的根结点连接它们; 递归调用的终止条件:直到传入数组为空,说明已经没有节点,直接返回null。
名字是乱打的
2022-12-13
2610
置底的输入框 -组件封装
1.效果 📷 2.代码 <template> <!-- 底部操作条 --> <view class="fixed-bottom flex align-center border-top bg-f5 justify-between p-20 mb-40" style="100rpx"> <input type="text" class="bg-white flex-5 rounded" v-model="inputContent" @confirm="sendMs
名字是乱打的
2022-11-06
4930
图片上传区 -组件封装
1.效果 📷 2.代码 <template> <view> <view class="uni-common-mt"> <view class="uni-uploader" v-if="imageListAreaShow"> <view class="uni-uploader-head"> <view class="uni-uploader-title">点击可预览选好的图片</vi
名字是乱打的
2022-11-06
5560
资讯项 -组件封装
1.效果图 📷 2.代码 <template> <view class="p-20"> <!-- 头像 --> <view class="flex align-center justify-between"> <view class="flex align-center justify-start"> <image class="border-radius-100" :src="item.userPic" st
名字是乱打的
2022-11-06
9070
一个关于同步接口并发控制的简单demo
方案:线程池(实现并发)+CountDownLatch(实现阻塞主线程,并发结束返回结果)+Semaphore (实现并发控制)
名字是乱打的
2022-10-28
2450
Uniapp的语法以及flex的重温
其中对于+和~,这种兄弟选择器 必须两者有共同父节点,~区别于+的是,~不需要两者紧邻
名字是乱打的
2022-09-29
6310
uniapp目录结构以及全局文件
1.工程目录 一个uni-app工程,默认包含如下目录及文件: ┌─uniCloud 云空间目录,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详
名字是乱打的
2022-09-29
1.5K0
批量修改某个文件夹下的文件名字
down了一些前端资源,想空闲时候学着玩的,但是每个文件后面都有很长的后缀,看着比较烦,大家都有这个烦恼吧? 那就用我这个工具类吧,简单,java跑一下就好 注意:这个是会自动递归子文件夹的,防止误改哦; /** * 批量重命名文件 */ class ReNameFile { /**新字符串,如果是去掉前缀后缀就留空,否则写上需要替换的字符串*/ static String newString = ""; /**要被替换的字符串*/ static String
名字是乱打的
2022-09-29
1.8K0
Redis的集群解决分布式系统中负载均衡的原理
一 Redis单机缺陷 redis单机容量方面会有瓶颈,主从模式只能保证支撑更多读并发,但是slave和master的数据是一模一样的,也就是说master能存储多少数据,slave就也只能存储这么多
名字是乱打的
2022-09-29
1.9K0
破案了卧槽---从MQ消费的逻辑怎么改代码都不生效
在消费逻辑里加了日志,发现也tm不打印,逻辑怎么改似乎都没反映,但是偏偏别的业务改动都是生效的,只有从MQ消费的逻辑不生效。
名字是乱打的
2022-07-17
3050
读已提交级别下 注解事务+分布式锁结合引起的事故--活动购买机会的错乱
本次错误原因是虽然我们用红锁保障了特定机会((用户,商家,活动)维度)增加的串行化,但是我们这里事务是用的注解事务导致事务在方法结束之后才提交,因此Read COMMIT级别下,并发情况可能读到了未变更的数据,导致做出错误判断
名字是乱打的
2022-07-17
4090
CPU负载与CPU使用率之区别
1、简介 存储、内存和 CPU(中央处理器)等系统资源不足会极大地影响应用程序的性能。因此,监控这些组件至关重要。
名字是乱打的
2022-07-17
1.8K0
Redis的String类型内部实现 以及 关于SDS的解释
String 是最基本的 key-value 结构,key 是唯一标识,value 是具体的值,value其实不仅是字符串, 也可以是数字(整数或浮点数),value 最多可以容纳的数据长度是 512M。 String 类型的底层的数据结构实现主要是 int 和 SDS(简单动态字符串),SDS 和我们认识的 C 字符串不太一样,下面第三节会有解释。
名字是乱打的
2022-06-30
5860
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档