摘要: 场景:插入数据库时如果某个字段的值是重复的,就不插入,反之插入数据库。 看了下mybatis-Plus中saveOrUpdate方法,原本在该场景中正常使用save方法是没有问题的,然而改成saveOrUpdate方法就开始报错了。 错误信息:com.baomidou.mybatisplus.cor 阅读全文
posted @ 2025-02-12 11:24 firefox7557 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一.首先,先从这两个问题出发,在一般的中小型软件企业中,很难遇到这种问题,然而如果遇到大型项目有着几百万的流量,那么这个问题就应该深刻考虑了 1.在分析问题之前,让我们先弄明白什么是缓存穿透和缓存雪崩问题? *缓存穿透:就是针对系统请求缓存中不存在的数据,导致所有的请求都指向数据库,从而导致数据库连 阅读全文
posted @ 2021-06-09 00:47 firefox7557 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 步骤1:在 /usr/local/ 路径下创建 redis文件 ,redis安装包下载命令:wget http://download.redis.io/releases/redis-3.0.0.tar.gz 步骤2:解压已下载的安装包:tar zxvf redis-3.0.0.tar.gz 步骤3: 阅读全文
posted @ 2021-06-02 01:42 firefox7557 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 第一种 Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用。例如以下代码。 定义一个错误的@Transactional标注实现,修饰一个默认访问符的方法 @Component public class TestServiceImpl { @R 阅读全文
posted @ 2021-04-23 09:18 firefox7557 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 一.【二分查找法(非递归)】 1.二分查找法(非递归)介绍 1)之前我们学习过了二分查找法,使用的是递归形式,下面我们讲解一下二分查找法(非递归)方式 2)二分查找法只适用于,从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 3)二分查找法的运行时间为对数时间O(log2n),即查 阅读全文
posted @ 2021-04-20 09:10 firefox7557 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一.图的基本介绍 1.图的基本介绍(为什么要有图?) 1)之前我们学习了线性表和树,但线性表局限于一个直接前驱和一个直接后继的关系,树也只能有一个直接前驱(也就是父节点),当我们需要表示多对多的关系时,这里就用到了图来表达 2.如何理解 "图" 1)图(Graph)是一种数据结构,和树比起来,这是一 阅读全文
posted @ 2021-04-19 09:33 firefox7557 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 一.B树(术语) 1)根节点(root):没有父节点的节点叫做根节点 2)叶子节点(leaf):没有子节点的节点叫做叶子节点 3)内部节点(internal):除根节点和叶子节点之外的节点叫做内部节点,内部节点即有父节点,也有子节点 4)键:B树的存储元素时键,是用于指向数据记录的指针,键的值是用于 阅读全文
posted @ 2021-04-15 20:39 firefox7557 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Redis的新版本开始引入多线程 情况,Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作,即使在单线程处理情况下,读速度仍可达到11万次/s,写速度达到8.1万次/s。但是,单线程的设计也给Redis带来一些问题: 1、只能使用CPU一个核;2、如果删除的键过大( 阅读全文
posted @ 2021-04-09 22:37 firefox7557 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一.斐波那契(黄金分割法)查找算法 1.斐波那契(黄金分割法)查找基本介绍: 黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。 取其前三位数字的近似值是 0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。 这是一个神奇的数字,会带来意向 阅读全文
posted @ 2021-04-08 21:59 firefox7557 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一.冒泡排序基本介绍 1.冒泡排序(Bubble Sorting)的基本思想是: 通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒 1.1.优化: 因为排序的过程中,各元素不断接近自己的位置,如果 阅读全文
posted @ 2021-04-07 10:55 firefox7557 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 一.递归-八皇后问题(回溯算法) 1.八皇后问题介绍: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。 该问题是国际西洋棋棋手马克斯·贝瑟尔于1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法( 阅读全文
posted @ 2021-04-06 20:35 firefox7557 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 一.递归的概念: 1.简单的说::递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁 1.2.递归调用机制:我列举两个小案例,来帮助大家理解递归,部分学员已经学习过递归了,这里在给大家回顾一下递归调用机制 1) 打印问题 2) 阶乘问题 3) 阅读全文
posted @ 2021-04-06 16:35 firefox7557 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 程序员经常会遇到灵魂拷问:你有对象吗? 没有,但我可以 new 一个! public class GirlFriend { private String name; private int age; // 省略 getter & setter ... public static void main( 阅读全文
posted @ 2021-04-02 16:39 firefox7557 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 为什么会新增这样一个String辅助类? 原有的StringBuilder太死板,不支持分割,如果想让最终的字符串以逗号隔开,需要这样写 StringBuilder sb = new StringBuilder();IntStream.range(1,10).forEach(i->{ sb.appe 阅读全文
posted @ 2021-04-02 16:36 firefox7557 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 一.单项环形链表应用场景 1.Josephu(约瑟夫,约瑟夫环) 问题: Josephu 问题:设编号为1,2,... ..n的n个人围坐一圈,约定编号为k(1<=k<=n) 的人从1开始报数,数到m的那个人出列,他的下一为又从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,由此产生 阅读全文
posted @ 2021-04-02 09:51 firefox7557 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 一.双向链表的应用实例 1.双向链表的操作分析和实现:使用带头的head 头的双向链表实现(水浒英雄排行榜) 1.1.管理单项链表的缺点分析: 1)单向链表,查找方向只能是一个方向,而双向链表可以向前或者向后查找 2)单项链表不能自我删除,需要靠辅助节点,而双向链表,则可自我删除,所以单向链表删除时 阅读全文
posted @ 2021-04-01 19:52 firefox7557 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 单链表面试题: 1.求单个链表的节点个数(如果是带头节点,要求不统计头节点) 图1.1 2.查找链表中的倒数第k个节点 图1.2 3.单链表翻转 思路分解图:(图1.3) 图1.3 图1.4 图1.5 4.写一个小程序从尾到头打印单链表,测试Stack的使用 思路分解图:(图1.6) 图1.6 方法 阅读全文
posted @ 2021-04-01 11:03 firefox7557 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 1.链表(Link List)介绍: 链表是有序的列表,内存图中存储如下(图1.1) 图1.1 链表是以节点的方式来存储,(链表存储) 每个节点包含data域,next域:指向下一个节点 如图1.1.发现链表的各个节点不一定是连续存储 链表分:带头节点的链表和,没有头节点的链表 单链表(带头节点)逻 阅读全文
posted @ 2021-03-30 10:06 firefox7557 阅读(116) 评论(0) 推荐(0) 编辑
摘要: package com.atAlgorithmTest; /** * @Author: lisongtao * @Date: 2021/3/28 15:53 */ import java.io.*; import java.util.ArrayList; /** * @ClassName Spars 阅读全文
posted @ 2021-03-29 17:26 firefox7557 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 1.数组模拟环形队列: 对之前的(数组模拟队列)进行优化,充分利用数组,因此将数组看做一个环形(通过取模的方式来实现) 1.1.思路: 首先对front变量的含义做一个调整:front初始值为0,就是指向队列的第一个元素,也就是 arr[front]就是第一个元素 rear的含义做一个调整:rear 阅读全文
posted @ 2021-03-29 17:25 firefox7557 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.队列使用场景(银行排队案例): 图1.1 1.1.队列介绍: 队列是一种特殊的现行列表,他只允许在表的前端(front)进行删除操作,而表的后端(rear)进行插入操作。 当进行插入操作的端称为队尾,进行删除操作的端称为队头,当队列中没有元素时,称为空队列。 在队列这种数据结构中个,最先插入的元 阅读全文
posted @ 2021-03-29 13:53 firefox7557 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 需求:将稀疏数组保存到磁盘上,读取磁盘的稀疏数组进行恢复(五子棋游戏) 1.(问题)拿五子棋游戏举例,如何通过稀疏数组来表示? 五子棋,棋盘该如何表示? 棋子(黑/白),该如何表示? 如果游戏中途不想玩了需要保存棋局,该怎么办? 如果想要恢复棋局,又该怎么办? 2.问题分析: 分析一下,我们可以用1 阅读全文
posted @ 2021-03-28 14:40 firefox7557 阅读(326) 评论(1) 推荐(0) 编辑
摘要: 稀疏数组(sparsearray)与队列: 一个实际的基本需求: 编写一个五子棋程序中,有存盘退出和续上盘的功能 图1.1 1.问题分析: 因为该二维数组的最多值默认为0,因此有很多没有意义的数据,(使用稀疏数组) 2.稀疏数组基本介绍: 当一个数组中大部分元素为0,或者为同一个值得数组时,可以使用 阅读全文
posted @ 2021-03-28 09:44 firefox7557 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 一.分治算法 1.分治算法介绍:分治法是一种很重要的算法,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并 2.分治算法求解的经典问题:二分搜索 大整数乘法 棋盘覆盖 合并 阅读全文
posted @ 2021-03-27 17:37 firefox7557 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一.暴力匹配算法 1.字符串匹配是我们在编程中常见的问题,其中从一个字符串(主串)中检测出另一个字符串(模式串)是一个非常经典的问题,当提及到这个问题时我们首先想到的算法可能就是暴力匹配,下面的动图就展示了暴力匹配的流程 *上图中箭头指向的字符都为蓝色时代表二者匹配,都为黑色时代表二者不匹配,红色则 阅读全文
posted @ 2021-03-27 17:34 firefox7557 阅读(314) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示