- 博客(16)
- 资源 (14)
- 问答 (2)
- 收藏
- 关注
原创 缓存穿透、缓存击穿、缓存雪崩的区别、解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓...
2021-08-30 11:10:54 232
原创 JWT(JSON Web Token) 入门教程
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。5、服务器收到 ses
2021-08-28 15:29:30 423
原创 位运算符之左移右移(简单易懂)
前言:位运算符是用来对二进制位进行操作的c语言中有6种位运算符:& 按位与 [链接]: https://blog.csdn.net/weixin_42837024/article/details/98736834| 按位或 [链接]:https://blog.csdn.net/weixin_42837024/article/details/98745019^ 按位异或 [链接]:https://blog.csdn.net/weixin_42837024/article/details/98
2021-08-23 08:20:43 3051 1
原创 Java交换两变量值(三种方法)
1.中间变量(最普遍、最广泛使用的交换方式):这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换。2.加减运算(前提只能是数字)因为这种方法需要运算,所有只能是数字,eg:m=8,n=2;第一步求出两数的和为10,传给m,再用总数减去n就是原来m的值,传给n,然后总数再减去原来m的值,得到原来n的值,传给m,实现交换。3.异或运算(前提只能是整数):这种方法不常见到(但很重要、很猥琐、很魔幻,需铭记,是...
2021-08-22 18:04:51 5786
原创 与、或、非、与非、或非、异或、同或
数字逻辑电路中的逻辑运算法则首先把中文意思和英文简写一一作出对应:与:AND或:OR非:NOT与非:NAND或非:NOR异或:XOR同或:XNOR想要准确长久记住这些逻辑运算,有一个对应法则口诀:与:AND,有0出0,全1出1。如:1 AND 1 = 11 AND 0 = 00 AND 1 = 00 AND 0 = 0或:OR,有1出1,全0出0。如:1 OR 1 = 11 OR 0 = 10 OR 1 = 1.
2021-08-22 17:39:35 37699
原创 Graphviz 重复节点处理
如果想用graphviz中画一棵树,并且树中有重复节点。如下图,简单地用下面的代码是无法完成的。因为graphviz将string当作唯一id;digraph G{ A->B; A->C; B->C;}上述代码只能生成一个有向图,而不是树要生成一颗有重复节点的树,可以引入label,对于重复的节点,定义一个新节点;digraph G{ A->B; A->C; node1[label=C]; .
2021-08-19 08:47:46 832
原创 懒惰删除 概念
在计算机科学中,懒惰删除(英文:lazy deletion)指的是从一个散列表(也称哈希表)中删除元素的一种方法。在这个方法中,删除仅仅是指标记一个元素被删除,而不是整个清除它。被删除的位点在插入时被当作空元素,在搜索之时被当作已占据。示例// javascriptvar myarr=["frist","2nd","3rd","4th"];delete myarr[2]; // 删除第3个 "3rd"console.info(myarr);// 输出0: "frist"1: "2nd"
2021-08-17 08:16:14 1591
原创 堆、栈、堆栈、队列的区别
如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈","队列",而最关键的是这些到底是什么意思?最关键的是即使你去面试,这些都还会问到,所以如果你不懂对你是损失很大的。 堆:什么是堆?又该怎么理解呢? ①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值; ·堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。 ②堆是在程序运行时...
2021-08-15 16:19:50 603
原创 分治法的时间复杂度
分治法的时间复杂度为 nlogn归并排序的递归过程如下,该递归树的高度为log2n(计算过程:假设待排序的数组元素个数为n,设高度为x,x意味着n个元素需要连续二分x次才剩下1个元素,即n/2^x=1,x=log2n),每一层的总比较次数为n,所以时间复杂度为nlogn。快速排序的分析过程类似。快速排序的平均时间复杂度同样为nlogn。假设在平均情况下每次选取的基准值均为该数组的中间值,因此每次都将数组分成两半,直到分割到只剩一个元素。假设n个元素平分了x次后只剩1个元素,则n/2^x=1,x.
2021-08-15 14:38:44 8749
原创 Java中的 <T extends Comparable<? super T>>
Java 中类似<T extends Comparable<? super T>>这样的类型参数 (Type Parameter) 在 JDK 中或工具类方法中经常能看到。比如java.util.Collections类中的这个方法声明:public static <T extends Comparable<? super T>> void sort(List<T> list)我知道extends和super这样的关键字...
2021-08-15 10:29:08 591
原创 Java数组深度复制的四种方法
来源于牛客网的一道选择题:JAVA语言的下面几种数组复制方法中,哪个效率最高?A.for循环逐一复制B.System.arraycopyC.System.copyofD.使用clone方法效率:System.arraycopy > clone > Arrays.copyOf > for循环1、System.arraycopy的用法:public static void arraycopy(Object src, ...
2021-08-14 16:58:57 1899
原创 需求分析说明书、概要设计说明书、详细设计说明书部分样例
以下是需求分析说明书、详细设计说明书、概要设计说明书样例,需要的朋友来信联系。[email protected]系统概要设计说明书目录1. 文档介绍 11.1 文档目的 11.2 文档范围 11.3 读者对象 11.4 参考文献 11.5 术语与缩写解释 12. 系统概述 23. 设计约束 23.1需求约束 23.2隐含约束 24. 设计策略 34.1扩展策略 34.2复用策略 34.3折衷策略 35.系统总体结构 35.1、系
2021-08-11 11:32:00 5181
翻译 二十世纪最伟大的十大算法
发明十大算法的其中几位算法大师一、1946 蒙特卡洛方法[1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.]蒙特卡洛方法的应用场景很多,横跨物理、金融、计算机。拿计算机科学来举例,自然语言处理中的LD
2021-08-09 08:44:08 759
翻译 程序员保持快乐活跃的6个好习惯
忍不住感叹,我第一次对 Buffer(在社交媒体上发布最简单的方式)有所想法已经差不多是两年前的事了。并且,在我有想法的一年半前,我还在前面那家新创公司工作的时候,我注意到在创立公司的时候各种模式都有,良莠不齐。在那段时间里我学到的最重要的事情之一就是当我快乐的时候我的状态最好。这的确很不一样。当我心情愉悦,写代码就更有效率,应对问题就更敏捷,并且更容易保持专注。寻寻觅觅,终于我找到了,对于我来说,保持快乐非常有效的几个习惯。当我没有 100% 感觉的时候,它们还能迅速恢复我的“蓝”,提升我的愉悦水
2021-08-05 09:22:45 260
原创 过拟合、欠拟合的形象解释
今天突然被以前同学人问到机器学习中的’过拟合‘和‘欠拟合’是什么意思呢?“过拟合就是训练的时候效果很好,损失函数值可以降得很低,但是到测试数据集的时候表现就不那么好了,原因是过分依赖于现有训练数据集的特征造成的,解决方法是可以加大数据集来进行训练。比如在图像领域可以通过拉伸旋转变换剪裁等等方式来增加训练数据集然后通过Dropout随机清零参数来避免.......“。巴拉巴拉讲了一堆,虽然我很想解释明白,但是.......总感觉有苦说不出的憋屈,最后:这让我意识到我可能太过于沉浸于自己的世界.
2021-08-02 08:16:04 371
原创 Arrays.binarySearch 详解
Arrays类的binarySearch()方法,可以使用二分搜索法来搜索指定的数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供多种重载形式,用于满足各种类型数组的查找需要。下文主要介绍两个比较重要、常用的方法:1) binarySearch(Object[] a, Object key)a: 要搜索的数组key:要搜索的值如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元.
2021-08-01 12:11:36 12860 4
49个过程ITTO汇总(PMBOK第六版).xlsx
2020-06-07
修改WIN10控制台编码为UTF-8和恢复为ANSI简体中文
2019-03-17
修改WIN10控制台编码为UTF-8
2019-03-17
Excel中项目开发计划的日期编排公式技巧
2018-11-03
SpringBoot入门必学项目源码
2018-01-20
C++语言基础.doc
2008-10-26
求好用的GIT GUI工具替代IDEA
2021-09-18
家里如何访问公司内网?
2021-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人