- 博客(32)
- 收藏
- 关注
原创 【MYSQL】MYSQL转义字符带来的坑
首先使用在mysql中使用转义字符一般我们在代码中碰到模糊查询的时候,查询条件中含有通配符或者转义字符时,需要我们手动在代码中处理,查询:\\->处理成:\%查询:\%\\\%以上只能在代码中使用,如果直接在客户端模糊查询,碰到转移字符需要再处理一次:查询:\\\\->处理成:\%查询:\%\\\\\%
2024-12-04 17:58:26
1158
原创 【MYSQL】解决模糊查询含有关键字的问题
如果需要仍然使用concat拼接字符串的方式,则需要将拼接的字符串进行转义,出现问题的原因就是查询的字符串中含有关键字%,导致sql查询有问题,所以在代码中将查询的字符串进行转义,遍历输入的字符串,如果含有。INSTR(str, subStr): 是返回子字符串(subStr)在目标字符串(str)的位置。PS: 如果不喜欢使用 \ 进行转义, 也可以使用escape关键字来自定义转义字符。,最后拼接出来的sql,这样会把所有的结果都查询出来。所以使用concat函数在实现模糊查询时会存在问题。
2024-12-03 17:34:50
716
原创 【浅谈mysql间隙锁】
在Mysql的InnoDB存储引擎中,间隙锁(Gap Locks)是一种用于防止幻读(Phantom Read)的锁机制。间隙锁锁定的是索引记录之间的间隙(gap),而不是具体的记录。这种锁主要用于防止其他事务在这些间隙中插入新的记录,从而避免产生幻读的问题。
2024-11-27 11:57:07
782
1
原创 ios和安卓手机端使用video标签播放失败的问题
安卓和浏览器适配做得很好,只需要设置好文件类型和,最后返回文件的二进制流即可。但是ios客户端还需要设置文件大小才能正确播放。我只做了MP4格式的视频,其他格式的视频暂时还没有试过,百度看了下,其他视频文件可能会涉及到视频编码的问题。在手机端上播放视频,流量很贵,像我的做法的话都是一次性返回整个文件的二进制流,这样过于暴力,后续优化的时候,可能要设置另外的响应头,进行分段返回。比如响应头中是获取文件的部分内容。分段返回文件二进制流的实现方式。
2023-12-08 16:01:47
12576
1
原创 CountDownLatch的使用
有时候会遇到一些需要使用多线程的业务场景,比如我现在要获取用户的信息,这些信息存在于不同的中心,需要调用回来组成完整的用户信息,如果采用同步的话,可能会很慢,所以采用异步的方式,最后等所有的子线程调用完成后,主线程才返回,这里我们采用。当一个线程完成了自己的任务后,可以调用 CountDownLatch 的 countDown() 方法,将 count 值减1。常见的应用场景是,将一个任务分解为多个子任务,并让多个线程并行执行这些子任务。线程是否超时:false。【子线程】Thread-0, 开始执行…
2023-11-20 18:14:37
549
原创 力扣:746. 使用最小花费爬楼梯
由题干可知,我们可以选择第一层或者第二层作为起始台阶,所以到达前两层消费都是0,如果我们想到第三层,则判断到达第一层的最低消费加上第一层的消费和到达第二层的最低消费加上第二层的消费,两者求最小值就是到达第三层的最低消费。//上一级达到当前级的消费。//上两级达到当前级的消费。这个题虽然标注的是简单题,但是却用到了。//在两个消费中求最小值即可。
2023-11-20 15:46:38
111
原创 力扣: 53.最大子数组和
综上:遍历数组每一位数时, 求当前数结尾的最大子数组和,如果前面的最大和大于0,那么就加上,如果小于等于0,就舍弃掉。简单理解就是,前面的数加起来大于0,加上自己就会更大,如果前面数加起来小于等于0,加上自己反而会变小,那就舍弃掉。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。题干是求连续子数组最大的和,以示例1为例子,连续的子数组无非就是求nums[i]结尾的子数组。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。
2023-11-20 09:57:37
79
原创 LinkedList的原理以及使用方式
平时的业务中基本上用的都是ArrayList,很少涉及LinkedList,而且LinkedList中有很多api,如果不知道底层原理,有可能会出现报错问题。
2023-11-15 18:38:24
108
原创 sleep、yield、interrupt等方法的区别
sleep方法是让线程进入阻塞队列,cpu不会分配时间片给。sleep()是Thread中的静态本地方法。中的线程,可以使用该特性,防止cpu空转。调用sleep方法后,线程处于。
2023-04-07 00:32:30
212
原创 自定义springboot starter
自定义一个properties//绑定前缀为customer的配置信息,并忽略未知的字段 @ConfigurationProperties(prefix = "customer" , ignoreUnknownFields = true) public class CustomerProperties {自定义一个配置类Customer 的配置信息public class Customer {
2023-04-02 22:26:06
106
原创 mysql
mysql问题一、安装简略二、启动1. 在windows环境下,右键单击计算机 -> 管理 -> 找到mysql相关的服务手动启动或者停止,也可以设置开启启动2. 使用命令行的方式启动mysql服务net start mysql80 //启动命令,我安装的mysql的名字为mysql80net stop mysql80 //停止命令如果我安装了多个mysql,(端口肯定不同)net start mysql50 //启动mysql50的服务,不区分大小写net star
2022-06-27 17:19:41
280
原创 docker
docker的安装docker概念为了解决环境一致性的问题;容器: 容器虚拟化的是操作系统,而不是硬件;虚拟机:虚拟化的是一套硬件资源,在这套虚拟的硬件资源上运行一个完整的操作系统。docker的安装与卸载(安装前如果之前安装过,应该先卸载)官方centos安装安装文档路径:官方安装地址1.1 首先安装gcc环境[root@root ~] yum -y install gcc[root@root ~] yum -y insatll gcc-c++1.2 docker的utils
2022-05-27 15:54:44
88
原创 面试题 04.06. 后继者
设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。输入: root = [2,1,3], p = 1 2 / \1 3输出: 2输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \ 3 6 / \ 2 4 / 1输出: null分析:首先知道二叉搜索树的性质:1.1 如果左子树不空,则左子树中
2022-05-16 20:07:36
93
原创 面试题 01.05. 一次编辑
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑输入: first = "pale"second = "ple"输出: True输入: first = "pales"second = "pal"输出: False解题思路:分析:两个字符串,如果长度相差2及以上,那么肯定是需要编辑两次的;如果长度相差1,那么两个字符串肯定是只有一位是缺失,其它数都是对齐的,比如1234和124;如果长度相同,
2022-05-13 20:54:16
97
原创 121. 买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0;输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 =
2022-05-11 14:05:16
108
原创 HashMap底层简单原理
HashMap底层简单原理首先应该明白HashMap在jk7是数组加链表结构,jk8是数组加链表结构,当链表长度大于8且底层数组大小超过64时,链表转为红黑树。jk7链表采用的时头插法(多线程会产生循环链表),jk8采用的是尾插法。无论jk7还是jk8,HashMap底层数组大小都是2的阶乘倍数,扩容也是在原来基础上变成两倍。第一种方式:HashMap<Integer, String> map = new HashMap<>(); //空构造器/* DEFAULT_
2022-02-19 19:15:06
492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人