mysql事务 mysql事务参考:尚硅谷JDBC事务:一组逻辑操作单元,使数据从一种一致性状态变换到另一种一致性状态。1 事务的ACID属性原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性(Isolation)事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事
id生成算法 id生成算法1 使用随机数说明比如生成一个十二位的id,可以依次生成每一位,然后拼接到一起返回即可。代码public class Main { public static Random r = new Random(); public static final int N = 12; // 生成的随机数长度 // 生成随机数 private static String generate() { StringBuil
提高结构体排序的速度方式 提高结构体排序的速度方式通过创建一个和结构体数组长度一样的vecotor数组nums,让nums[i]=i,对nums进行排序,传入自定义比较函数,这样可以提高结构体排序的速度。代码如下:#include <iostream>#include <algorithm>using namespace std;struct Rec { int x, y;} r[5];int main() { r[0] = {7, 5};
git使用详情 git使用详情参考自:linux基础课关于git的基本情况可以参考:(1)git软件安装及常用配置;;(2)【linux】05 git。本文以一个具体项目为例,演示git的常用操作。1 基本概念2 具体操作git可视化操作网址:git-school2.1 本地操作通过本地创建git仓库,演示在本地如何管理git仓库。配置用户名和密码:git config --global user.name wxx # 名字可以随便设置git config --global
【linux】08. 租云服务器及配docker环境 08. 租云服务器及配docker环境参考自:Linux基础课。8.1 云服务器云平台的作用:存放我们的docker容器,让计算跑在云端。获得公网IP地址,让每个人可以访问到我们的服务。任选一个云平台即可,推荐配置:1核 2GB(后期可以动态扩容,前期配置低一些没关系)网络带宽采用按量付费,最大带宽拉满即可(费用取决于用量,与最大带宽无关)系统版本:ubuntu 20.04 LTS(推荐用统一版本,避免后期出现配置不兼容的问题)阿里云地址:https:/
【linux】07 管道、环境变量与常用命令 07 管道、环境变量与常用命令参考自:Linux基础课。7.1 管道概念管道类似于文件重定向,可以将前一个命令的stdout重定向到下一个命令的stdin。要点管道命令仅处理stdout,会忽略stderr。管道右边的命令必须能接受stdin。多个管道命令可以串联。与文件重定向的区别文件重定向左边为命令,右边为文件。管道左右两边均为命令,左边有stdout,右边有stdin。举例统计当前目录下所有python文件的总行数,其中find、xargs、w
【linux】06 thrift 06 thrift参考自:Linux基础课。说明:thrift是RPC(remote procedure call)的一种实现方式,通过网络实现跨机器跨语言的函数调用。目前主流的RPC的实现方式有:(1)Google的gRPC;(2)Facebook的thrift;(3)阿里的Dubbo。6.1 需求下面以一个需求为例,讲解一下thrift的使用方式:我们要实现一个游戏在线匹配系统,有两台服务器:acs、myserver。acs需要实现两个模块
Go常见用法 Go常见用法声明变量package mainimport "fmt"// 定义全局变量var g_a = 1var ( g_b = "jack" g_c = 3.14)func main() { // 声明变量 a := 1 fmt.Println("a =", a) b, c := "tom", 3.14 fmt.Println("b =", b, ", c =", c)}声明常量package maini
C++未知行数列数读取数据 C++未知行数列数读取数据当不知道给定矩阵的行数和列数时,读取数据可以使用getline和stringstream。如下是一个读取的示例代码:#include <iostream>#include <sstream>using namespace std;const int N = 1010;int n, m;int g[N][N];int main() { string line; while (getline(cin
【经典算法题】去除重复字母 【经典算法题】去除重复字母Leetcode 0316 去除重复字母题目描述:Leetcode 0316 去除重复字母分析本题的考点:栈、贪心算法。这里使用栈解决该问题,从左向右遍历s,结果存储在栈stk中,使用哈希表ins表示某个字符当前是否在stk中,为了判断后面是否还存在某个字符,还需要一个哈希表last表示某个字符在s中最后出现的位置。假设当前遍历到s[i],如果栈顶元素是c,并且c>s[i]且s中后面的字符还存在c,则可以将c删掉,继续考虑下一个栈顶元素,这样
【经典算法题】整数反转 【经典算法题】整数反转Leetcode 0007 整数反转题目描述:Leetcode 0007 整数反转分析本题的考点:数学。每次取出x的最低位加到结果中即可,即如果结果存储在r中的话,r=r×10+x%10r = r \times 10 + x \% 10r=r×10+x%10,然后让x/=10x/=10x/=10,直到x为0为止。因为不能使用64位整数,所以我们需要考虑边界情况,因为反转后可能越界,存在两种越界情况:(1)假设int的最大值为INT_MAX,则当r×1
【经典算法题】最小覆盖子串 【经典算法题】最小覆盖子串Leetcode 0076 最小覆盖子串题目描述:Leetcode 0076 最小覆盖子串分析本题的考点:滑动窗口。这一题和LeetCode 0030 串联所有单词的子串十分类似。区别有两点:(1)这一题窗口中是字符,不是字符串;(2)这一题窗口中可以有多余字符,而LC30要求窗口内单词种类和次数与给定的完全相同。本题可以使用双指针算法中的滑窗解决,滑窗为[j, i],这里的j是满足题意最大的j,假设窗口内包含t中所有字符,则i增加的时候,j不会减
【经典算法题】最长有效括号 【经典算法题】最长有效括号Leetcode 0032 最长有效括号题目描述:Leetcode 0032 最长有效括号分析本题的考点:栈。首先,对于只含有小括号的序列,我们应该清楚序列时合法的,需要满足两个条件:(1)左右括号数量相等;(2)任意前缀中左括号数量一定大于等于右括号数量。第一步我们应该将整个括号序列分段:从左向右找到第一个前缀中右括号数量大于左括号数量的位置,这个前缀是第一个分段;然后继续对后面的序列进行这样的操作,这样我们可以将整个序列划分成多个分段,可以
putty安装和使用 putty安装和使用1 安装putty是一款windows上很好用的连接远程服务器的小工具。下载地址:网址。进入网址,找到如下内容下载即可:也可以下载历史版本:历史版本下载。也可以直接下载我上传这个安装文件:网址。下载解压后,双击.msi文件安装即可。安装过程一路默认,最后会多出四个程序,如下图:我们可以打开这些应用的位置,默认位置是:C:\Program Files\PuTTY,这个路径已经加入到环境变量中了,因此可以使用这个路径下的.exe作为命令,该文件夹中的内容
【经典算法题】单词搜索 【经典算法题】单词搜索Leetcode 0079 单词搜索题目描述:Leetcode 0079 单词搜索分析本题的考点:递归回溯。首先我们枚举单词的起点,一共有n×mn \times mn×m个起点,然后从该起点开始暴搜,第一次最多有4个方向可以递归,之后最多有3个方向可以递归,因为不能往回搜。确定起点后,对于该次暴搜,怎样保证我们不搜索之前已经搜索过的位置呢?我们可以将board中相应的位置变为一个特殊字符,比如.,表示已经被搜过了,之后回溯的时候再恢复即可。代码
【经典算法题】零钱兑换 【经典算法题】零钱兑换Leetcode 0322 零钱兑换题目描述:Leetcode 0322 零钱兑换分析本题的考点:背包问题。完全背包问题,amout为容量;物品体积为coins[i],价值为1。本题和Leetcode 0279 完全平方数十分类似,可以参考LC279的分析。注意本题和Leetcode 0518 零钱兑换 II的区别,LC518让求得是体积恰好是m的方案数,本题求的是体积恰好是m需要用的最少硬币数。代码C++class Solut
【力扣】课程表系列 【力扣】课程表系列Leetcode 0207 课程表题目描述:Leetcode 0207 课程表分析本题的考点:拓扑排序。关于拓扑排序可以参考:网址。代码C++class Solution {public: bool canFinish(int n, vector<vector<int>> &edges) { vector<vector<int>> g(n); v
【经典算法题】多边形三角剖分的最低得分 【经典算法题】多边形三角剖分的最低得分Leetcode 1039 多边形三角剖分的最低得分题目描述:Leetcode 1039 多边形三角剖分的最低得分分析本题的考点:动态规划。分析如下:代码C++class Solution {public: int minScoreTriangulation(vector<int>& w) { int n = w.size(); vector<vector
https原理探究 https原理探究1. 概述这里会循序渐进的讲解:明文传输、对称加密、非对称加密、结合对称非对称加密、CA证书授权。https为了保证安全性以及效率,采取的措施:非对称加密、对称加密,、CA。这里参考的网址:HTTPS原理全解析。2. 明文传输传输过程如下图:可以看到黑客很容易截取我们的请求,导致传输的数据泄露,因此不可取。3. 对称加密对称加密需要两个函数:加密函数 f1,解密函数f2,同时还需要一个秘钥K,对于给定数据data,有:f1(K,data)=