From bfb434457199a0fc7f9988da081f449a7b88f2ba Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2021ǯ516 17:40:57 +0800 Subject: [PATCH 01/52] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=80=BB=E7=BB=93?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04345210222350257246350247243.md" | 440 +++++ ...45210222350257246350247243.md.bak" | 0 ...42346223215344275234357274237.md" | 246 +++ ...04345260217345273272350256256.md" | 1478 +++++++++++++++++ ...50346210267345257206347240201.md" | 123 ++ ...46210267345257206347240201.md.bak" | 0 ...06345270203345274217351224201.md" | 225 +++ ...52346263250346204217347202271.md" | 386 +++++ 8 files changed, 2898 insertions(+) create mode 100644 "345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" create mode 100644 "345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" create mode 100644 "345244247345216202351235242350257225347234237351242230/351230277351207214344270200351235242357274214347273231344272206345207240346235241SQL357274214351227256351234200350246201346211247350241214345207240346254241346240221346220234347264242346223215344275234357274237.md" create mode 100644 "345267245344275234346200273347273223/34526724534427523434523323334527126435727421450344270252350256251344275240344273243347240201346233264345245275347232204345260217345273272350256256.md" create mode 100644 "345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md" create mode 100644 "345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md.bak" create mode 100644 "347274223345255230Redis346200273347273223/344270203347247215346226271346241210345257271346257224345210206345270203345274217351224201.md" create mode 100644 "347274223345255230Redis346200273347273223/344275277347224250Redis34723220421344270252346263250346204217347202271.md" diff --git "a/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" "b/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" new file mode 100644 index 0000000..e8cc9b4 --- /dev/null +++ "b/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" @@ -0,0 +1,440 @@ + +### ǰ + +ˢleetcodeʱ?̬滮Ŀ̬滮dzdz?Ҳм?һ󳧶dzϲʡһѧϰ̬滮·?вȷĵط?ӭָ?лл~ + +- ʲôǶ̬滮? +- ̬滮ĺ˼? +- һ߽̬滮 +- ̬滮Ľ· +- leetcode + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01fdad6c74864d7da07193203c2dcbf4~tplv-k3u1fbpfcp-zoom-1.image) + + +ں?**ݵСк** + +### ʲôǶ̬滮? + + +̬滮?Ӣ?Dynamic programming? DP??һѧѧѧѧϢѧʹõ?ͨԭֽΪԼ򵥵ķʽ⸴ķ̬滮صӽṹʵ⡣ + +> dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems. + +϶άٿ?ое鏻ҡ˵?̬滮ʵ?һ?ǰһ?ֱֱӽȻ?𰸱?Լظ㡣ٸ𰸷?óԭһַ +> һЩ܏?ͨϵʽƳȻ?̬滮ڽÿһ?ظ,쳲оͿԿżľ䶯̬滮⡣ + + +### ̬滮˼? + +̬滮ĵ˼??**?ס?ظ** + +![̬滮ڼס](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d26f967ff6e447d291b0b196c4edaa07~tplv-k3u1fbpfcp-watermark.image) + +?ϱȽеһ? +> - A ? "1+1+1+1+1+1+1+1 =?" +> - A ? "ʽֵǶ" +> - B ? "8" +> - A : ʽд "1+" ? +> - A : "ʱʽֵΪ" +> - B : ܿó "9" +> - A : "ôô֪" +> - A : "ֻҪ8Ļϼ1" +> - A : "㲻¼?Ϊס˵һʽֵΪ8!̬滮㷨Ҳ˵ 'סĽʡʱ'" + +### һӴ߽̬滮 -- + +#### ݹ + +> leetcodeԭ?һֻһο1̨?Ҳ2̨סһ 10 ̨ܹж + +ЩСһμʱ?ܻеȦ?֪ôʵ?? +> - Ҫ?10̨?Ҫô9?Ȼ1̨ȥ;Ҫô8?Ȼһ2̨ȥ +> - ͬ?Ҫ?9̨?Ҫô8?Ȼ1̨ȥ;Ҫô7?Ȼһ2̨ȥ +> - Ҫ?8̨?Ҫô7?Ȼ1̨ȥ;Ҫô6?Ȼһ2̨ȥ + +n̨׵ǶΪf(n)??ȻͿԵó¹?ʽ? + +``` +f?10? = f?9?+f(8) +f (9) = f(8) + f(7) +f (8) = f(7) + f(6) +... +f(3) = f(2) + f(1) + +ͨùʽΪ: f(n) = f(n-1) + f(n-2) +``` + +f(2) f(1) ڶ? +- ֻ2̨ʱ??һֱ?ڶһ?Ȼһf(2) = 2; +- ֻ1̨ʱ?ֻһ?f?1?= 1? + + +˿õݹȥ? +``` +class Solution { + public int numWays(int n) { + if(n == 1){ + return 1; + } + if(n == 2){ + return 2; + } + return numWays(n-1) + numWays(n-2); + } +} +``` + +ȥleetcodeύһ??ʱ䏺 + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3e0608ec89a246568e01c7ba4b8f50d8~tplv-k3u1fbpfcp-zoom-1.image) + + +Ϊʲôʱ?ݹʱ?Ȼ**ݹ**? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2dd95840552e4a7db9536884b7a9b558~tplv-k3u1fbpfcp-zoom-1.image) + +- Ҫԭ f(10)?Ҫȼ f(9) f(8) +- ȻҪ f(9)?Ҫ f(8) f(7)?Դơ +- һֱ f(2) f(1??ݹֹ + +ݹʱ临ӶȰ? + + +``` +ݹʱ临Ӷ = һʱ* +``` + +- һʱ = f?n-1?+f?n-2??ҲһӷIJ?ԸӶ O(1)? +- = ݹڵ?ݹܽڵ = 2^n-1?ǸӶO(2^n) + +??ݹⷨʱ临Ӷ = O(1) * O(2^n) = O(2^n)?ָ?ը?nȽϴĻ?ʱˡ + +عͷ?ϸ۲ŵݹ?ᷢڴظ?f?8??f?7?ظ3...ݹ㷨Чԭ?**ڴظ**? + +Ȼڴظ?ôǿȰѼõĴ𰸴?һ¼?ȵ´ҪĻ?ȥ¼һ??ֱȡͺ?¼ûвſʼ?ǾͿʡȥظĺʱ?Ǵ¼Ľⷨ + + + +#### ¼ĵݹⷨ?Զ?? + +һʹһһϣmap䵱**¼** +- һ?f?10?= f(9) + f(8)?f(9) f?8?Ҫ?Ȼټӵ¼?? + + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/94484290462e45c799609b0a581b14b0~tplv-k3u1fbpfcp-zoom-1.image) + +- ڶ? f(9) = f?8?+ f?7??f?8?= f?7?+ f(6), Ϊ f(8) Ѿڱ¼?Կʡ?f(7),f?6?Ҫ?ӵ¼~ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/12900b17d77f4adfbdb71920f729d61a~tplv-k3u1fbpfcp-zoom-1.image) + + +? f(8) = f?7?+ f(6),f(8)?f(7),f?6?ȫڱ¼?ԶԼ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9a8c7ba6b5ae413799c6a33490bb1f8f~tplv-k3u1fbpfcp-zoom-1.image) + +?˱¼ݹ㷨?ݹɹͺͺɿ?? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/18a78d6b99a84ff8a1df834f3c085014~tplv-k3u1fbpfcp-zoom-1.image) + +**¼**ĵݹ㷨?=ڵ=n?һ⻹O(1),Դ**¼**ĵݹ㷨ʱ临ӶO(n)?ô**¼**ĵݹ㷨ȥߣ?ijʱ⿩~?? + + + +``` +public class Solution { + //ʹùϣmap?䵱¼ + Map tempMap = new HashMap(); + public int numWays(int n) { + // n = 0 Ҳ1 + if (n == 0) { + return 1; + } + if (n <= 2) { + return n; + } + //жû?¼û + if (tempMap.containsKey(n)) { + //¼??ֱӷ + return tempMap.get(n); + } else { + // ¼û?ûм?ִеݹ,Ұѽ浽¼map?1000000007ȡ?leetcodeĿ涨? + tempMap.put(n, (numWays(n - 1) + numWays(n - 2)) % 1000000007); + return tempMap.get(n); + } + } +} +``` +ȥleetcodeύһ?ͼ?? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e5f0fb1998c542dc8cb3826de800f443~tplv-k3u1fbpfcp-zoom-1.image) + +ʵ?ö̬滮⡣ + +#### Ե?ϵĶ̬滮 + +̬滮¼ĵݹⷨ˼?һµ?Ǽظ?ʱ临ӶҲDzࡣ? +- ¼ĵݹ?Ǵf(10)f(1???ҲΪ**Զ?**Ľⷨ +- ̬滮ӽСĽ?ɽ?𲽾߳ϴĽ?Ǵf(1)f(10????ԳΪ**Ե?**Ľⷨ + + +̬滮м?**ӽṹ״̬תƷ̡߽硢ص**? +- f(n-1)f(n-2) Ϊ f(n) ӽṹ +- f(n)= f?n-1?+f?n-2?ͳΪ״̬תƷ +- f(1) = 1, f(2) = 2 DZ߽ +- f(10)= f(9)+f(8),f(9) = f(8) + f(7) ,f(8)ص⡣ + +Ե?ϵĽⷨ?f(1)f(10?????DzֱһforѭͿԽ?? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8e21b14d47e64afa958506d49972827b~tplv-k3u1fbpfcp-zoom-1.image) + +¼ĵݹⷨ?ռ临ӶO(n)??ϸ۲ͼ?Է?f?n?ֻǰ?ֻҪab洢?Ϳ?˿ռ临ӶO(1)Ϳ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8b202b2364eb4aae9122cfa8474c045e~tplv-k3u1fbpfcp-zoom-1.image) + +̬滮ʵ? + +``` +public class Solution { + public int numWays(int n) { + if (n<= 1) { + return 1; + } + if (n == 2) { + return 2; + } + int a = 1; + int b = 2; + int temp = 0; + for (int i = 3; i <= n; i++) { + temp = (a + b)% 1000000007; + a = b; + b = temp; + } + return temp; + } + } +``` + +### ̬滮Ľ· + +#### ʲôԿʹö̬滮? + +> һ?԰пܵĴٳ?ٳ?ص?ͿԿʹö̬滮 + +һЩֵij?**СС༭롢⡢Ǯ**ȵ?Ƕ̬滮ľӦó + + +### ̬滮Ľ˼· + + +̬滮ĺ˼?**?ס?ظ㡣** Ҷ̬滮һ㶼Ե?ϵ?˵?****?ܽһ̬滮˼·? + +- ٷ +- ȷ߽ +- ҳ?ȷӽṹ +- д״̬תƷ + + +#### 1. ٷ + + +- ̨1ʱ?һ?f?1? =1 +- ֻ2̨ʱ??һֱ?ڶһ?Ȼһf(2) = 2; +- ̨3ʱ??3̨?Ҫô2?Ȼ1̨ȥ?Ҫô 1?Ȼһ 2 ̨ȥf(3) = f(2) + f(1) =3 +- ̨4ʱ??3̨?Ҫô3?Ȼ1̨ȥ?Ҫô 2?Ȼһ 2 ̨ȥf(4) = f(3) + f(2) =5 +- ̨5ʱ...... + +![Ե?ϵĶ̬滮](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/29cd6d0d31514336baf9905f8084a624~tplv-k3u1fbpfcp-zoom-1.image) + + + +#### 2. ȷ߽ + +ͨٷ?Ƿ?̨1ʱ2ʱ?ȷ֪f?1? =1?f(2) = 2?̨n>=3ʱ?Ѿʏf(3) = f(2) + f(1) =3?f?1? =1?f(2) = 2׵ı߽硣 + + +#### 3. ҹ?ȷӽṹ + +n>=3ʱ?Ѿʏ f(n) = f(n-1) + f(n-2) ??f(n-1)f(n-2) Ϊ f(n) ӽṹʲôӽṹ?ôһ? + +> һ̬滮?ʵһ⡣赱ǰ߽f(n),ӽṹҪ f(n-k) ,ӽṹʾתƵn״̬ŵ,ľûйϵ,úľ߰ĵʹǰľֲŽһ + + +#### 4? д״̬תƷ + +ͨǰ3?ٷ?ȷ߽?ӽṹ?ǾͿԵó״̬תƷ? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4fb4cd7257ff4fcbac9d87be96f353bd~tplv-k3u1fbpfcp-zoom-1.image) + +#### 5. ʵ + +ʵʱ?һעӵϱ?Ȼע±߽?ռ临Ӷ?ҲͲ̬滮иܵ?ʵʱ?Կʵοһ? + + +``` +dp[0][0][...] = ֵ߽ +for(״̬1 ?״̬1ֵ){ + for(״̬2 ?״̬2ֵ){ + for(...){ + //״̬תƷ + dp[״̬1][״̬2][...] = ֵ + } + } +} +``` + + +### leetcode + +һһleetcodeĿ + +> һ nums ?ҵϸеijȡ + +ʾ 1? + +``` +?nums = [10,9,2,5,3,7,101,18] +?4 +? [2,3,7,101]?˳Ϊ 4 +``` + +ʾ 2? + + +``` +?nums = [0,1,0,3,2,3] +?4 +``` + +ǰ϶̬滮Ľ˼·? + +- ٷ +- ȷ߽ +- ҹ?ȷӽṹ +- ״̬תƷ + + +#### 1.ٷ + + +Ϊ̬滮?˼?**?ס?ظ㡣** ˼ԭ?**num[i]гʱ**?˼****?ԭǷ****num[i-1]гй? + +##### Զ?ϵ + +۲??ȻйϵģnǻII?v?**Ե?**ԭ?ʾ1?ֻһԪؿʼ + +- numsֻһԪ10ʱ?[10],1. +- numsҪһԪ9ʱ?[10][9],1 +- numsټһԪ2ʱ?[10][9][2],1 +- numsټһԪ5ʱ?[2,5],2 +- numsټһԪ3ʱ?[2,5][2,3],2 +- numsټһԪ7ʱ?,[2,5,7][2,3,7],3 +- numsټһԪ101ʱ?[2,5,7,101][2,3,7,101],4 +- numsټһԪ18ʱ?[2,5,7,101][2,3,7,101][2,5,7,18][2,3,7,18],4 +- numsټһԪ7ʱ,[2,5,7,101][2,3,7,101][2,5,7,18][2,3,7,18],4. + +##### ҹ? +ͨ?ǿ**һ**? + +¼һԪnums[i], Ҫô**nums[i]βĵ**?Ҫô**nums[i-1]**?DzǺܿ?nums[i]Ѿ**** nums[i-1]йˡ + +``` +ԭnums[i] = nums[i-1]/nums[i]β +``` + +DzǸоɹһ?**ΰnums[i]βĵҲתΪӦ**?Ҫnums[i]βĵҲnums[i-1]йؾͺˡֻnums[i]β?ǰnum[j]?0= - nums[3]=5,```5```βо```[2,5]```,Ϊ±```03```?ֻҵ```[2]``````5```С?Ծ```[2]+[5]```?```dp[4]=2``` +> - nums[4]=3,```3```βо```[2,3]```,Ϊ±```04```?ֻҵ```[2]``````3```С?Ծ```[2]+[3]```?```dp[4]=2``` +> - nums[5]=7?```7```βо```[2,5,7]``````[2,3,7]```,Ϊ±```05```?ҵ```2,53```7С?Ծ```[2,7],[5,7],[3,7],[2,5,7][2,3,7]```Щ?о```[2,5,7][2,3,7]```?```5```β```3```β+[7]??**```dp[5]=3 =dp[3]+1=dp[4]+1```** + + +?Ȼ⸏ɣһ?nums[i]βnums +- j[0?i-1],num[i]>num[j]Ļ??dp(i) =max(dp(j))+1? + +#### 򵥵ı߽ + +numsֻһԪʱ?еijdp(1)=1,numsԪʱ?dp(2) =21? +˱߽dp(1)=1 + +#### ȷӽṹ + +ٷ?ǿԵó?µŽṹ? + +``` +dp(i) =max(dp(j))+1?j[0?i-1],num[i]>num[j] +``` +**max(dp(j))** ӽṹ + +#### ״̬תƷ + +ͨǰ?ǾͿԵó״̬תƷ? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/457ce281c1ec4e91b8c868aa593e41b6~tplv-k3u1fbpfcp-zoom-1.image) + +num[i]о? +``` + =max(dp[i]) +``` + + + + +#### ʵ + +``` +class Solution { + public int lengthOfLIS(int[] nums) { + if (nums.length == 0) { + return 0; + } + int[] dp = new int[nums.length]; + //ʼDZ߽ + dp[0] = 1; + int maxans = 1; + //Ե?ϱ + for (int i = 1; i < nums.length; i++) { + dp[i] = 1; + //±0i + for (int j = 0; j < i; j++) { + //ҵǰnums[i]Сnums[j],dp[i]= dp[j]+1 + if (nums[j] < nums[i]) { + //ΪжСnums[i]?Ҳǻڶ?Ǿȡŵdp[i] + dp[i] = Math.max(dp[i], dp[j] + 1); + } + } + //dp[i]?dpǸnums + maxans = Math.max(maxans, dp[i]); + } + return maxans; + } +} +``` + + + + + + + + + + + + + diff --git "a/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" "b/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" new file mode 100644 index 0000000..e69de29 diff --git "a/345244247345216202351235242350257225347234237351242230/351230277351207214344270200351235242357274214347273231344272206345207240346235241SQL357274214351227256351234200350246201346211247350241214345207240346254241346240221346220234347264242346223215344275234357274237.md" "b/345244247345216202351235242350257225347234237351242230/351230277351207214344270200351235242357274214347273231344272206345207240346235241SQL357274214351227256351234200350246201346211247350241214345207240346254241346240221346220234347264242346223215344275234357274237.md" new file mode 100644 index 0000000..a695048 --- /dev/null +++ "b/345244247345216202351235242350257225347234237351242230/351230277351207214344270200351235242357274214347273231344272206345207240346235241SQL357274214351227256351234200350246201346211247350241214345207240346254241346240221346220234347264242346223215344275234357274237.md" @@ -0,0 +1,246 @@ +### ǰ + +λȥ?˵Թٸ˼ѯSQL?:Ҫִм?ѵʱеµ?侲˼?ŷǿļ֪ʶ~~ Ƿ־Ÿ֪ʶ?һ̽һ¡вȷĻ?ӭָ?һѧϰ~ + +- ں?**ݵСк** +- githubַ?лÿstar +> https://github.com/whx123/JavaHome + +- Թٿ֮ʲô? +- Թٿ֮ +- Թٿ֮ΪʲôѡB+Ϊṹ +- Թٿ֮һ +- Թٿ֮ +- Թٿ֮ʧЧ +- Թٿ֮ǰ׺ +- Թٿ֮ +- Թٿ֮ + +### һԹٿ֮ʲô? + +![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/21eed26e34534b51aadf28d5defaed7e~tplv-k3u1fbpfcp-watermark.image) + +- һݿѯЧʵݽṹԱһֵĿ¼?԰ҵӦļ¼ +- һ洢ڴ̵ļ?ռռġ +- νˮ?Ҳܸۡʵ߲ѯЧ?ӰݿIJ͸¹ܡ + +### Щ + +![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cf6725e1a8cb44b496cca8fa45e15c2f~tplv-k3u1fbpfcp-watermark.image) + +#### ݽṹά + +- B+?ݴ洢Ҷӽڵ?ӶΪO(logn)?ʺϷΧѯ +- ϣ: ʺϵֵѯ?Чʸ?һελ +- ȫ?MyISAMInnoDBж֧ʹȫ?һıchar,text,varcharϴ +- R-Tree: GISʹSPATIAL + +#### 洢ά + +- ۼ?ۼ?Ҷӽڵ洢DZеݡ +- Ǿۼ?ǾۼԷ?Ҷӽڵ洢С + +#### ߼ά + +- ?һΨһ?пֵ +- ͨ?MySQLл?ֵظֵ +- ?ֶδ?ʹʱѭǰ׺ԭ +- Ψһ?еֵΨһ?Ϊֵ +- ռ?MySQL5.7ֿ֧֮ռ?ڿռⷽѭOpenGISģ͹ + +### Թٿ֮ΪʲôѡB+Ϊṹ + +ԴӼάȥ?ѯǷ񹻿?ЧǷȶ?洢ݶ?ԼҴ̴ȵȡΪʲôǹϣṹ?ΪʲôǶ?Ϊʲôƽ?ΪʲôB?ƫƫB+? + +дҵSQLѯʱ??ǷΧѯ?һSQL +``` +select * from employee where age between 18 and 28; +``` +#### Ϊʲôʹùϣṹ? +֪ϣṹ?k-vṹ?Ҳ?keyvalueһһϵ**ֵѯ**?ǷΧѯΪŶ + +#### Ϊʲôʹö? + +Ȼ¶֪ʶ~ ν**?ص?** +- ÿ?ֱΪ +- ӽڵֵСڵǰڵֵ?ǰڵֵСӽڵֵ +- ˵ĽڵΪڵ?ûӽڵĽڵֵΪҶӽڵ㡣 + +Ժ?׾͸ֶṹͼ? +![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d4c349a7bda4b3db1791f9cff9c093e~tplv-k3u1fbpfcp-watermark.image) + +?Щ?Ŷ? +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/97b71a48d43545a0bc20a55adf2be207~tplv-k3u1fbpfcp-watermark.image) + +⻯Ϊһ?ȫɨ衣ôҪѽ??һʺΪṹ + +#### Ϊʲôʹƽ? + +ƽص?ҲһŶ?κνڵ߶Ϊ1ԾͲ⻯һ + +![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/74afa9b54e7f4c0996ff83e66016c09a~tplv-k3u1fbpfcp-watermark.image) + +? +- ƽ߸?Ҫάƽ?ά۴ +- Ļ?ĸ߶ȻܸߡΪǴڴ̵?Ϊṹ?ÿδӴ̶ȡһڵ?IOĴͶ + + +#### ΪʲôʹB? + + +Ļ?ƽĸ߶Ȼܸ?IOΪʲôѡͬ?**߶ȸB**? + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/acc8f2e2cfb54092b4fb131e500334a3~tplv-k3u1fbpfcp-watermark.image) + +Bƽ?ͿԴ洢?߶ȸ͡ΪѡB+?ΪB+B? +- B+ҶӽڵDz洢ݵ?洢ֵ?Bڵв洢ֵ?Ҳ洢ݡinnodbҳĬϴС16KB?洢?ôͻ洢ļֵ?ӦĽ?ڵӽڵ?ͻ?ͻ?һDzݽд̵IOлٴμ?ݲѯЧҲ졣 +- B+ݾ洢Ҷӽڵ?ǰ˳е?ŵġôB+ʹ÷Χ??Լȥزұ쳣򵥡 + +### ġԹٿ֮һB+ + +**Թ?** ±ṹ?⼸ +``` +CREATE TABLE `employee` ( + `id` int(11) NOT NULL, + `name` varchar(255) DEFAULT NULL, + `age` int(11) DEFAULT NULL, + `date` datetime DEFAULT NULL, + `sex` int(1) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_age` (`age`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +insert into employee values(100,'С',43,'2021-01-20','0'); +insert into employee values(200,'',48,'2021-01-21','0'); +insert into employee values(300,'',36,'2020-01-21','1'); +insert into employee values(400,'',32,'2020-01-21','0'); +insert into employee values(500,'Ѹ',37,'2020-01-21','1'); +insert into employee values(600,'С',49,'2021-01-21','0'); +insert into employee values(700,'С',28,'2021-01-21','1'); +``` + +**Թ?** ִµIJѯSQL?Ҫִмε?Ի¶Ӧṹͼ~ +``` +select * from Temployee where age=32; +``` + +**?** ʵ?ԹپǿѡǷϤB+ṹͼԏʽϻش~ + +- Ȼ`idx_age`ṹͼ?? + +![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f88457b43e354ca18795fa0033ad075f~tplv-k3u1fbpfcp-watermark.image) + +- ٻid?Ȼṹͼ?? + +![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/963a8dacb39345008c93b1d0ea079eec~tplv-k3u1fbpfcp-watermark.image) + + +? SQL ѯִд̾ǽ? +- 1. `idx_age`?̿1صڴ?32<37,·֧?Ѱַ̿2 +- 2. ̿2صڴ?ڴ?ҵage=32ļ¼?ȡid = 400. +- 3. õid=400?صid +- 4. `id`?̿1ڴ?ڴ?ҵ400?B+ҶӽڵDzݵġ400ҷ֧?Ѱַ̿3. +- 5. ̿3ڴ?ڴ?ҵid=400ļ¼?õR4һе?õ?󹦸ɡ + +?SQLѯ?ִ˼?DzһȻѽ**ر**?`idx_age`ҵ`id`?صidĹ,ͳΪر +> ʲôǻر?õٻصѯĹ?ͽ**ر** + +### 塢Թٿ֮ + +**Թ?** `select *`, ʹ`select id,age`?ϵĿִ˼? + +**?** ?Ҫѡ˵ĸ֪ʶ㡣ص`idx_age`?Էѯѡ?idageҶӽڵˡ?ֱṩѯ?ͲҪٻر~ + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/629b6cfd08614adcbb20154707c0c8e0~tplv-k3u1fbpfcp-watermark.image) + +> ?ڲѯ?Ҫرȥ?ֱӴоȡ?ҪĽ仰˵?SQLõ?˲ѯ?ϸˡ + +?ϸ?ʡȥ˻ر + +### Թٿ֮ʧЧ + +**Թ?** ҏڸ`name`ֶμͨ?Ȼølikeģ?ǻִжٴβѯ?SQL? +``` +select * from employee where name like '%%'; +``` +**?** ֪ʶ?likeǷᵼ²?ȸSQLexplainִмƻɡʵlike ģ?ᵼ²?? + +![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3b01bb44ff5744729e55939cc88bd424~tplv-k3u1fbpfcp-watermark.image) + +?SQLȫɨ~ճ?⼸ɧܻᵼʧЧ?? +- ѯor?ܵʧЧ +- ֶַ?whereʱһ?ʧЧ +- likeͨܵʧЧ +- ?ѯʱвеĵһ?ʧЧ +- ʹmysqlú?ʧЧ +- ??+-*/??ʧЧ +- ֶʹ??= ?not in?ʱ?ܻᵼʧЧ +- ֶʹis null? is not null?ܵʧЧ +- ӲѯӲѯѯֶαʽһ?ܵʧЧ +- mysqlʹȫɨҪʹ,ʹ + +### ߡԹٿ֮ǰ׺ԭ + +**Թ?** ҏڸname,ageֶμ?SQLִжٴ?Ȼ? +``` +select * from employee where name like 'С%' order by age desc; +``` +**?** ǰ׺ԭԼlikeǷ֪ʶ㡣ʾͼ? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/29df075df94549b693a6a0ee06730666~tplv-k3u1fbpfcp-watermark.image) + +?ȰnameС?nameͬ?ageСԹҪֵһ^С ??SQLlike 'С%'ǿ```idx_name_age```ġ + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/58b49f88f75f48be873deb395431c2fa~tplv-k3u1fbpfcp-watermark.image) + +òѯidx_name_age?ҵһСֵ?ҵ```ССסСࡢ```?ֱõId=```600100700```?Ȼα?ȥҶӦļ¼ ǰ׺```С```?ַMַʵ? +- ǰ׺NֶΡ?a,b,c?ԏڽ?a???a,b?,(a,b,c)? +- ǰ׺ҲַMַ + +### ˡԹٿ֮ + +**Թ?** ǻǾ idx_name_age?SQLִм? + +``` +select * from employee where name like 'С%' and age=28 and sex='0'; +``` + +**?** Ƶ֪ʶ?**Mysql5.6֮ǰ**?idx_name_age?ҳֵһ^С ??õǵid?Ȼرҳ?ȥԱԱֶΡͼ? + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5729b1a84fd4ee9b872717903ca6f75~tplv-k3u1fbpfcp-watermark.image) + +Щѿܾ??name,age)?Ϊʲôѡ^С ?ֺ?˳㿴ageٻر?ǸЧ?ѽ?MySQL 5.6 **Ż**??аֶж?ֱӹ˵ļ¼?ٻر + + +?MySQL5.6汾֮?ѡ^С ?ֺ?˳age=28?,Ծֻһλر + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/168aecb4709d4c30bc93c489ad76d712~tplv-k3u1fbpfcp-watermark.image) + +### š Թٿ֮ + +**Թ?** һűǧ򼶱ϵ?ô?ű?Ҫô? + +**?** Ҫ֪һ?ʱ?ǻԱġ?пܳ¹ʵġԲο·? + +- 1.ȴһŸԭAݽṹͬ±B +- 2.±BҪϵ +- 3.ԭAݵ±B +- 4.rename±BΪԭıA?ԭAı? + +### ܽϰ + +Ҫ9ؼ֪ʶ?ϣԴа?ҳһ?йҵ񿪷ļSQL?´ôش?Ȥϵҹ~Ŀ? +``` + +select * from A where type ='1' and status ='s' order by create_time desc; +``` +type9?ֶԻ?statusֶȲ?3??ôμ? +- Ǹtypeӵ +- ?type?status?create_time? +- ?type?create_time?? + +### οл +- [ MySQLЩ ?](https://segmentfault.com/q/1010000003832312) +- [](https://zhuanlan.zhihu.com/p/151460679) +- [MySQLʵս45](https://time.geekbang.org/column/article/69636) + diff --git "a/345267245344275234346200273347273223/34526724534427523434523323334527126435727421450344270252350256251344275240344273243347240201346233264345245275347232204345260217345273272350256256.md" "b/345267245344275234346200273347273223/34526724534427523434523323334527126435727421450344270252350256251344275240344273243347240201346233264345245275347232204345260217345273272350256256.md" new file mode 100644 index 0000000..e47a0ba --- /dev/null +++ "b/345267245344275234346200273347273223/34526724534427523434523323334527126435727421450344270252350256251344275240344273243347240201346233264345245275347232204345260217345273272350256256.md" @@ -0,0 +1,1478 @@ +### ǰ +?ܶ˼Ĵ?дһܽ?50õĽ顣еһЩ?ǰҲд?Ҫһ¡ϣճд˼?ܽ??ͬʱвԵ?Ҳָ?л~ + +- ں?**ݵСк** +- githubַ?https://github.com/whx123/JavaHome + +### 1. жǷʱ?select count select ?á + +ǾƵҵ񳡾??жijû```userId```ǷǻԱ + +**???** һЩСʵ?ȲûϢû¼?ȻȥжǷǻԱ: +``` + + +boolean isVip (String userId){ + UserInfo userInfo = userInfoDAp.selectUserByUserId(userId); + return UserInfo!=null && "Y".equals(userInfo.getVipFlag()) +} +``` + +**???** ҵ񳡾?ʵõʵ?ֱ```select count```һ?? + +``` + + + boolean isVip (String userId){ + int vipNum = userInfoDAp.countVipUserByUserId(userId); + return vipNum>0 +} +``` + + +### 2. ӵif߼?Ե˳?óЧ + + +ҵ?ûǻԱ?ҵһε½ʱ?Ҫһ֪ͨĶšûо˼?ֱܿдˡ + +``` +if(isUserVip && isFirstLogin){ + sendMsgNotify(); +} +``` + +ܹ5?isUserVipͨ3?isFirstLoginͨ1 ôϴ?isUserVipִеĴΪ5?isFirstLoginִеĴҲ3?? + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b30c2899d10f4258bf1fc94a9ebf324c~tplv-k3u1fbpfcp-watermark.image) + + +һisUserVipisFirstLogin˳? +``` +if(isFirstLogin && isUserVip ){ + sendMsg(); +} +``` +isFirstLoginִеĴ5?isUserVipִеĴ1?? + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/103a20c642e04ea899d74c4cb8187b28~tplv-k3u1fbpfcp-watermark.image) + +isFirstLogin?ж߼ֻselect count һݿ?isUserVipҲselect count һݿĻ??Ȼ??isFirstLoginǰЧ + + +### 3. дѯSqlʱ?ֻҪõֶ?ͨõֶ?ֵܾselect * + +**?** + +``` +select * from user_info where user_id =#{userId}; +``` + +**?** + + +``` + selct user_id , vip_flag from user_info where user_id =#{userId}; +``` + +**?** + +- ʡԴ翪? +- õ?ٻر?߲ѯЧʡ + +### 4. Żij?ܾҪĶԏ + + +ı?߼ж?һᱻֵ?˵?ֻһַ?ֱӳʼַͿ?ûбҪҪnew String(). + + +? +``` +String s = new String ("ӭעں?ݵСк"); +``` + +? + +``` +String s= "ӭעں?ݵСк ?; +``` + + +### 5. ʼʱ?ָ + + +Ŀֲ?Ҳȷᵽ? +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2ac43ab291794c608537f1c4da6a9caa~tplv-k3u1fbpfcp-watermark.image) + + +mapҪ洢Ԫظ15?д +``` + //initialCapacity = 15/0.75+1=21 + Map map = new HashMap(21); + ΪhashMap2й?Կȡ32 + Map map = new HashMap(32); +``` + +### 6.catch쳣?Ҫӡexception?öλ + +**?** +``` +try{ + // do something +}catch(Exception e){ + log.info("ݵСк?ij쳣"); +} +``` + +**?** + +``` +try{ + // do something +}catch(Exception e){ + log.info("ݵСк?ij쳣?",e); //exceptionӡ +} +``` + +**?** +- ?ûаexception?ʱŲͲò?SQlд쳣IO쳣??Ӧðexceptionӡ־Ŷ~ + +### 7. ӡ־ʱ?ԏûиObjecttoStringķ?ֱӰӡˡ + + +ڴӡ־ʱ??һԏrequestʲôǺЩ? + + +``` +publick Response dealWithRequest(Request request){ + log.info("?".request.toString) +} +``` +ӡ? + +``` +?local.Request@49476842 +``` + +ΪԏҵtoString?Ĭϵʵ^@ɢ޷ʮ ?㿴?Ӵӡ־ûɶ˼?㶼֪ӡʲôݡ + +һԏ(ΪεĶԏ??**дtoString()**? + +``` +class Request { + + private String age; + + private String name; + + @Override + public String toString() { + return "Request{" + + "age='" + age + '\'' + + ", name='" + name + '\'' + + '}'; + } +} + +publick Response dealWithRequest(Request request){ + log.info("?".request.toString) +} + + +``` +ӡ? + +``` +?Request{age='26', name='ں?ݵСк'} +``` + +### 8. һ?ܾIJб + +ôһз?βĸ + +``` +public void getUserInfo?String name,String age,String sex,String mobile){ + // do something ... +} +``` + +Ҫഫһversion?ĹзdubboֶṩĽӿڵĻ?ôĽӿDzҪϰ汾? + +``` +public void getUserInfo?String name,String age,String sex,String mobile){ + // do something ... +} + +/** + * ½ӿڵ + */ +public void getNewUserInfo?String name,String age,String sex,String mobile?String version){ + // do something ... +} +``` + +?һһIJ?һ㲻˹IJб??ҽӿʱ?ܻҪϰ汾ݡʵǶô?øDTOԏҰװһЩ~? + +``` +public void getUserInfo?UserInfoParamDTO userInfoParamDTO){ + // do something ... +} + +class UserInfoParamDTO{ + private String name; + private String age; + private String sex; + private String mobile; +} +``` +øDTOԏҰװһ?ʹв䶯?ҲԲöӿ?ôܸܵġ + +### 9. ʹû?IO + +**?** + +``` +/** + * ں?ݵСк + * @desc: һͼƬļ + */ +public class MainTest { + public static void main(String[] args) throws FileNotFoundException { + long begin = System.currentTimeMillis(); + try (FileInputStream input = new FileInputStream("C:/456.png"); + FileOutputStream output = new FileOutputStream("C:/789.png")) { + byte[] bytes = new byte[1024]; + int i; + while ((i = input.read(bytes)) != -1) { + output.write(bytes,0,i); + } + } catch (IOException e) { + log.error("ļ쳣",e); + } + log.info("д?ܹʱms?"+(System.currentTimeMillis() - begin)); + } +} +``` + +н? + +``` +д?ܹʱms:52 +``` + + + +ʹ```FileInputStream``````FileOutputStream```ʵļд?ûʲôġ?ʹû```BufferedReader``````BufferedWriter``````BufferedInputStream``````BufferedOutputStream```?IO?߶дЧʡ +> Dz?ȡһֽڻַ?ͻֱˡ?ȡһֽڻַʱ?Ȳ?ǵȴﵽ?һ + +**?** + + +``` +/** + * ں?ݵСк + * @desc: һͼƬļ + */ +public class MainTest { + public static void main(String[] args) throws FileNotFoundException { + long begin = System.currentTimeMillis(); + try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("C:/456.png")); + BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("C:/789.png"))) { + byte[] bytes = new byte[1024]; + int i; + while ((i = input.read(bytes)) != -1) { + output.write(bytes,0,i); + } + } catch (IOException e) { + log.error("ļ쳣",e); + } + log.info("ܹʱms"+(System.currentTimeMillis() - begin)); + } +} +``` +н? + +``` +д?ܹʱms:12 +``` + +### 10. Żij߼?ǰѾ鵽?ںķҲõĻ?ǿ԰´ε?ٷ/ + +**?** +``` +public Response dealRequest(Request request){ + + UserInfo userInfo = userInfoDao.selectUserByUserId(request.getUserId); + if(Objects.isNull(request)){ + return ; + } + + insertUserVip(request.getUserId); + +} + +private int insertUserVip?String userId?{ + //ֲһ + UserInfo userInfo = userInfoDao.selectUserByUserId(request.getUserId); + //ûvipˮ + insertUserVipFlow(userInfo); + .... +} + +``` + +?ȻrϳrѾ18? userInfo?ȻְuserIdȥ?ֲһΡʵ?԰userInfoȥ?ʡȥһβ?Ч + +**?** + +``` +public Response dealRequest(Request request){ + + UserInfo userInfo = userInfoDao.selectUserByUserId(request.getUserId); + if(Objects.isNull(request)){ + return ; + } + + insertUserVip(userInfo); +} + +private int insertUserVip?UserInfo userInfo?{ + //ûvipˮ + insertUserVipFlow(userInfo); + .... +} +``` + + +### 11. ҪΪ˷?ֱڴʹ0,1ħֵ?ӦҪenumöٴ档 + + +**?** + +``` +if("0".equals(userInfo.getVipFlag)){ + //ǻԱ?ʾȥͨԱ + tipOpenVip(userInfo); +}else if("1".equals(userInfo.getVipFlag)){ + //Ա?ѫ· + addMedal?userInfo?; +} +``` + +**?** + + +``` +if(UserVipEnum.NOT_VIP.getCode.equals(userInfo.getVipFlag)){ + //ǻԱ?ʾȥͨԱ + tipOpenVip(userInfo); +}else if(UserVipEnum.VIP.getCode.equals(userInfo.getVipFlag)){ + //Ա?ѫ· + addMedal?userInfo?; +} + +public enum UserVipEnum { + + VIP("1","Ա"), + NOT_VIP("0","ǻԱ"),:; + + private String code; + private String desc; + + UserVipEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } +} +``` + +дʱ?Ҫһʱ?ֱʹħֵʹħֵ?άܵġ + +### 12. Աֵıʱ?ȶΪ̬ + +**?** + + +``` +public class Task { + private final long timeout = 10L; + ... +} +``` + +**?** + +``` +public class Task { + private static final long TIMEOUT = 10L; + ... +} +``` + +> ΪΪstatic?ྲ̬?ÿʵԏ?ֻһݸdzԱ?ÿʵԏ?һݸ?Ȼh繏⸏ŵĻii38Ώ?A?һ?? + +### 13. עָ?Ҫ׏ҵ?˵߼ijΪա + +NullPointerException ճзdz?Ǵ뿪?һҪԿָ뱣 + +Ҫ⼸ָ? + +- װ͵Ŀָ +- õĿָ +- EqualsߵĿָ +- ConcurrentHashMap ֧ k-vΪ null +- ?ֱӻȡԪ +- ԏֱӻȡ + +**?** +``` +public class NullPointTest { + public static void main(String[] args) { + String s = null; + if (s.equals("666")) { //sΪ?ᵼ¿ָ + System.out.println("ں?ݵСк?ɻ"); + } + } +} + +``` + +### 14?񵽵쳣?ܺ?ٴ־ + +**?** + +``` +public static void testIgnoreException() throws Exception { + try { + // + } catch (Exception e) { + //쳣?ɶ鲻?־Ҳ?? + } +} + +``` + +**?** + +``` +public static void testIgnoreException() { + try { + // + } catch (Exception e) { + log.error("쳣?ϵС翴",e); + } +} +``` + +### 15. Lambdaʽ滻ڲ?ʹ + +JDK8-LambdaʽLambdaʽڲ?ڴ?DzinvokeDynamicָʵ?ڲ?ЧҲ + + +**?** +``` + public void sortUserInfoList(List userInfoList){ + userInfoList.sort(new Comparator() { + @Override + public int compare(UserInfo user1, UserInfo user2) { + Long userId1 = user1.getUserId(); + Long userId2 = user2.getUserId(); + return userId1.compareTo(userId2); + }}); + } +``` + +**?** + +``` + public void sortUserInfoList(List userInfoList){ + userInfoList.sort((user1, user2) -> { + Long userId1 = user1.getUserId(); + Long userId2 = user2.getUserId(); + return userId1.compareTo(userId2); + }); + } +``` + +### 16. ֪ͨ?緢ʼ?ж?Ĵ?첽 + +ҵ?Ҫû½ʱ?Ӹ֪ͨķ˿ ?ʵ? + + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ed6daf4932b34452b1aacdb98aa2dcc8~tplv-k3u1fbpfcp-watermark.image) + +ṩsendMsgNotifyϵͳ?ߵsendMsgNotifyʧ?ôû½ʧˡ +һ֪ͨܵ˵½̲??Եļ֥鶏ɧϡDôûƼõķ24أеģiv?Žӿڲ4?vii߳첽?h£? + + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/58a956dc04c6456395b39d02afe3187e~tplv-k3u1fbpfcp-watermark.image) + +?֪ͨȲǷҪ?ɽĽӿʱ?ӦþǷӰҪ?˼ôá + +### 17. Javaʱ?YYYYʽõ⡣ + +ճ?ǾҪڡҪʱڸʽʱ?Ǵд```YYYY```Ŀӡ + + +``` +Calendar calendar = Calendar.getInstance(); +calendar.set(2019, Calendar.DECEMBER, 31); + +Date testDate = calendar.getTime(); + +SimpleDateFormat dtf = new SimpleDateFormat("YYYY-MM-dd"); +System.out.println("2019-12-31 ת YYYY-MM-dd ʽ " + dtf.format(testDate)); +``` +н? + +``` +2019ǯ1231 ת YYYY-MM-dd ʽ 2020ǯ1231 +``` + +> Ϊʲô20191231?תһ¸ʽ?ͱ20201231?ΪYYYYǻ?ָ?ڵ?һܴտʼ??ֻҪܿ?ôһܾһˡȷʹyyyyʽ + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d2e3654c06cd4727b203ea5710cc8410~tplv-k3u1fbpfcp-watermark.image) + +### 18. һȷᱻ̳?AOPɧ?ָfinalη?finalһࡣ + +**?** +``` +public final class Tools { + public static void testFinal(){ + System.out.println("෽"); + } +} +``` + +һָfinalη?ᱻ̳?зfinalˡJavaһеfinal?JavaЧʡ + + +### 19. static̬Ҫspringʵ?ܻᵼ³ʼ + +֮ǰ?ĿƵĴ롣̬springbean +``` + private static SmsService smsService = SpringContextUtils.getBean(SmsService.class); +``` + +̬smsServiceпܻȡ?Ϊ˳ȷ?ϵĴ?̬smsServiceʼǿspringʵˡȷд?? + + +``` + private static SmsService smsService =null; + + //ʹõʱȡȡ + public static SmsService getSmsService(){ + if(smsService==null){ + smsService = SpringContextUtils.getBean(SmsService.class); + } + return smsService; + } + +``` + +### 20. Ա޹صķ?Ӧɾ̬ + + + +Щ?ʵԱ޹?ͿΪ̬һ?õúܶࡣ****? + +``` +/** + * BigDecimalĹ + */ +public class BigDecimalUtils { + + public BigDecimal ifNullSetZERO(BigDecimal in) { + return in != null ? in : BigDecimal.ZERO; + } + + public BigDecimal sum(BigDecimal ...in){ + BigDecimal result = BigDecimal.ZERO; + for (int i = 0; i < in.length; i++){ + result = result.add(ifNullSetZERO(in[i])); + } + return result; + } +``` + +ΪBigDecimalUtilsķûstatic??Ҫʹõʱ?ÿζҪnewһ,DzͺԴȥ**ԏ**?? + +``` +BigDecimalUtils bigDecimalUtils = new BigDecimalUtils??; +bigDecimalUtils.sum(a,b); +``` +Կɾ̬?ʹõʱ?ֱ```.```ü?? + + +``` +/** + * BigDecimalĹ + */ +public class BigDecimalUtils { + + public static BigDecimal ifNullSetZERO(BigDecimal in) { + return in != null ? in : BigDecimal.ZERO; + } + + public static BigDecimal sum(BigDecimal ...in){ + BigDecimal result = BigDecimal.ZERO; + for (int i = 0; i < in.length; i++){ + result = result.add(ifNullSetZERO(in[i])); + } + return result; + } +``` + +### 21. ҪһException׽пܵ쳣 + +**:** + +``` + +public void test(){ + try{ + // ?׳ IOException Ĵ + // ?׳ SQLException Ĵ + }catch(Exception e){ + //û Exception ׽пܵ쳣?ζ׽?ᶪʧԭʼ쳣ЧϢŶ + log.info(^Exception in test,exception:{} ?, e); + } +} + +``` + +**?** + + +``` +public void test(){ + try{ + // ?׳ IOException Ĵ + // ?׳ SQLException Ĵ + }catch(IOException e){ + //׽ IOException + log.info(^IOException in test,exception:{} ?, e); + }catch(SQLException e){ + //׽ SQLException + log.info(^SQLException in test,exception:{} ?, e); + } +} +``` + +### 22. Ҫȷװ?Լ༴ɡ + +**?** + +``` +// װ +public static boolean isUserVip(Boolean isVip) { + return Boolean.TRUE.equals(isVip); +} + +// ʹô +boolean isVip = isVip(user.getUserVip()); +``` + +**?** + + +``` +boolean isVip = Boolean.TRUE.equals(user.getUserVip()); +``` + +Ҫȷװ?˼ɡ?ûջͳջ?ĸCPUڴ?ȷװ?ܵ? + + +### 23. ijֵһᱻ?ûбҪֵ + +**:** + +``` +List userList = new ArrayList(); +if (isAll) { + userList = userInfoDAO.queryAll(); +} else { + userList = userInfoDAO.queryActive(); +} + +``` +**?** + + +``` +List userList ; +if (isAll) { + userList = userInfoDAO.queryAll(); +} else { + userList = userInfoDAO.queryActive(); +} + +``` + + +### 24.ֵҪʹBigDecimal + +Ӱ? +``` +public class DoubleTest { + public static void main(String[] args) { + System.out.println(0.1+0.2); + System.out.println(1.0-0.8); + System.out.println(4.015*100); + System.out.println(123.3/100); + + double amount1 = 3.15; + double amount2 = 2.10; + if (amount1 - amount2 == 1.05){ + System.out.println("OK"); + } + } +} +``` +н? + +``` +0.30000000000000004 +0.19999999999999996 +401.49999999999994 +1.2329999999999999 +``` +> ΪԶƴ洢ֵ?ڸҲǡڼ?0.1޷ȷ?Ϊʲôᵼ¾ȷȱʧġ??һ㶼BigDecimal + + +``` +System.out.println(new BigDecimal(0.1).add(new BigDecimal(0.2))); +//output: +0.3000000000000000166533453693773481063544750213623046875 +``` +ʵ?ʹ BigDecimal ʾͼ㸡?ʹַĹ췽ʼ BigDecimal??ҪעBigDecimalļλС?аģʽ + +### 25. עArrays.asListļ + +- **ͲΪ Arrays.asListIJ?ᱻһ** + +``` +public class ArrayAsListTest { + public static void main(String[] args) { + int[] array = {1, 2, 3}; + List list = Arrays.asList(array); + System.out.println(list.size()); + } +} +//н +1 +``` +- **Arrays.asList ص List ֧ɾ** + + +``` +public class ArrayAsListTest { + public static void main(String[] args) { + String[] array = {"1", "2", "3"}; + List list = Arrays.asList(array); + list.add("5"); + System.out.println(list.size()); + } +} + +// н +Exception in thread "main" java.lang.UnsupportedOperationException + at java.util.AbstractList.add(AbstractList.java:148) + at java.util.AbstractList.add(AbstractList.java:108) + at object.ArrayAsListTest.main(ArrayAsListTest.java:11) + +``` + Arrays.asList ص List java.util.ArrayList? Arrays ڲArrayListڲArrayListûʵadd?Ǹaddʵ?ǻ׳쳣ء + +- **ʹArrays.asLisʱ?ԭʼ޸ĻӰǻõǸList** + +``` +public class ArrayAsListTest { + public static void main(String[] args) { + String[] arr = {"1", "2", "3"}; + List list = Arrays.asList(arr); + arr[1] = "4"; + System.out.println("ԭʼ"+Arrays.toString(arr)); + System.out.println("list" + list); + } +} + +//н +ԭʼ[1, 4, 3] +list[1, 4, 3] +``` + +### 26?ʱرIOԴ + +ӦôҶйľ?windowsϵͳ̫ļϵͳ?ͻõԺܿȻ?linuxҲһ?ƽʱļ?ݿ?IOԴûر?ôIOԴͻᱻռ?˾ûа취?Դ˷ѡ + + +ʹIO?ǵùرչʹtry-with-resourceرյ? +``` +/* + * עں?ݵСк + */ +try (FileInputStream inputStream = new FileInputStream(new File("jay.txt")) { + // use resources +} catch (FileNotFoundException e) { + log.error(e); +} catch (IOException e) { + log.error(e); +} +``` + +### 27. ʹúڵĻʱ + +> - ڷ?ͲԼʱ?DZջе?ٶȱȽϿ졣 +> - ԏ͵IJʱöջ?ݶڶ?ٶȽ +> - ?κ͵ijԱڶ?Heap??ٶȽ + +``` +public class AccumulatorUtil { + + private double result = 0.0D; + // + public void addAllOne( double[] values) { + for(double value : values) { + result += value; + } + } + //?ڷһֲʱ?ۼ?ٸֵijԱ + public void addAll1Two(double[] values) { + double sum = 0.0D; + for(double value : values) { + sum += value; + } + result += sum; + } +} + +``` + +### 28. ݿһβѯ?ҳ + +SqlһԲȽ϶?ҳ + + +**?** +``` + +select user_id,name,age from user_info ; + +``` + +**?** + +``` +select user_id,name,age from user_info limit #{offset},#{pageSize}; +``` + +ƫرʱ?ѯЧʾͱõ¡ַʽŻ? + +``` +//һ ?ϴβѯ¼(ƫ) +select id?name from user_info where id>10000 limit #{pageSize}. + +//?order by + +select id?name from user_info order by id limit #{offset},#{pageSize} + +//?ҵҳ? + +``` + +### 29. ٶԱظ + +һдʱ?µķʽʵ? +``` +for (int i = 0; i < list.size; i++){ + +} +``` +listȽСǻálistȽϴʱ?Ż? +``` +for (int i = 0, int length = list.size; i < length; i++){ + +} +``` + +? +- Էĵ?ʹֻһ?ҲЏĵ?紴ջ֡listȽϴʱ?εlist.sizeҲǻԴĵġ + + +### 30. ޸ĶϽӿڵʱ?˼ӿڵļԡ + +ܶbugΪ޸˶Ͻӿ?ȴݵµġؼDZȽص?ֱӵϵͳʧܵġֳԱ׾ͷŶ~ + +?ԭӿ޸??ӿǶṩĻ?һҪǽӿڼݡٸӰ?dubboӿ?ԭֻA?B?һC?ͿԿ + +``` +//Ͻӿ +void oldService(A,B);{ + //½ӿ?nullC + newService(A,B,null); +} + +//½ӿ?ʱɾϽӿ?Ҫݡ +void newService(A,B,C); +``` + + +### 31 ȡʩʱ?߽?? + +ճ?Ҫȡʩ߽??ָʱ + + +ƴȽϳ: + +``` +String name = list.get(1).getName(); //listԽ?Ϊһ2Ԫع +``` + +?Ӧòȡʩ?Ԥһ߽?**?** + +``` +if(CollectionsUtil.isNotEmpty(list)&& list.size()>1){ + String name = list.get(1).getName(); +} +``` + + +### 32. ע ArrayList.toArray() ǿתĿ + +``` +public class ArrayListTest { + public static void main(String[] args) { + List list = new ArrayList(1); + list.add("ں?ݵСк"); + String[] array21 = (String[])list.toArray();//ת쳣 + } +} + +``` + +ΪصObject?ObjectǿתString?ᷢClassCastException?ʹtoArray()طtoArray(T[] a) + +``` +String[] array1 = list.toArray(new String[0]);// +``` + + +### 33. ѭԶ̵áݿ?ȿС + +̲ݿDZȽϺ硢IOԴ?ԾѭԶ̵áѭݿ?һԲҪѭȥ顣??ҲҪһԲ̫ݹ?Ҫ500һν? + + +**?** +``` +remoteBatchQuery(param); +``` + +**?** + +``` +for(int i=0;i userInfoList) { + for (int i = 0; i < userInfoList.size(); i++) { + //ظuserList.size() + } + } +``` + +**?** + + +``` + public static void listDetail(List userInfoList) { + int length = userInfoList.size(); + for (int i = 0; i < length; i++) { + //ٵuserList.size()?ֻlengthһΡ + } + } +``` + +### 37?ֱӴļһԴݿȡ̫ݵڴ?ܵOOM + +һ԰Ѵļݿ̫ݴﵽڴ?ǻᵼOOMġ?ΪʲôѯDBݿ?һ㶼 + +ȡļĻ?һļ̫?ʹFiles.readAllLines()Ϊʲô?ΪֱӰļڴ?Ԥ²OOMʹ?ԿԴ? + + +``` +public static List readAllLines(Path path, Charset cs) throws IOException { + try (BufferedReader reader = newBufferedReader(path, cs)) { + List result = new ArrayList(); + for (;;) { + String line = reader.readLine(); + if (line == null) + break; + result.add(line); + } + return result; + } +} +``` +̫ļ?ʹFiles.line()ȡ?ʱȡļЩ?һʹҪرԴĹ + +### 38. õӿ?Ҫ쳣?ȫ?ʱ⼸㡣 + +ճ?Ҫõ?߷ֲʽԶ̷ĵĻ?Ҫ? + + +- 쳣??˵Ľӿ?쳣?ô?Իǵʧ? +- ʱ?ûԤԷӿһ÷?һøʱϿʱ?ԱĽӿ? +- Դ?Ľӿڵʧ?費Ҫ?ҪվҵϽǶ˼? + +> һ?һhttp˵ķ?Ҫconnect-time?retry + + +### 39 Ҫʹѭ?ʹJDKṩķ + +> - JDKṩԭAPI?ֱָϵ?ܡ +> - ЩĵײSystem.arraycopyʵ?ݵЧʸߡ + +**?** + +``` +public List copyMergeList(List user1List, List user2List) { + List userList = new ArrayList(user1List.size() + user2List.size()); + for (UserInfo user : user1List) { + userList.add(user); + } + for (UserInfo user : user2List) { + userList.add(user); + } + + return user1List; + } +``` + +**?** + +``` +public List copyMergeList(List user1List, List user2List) { + List userList = new ArrayList(user1List.size() + user2List.size()); + userList.addAll(user1List); + userList.addAll(user2List); + return user1List; + } +``` + +### 40. ڸӵĴ߼?ע + +дʱ?ûбҪд̫ע͵?õķõע͡?ҵ߼ܸӵĴ?ķdzбҪдע͡ע?ںά + + +### 41. ???԰ȫ + +ڸ߲?HashMapܻѭΪǷ?԰ȫ?ԿʹConcurrentHashMap Ҳϰ?Ҫ־һnew HashMap(); + +- HashmapArraylistLinkedListTreeMapȶ?Բȫ? +- VectorHashtableConcurrentHashMapȶ?԰ȫ + +### 42. ʹspringʱ?ע⼸δЧĿ + +ճҵ񿪷?Ǿ򽻵?ʧЧҪ¼? + +- ײݿ治֧ +- ڷpublicεķʹ +- rollbackForô +- ෽ֱӵ +- 쳣try...catch?ʧЧ + +**?** + + +``` +public class TransactionTest{ + public void A(){ + //һ + //÷B (ص?ʧЧ) + B(); + } + + @Transactional + public void B(){ + // + } +} +``` + +**ע񷽷෽ֱӵ?ʧЧ** + + +### 43. ʹExecutors?̳?newFixedThreadPoolOOM + + +``` + ExecutorService executor = Executors.newFixedThreadPool(10); + for (int i = 0; i < Integer.MAX_VALUE; i++) { + executor.execute(() -> { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + //do nothing + } + }); + } + +``` +IDEָJVM?-Xmx8m -Xms8m : + +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b7154077d1074b3c8e1f5670e754adfd~tplv-k3u1fbpfcp-watermark.image) + +н? + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fa3de03ca1924787aa1775b0a94890b4~tplv-k3u1fbpfcp-watermark.image) + +ǿԴ?ʵnewFixedThreadPoolʹõ޽? + + +``` +public static ExecutorService newFixedThreadPool(int nThreads) { + return new ThreadPoolExecutor(nThreads, nThreads, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); +} + +public class LinkedBlockingQueue extends AbstractQueue + implements BlockingQueue, java.io.Serializable { + ... + /** + * Creates a {@code LinkedBlockingQueue} with a capacity of + * {@link Integer#MAX_VALUE}. + */ + public LinkedBlockingQueue() { + this(Integer.MAX_VALUE); + } +... +} + +``` + +> newFixedThreadPool?̳صĺ?ǹ̶?ʹ˽޽LinkedBlockingQueueС??ӵ?ִеʱȽϳ?ûͷ?ᵼԽԽѻ?»ڴʹòͣ?JVM OOM + + +### 44. catchס쳣?Ҫʹe.printStackTrace(),ʹlogӡ + +**?** + +``` +try{ + // do what you want +}catch(Exception e){ + e.printStackTrace(); +} +``` + +**?** + +``` +try{ + // do what you want +}catch(Exception e){ + log.info("ij쳣",e); +} +``` + +### 45. ӿҪݵ + +ӿҪݵԵ?תЩҪӿڡֱ۵ҵ񳡾?ûŵ?Ľӿûholdס + +һݵȼ⼸: + +- ѯ +- Ψһ +- token?ֹظύ +- ݿdelete/update +- ֹ +- +- Rediszookeeper ֲʽ?ǰ?Redisֲʽ? +- ״̬ݵ + + +### 46. Ƚ϶ĺ?黮С?ǿɶԡ + +**?** +``` +public class Test { + private String name; + private Vector orders = new Vector(); + + public void printOwing() { + //print banner + System.out.println("****************"); + System.out.println("*****customer Owes *****"); + System.out.println("****************"); + + //calculate totalAmount + Enumeration env = orders.elements(); + double totalAmount = 0.0; + while (env.hasMoreElements()) { + Order order = (Order) env.nextElement(); + totalAmount += order.getAmout(); + } + + //print details + System.out.println("name:" + name); + System.out.println("amount:" + totalAmount); + } +} + +``` + +**?** + + +``` +public class Test { + private String name; + private Vector orders = new Vector(); + + public void printOwing() { + + //print banner + printBanner(); + //calculate totalAmount + double totalAmount = getTotalAmount(); + //print details + printDetail(totalAmount); + } + + void printBanner(){ + System.out.println("****************"); + System.out.println("*****customer Owes *****"); + System.out.println("****************"); + } + + double getTotalAmount(){ + Enumeration env = orders.elements(); + double totalAmount = 0.0; + while (env.hasMoreElements()) { + Order order = (Order) env.nextElement(); + totalAmount += order.getAmout(); + } + return totalAmount; + } + + void printDetail(double totalAmount){ + System.out.println("name:" + name); + System.out.println("amount:" + totalAmount); + } + +} + +``` + +һ߳ĺһҪעͲ;Ĵ?ԿǰзֳһȷĺԪ?̵ĺ?ôøš + + +### 47. Ĺؼҵ?һ㽨־ݻ + +ؼҵε?Ӧ㹻־ݻ + +> ?ʵתҵ?ת?Ȼתʧ?ſͻͶ?Ȼ㻹ûдӡ־???ˮȵ?ȴް취 + +ô?תҵҪЩ־Ϣ??ǰ?ҪӡҪ?ӿڵú?Ҫһ쳣?ͬʱӡ쳣־?? + +``` +public void transfer(TransferDTO transferDTO){ + log.info("invoke tranfer begin"); + //ӡ + log.info("invoke tranfer,paramters:{}",transferDTO); + try { + res= transferService.transfer(transferDTO); + }catch(Exception e){ + log.error("transfer fail,cifno:{}?account?{}",transferDTO.getCifno??? + transferDTO.getaccount??) + log.error("transfer fail,exception:{}",e); + } + log.info("invoke tranfer end"); + } +``` + +˴ӡ㹻־?ǻҪעһ?־쏻ʹ?𱾸ôӡinfo־?ȴӡerror?澯ҹŲͲˡ + +### 48. ijЩɱ?Ƥȵ?ûǷء + +Ʒ˸?ʥڵʱ?ƤΪʥڏص?ڵʱ?Ƥȡ + +: + +``` +if(duringChristmas){ + img = redPacketChristmasSkin; +}else if(duringSpringFestival){ + img = redSpringFestivalSkin; +} +``` + +Ԫڵʱ?ӪСͻȻ??Ƥɵص?ʱ?DzҪȥ޸Ĵ?·?һʼ?ʵһźƤñ?Ƥû?Ƥ?ֻ޸һ±ݾͺˡ + +### 49?.ֱӵҪʹõļ,ڶ + +ֱӵҪʹõļ?ͨȡ?Ƚϵ;Mapĵ? + + +**?** +``` +Map userMap = ...; +for (Long userId : userMap.keySet()) { + UserDO user = userMap.get(userId); + ... +} +``` + +**?** + + +``` +Map userMap = ...; +for (Map.Entry userEntry : userMap.entrySet()) { + Long userId = userEntry.getKey(); + UserDO user = userEntry.getValue(); + ... +} +``` + +### 50. ģʽ+Żif else + + +? + +``` + String medalType = "guest"; + if ("guest".equals(medalType)) { + System.out.println("αѫ"); + } else if ("vip".equals(medalType)) { + System.out.println("Աѫ"); + } else if ("guard".equals(medalType)) { + System.out.println("չʾػѫ"); + } + ... + +``` + +?ǰÿ߼?鏻ҳһĽӿ?Ǹÿ߼?叺ӦIJʵ?ɵ´? + + +``` +//ѫ½ӿ +public interface IMedalService { + void showMedal(); +} + +//ػѫ²ʵ +public class GuardMedalServiceImpl implements IMedalService { + @Override + public void showMedal() { + System.out.println("չʾػѫ"); + } +} +//αѫ²ʵ +public class GuestMedalServiceImpl implements IMedalService { + @Override + public void showMedal() { + System.out.println("αѫ"); + } +} +//VIPѫ²ʵ +public class VipMedalServiceImpl implements IMedalService { + @Override + public void showMedal() { + System.out.println("Աѫ"); + } +} + +``` + +?ٶԹ?Щѫʵ?? + + +``` +//ѫ·񹤲 +public class MedalServicesFactory { + + private static final Map map = new HashMap(); + static { + map.put("guard", new GuardMedalServiceImpl()); + map.put("vip", new VipMedalServiceImpl()); + map.put("guest", new GuestMedalServiceImpl()); + } + public static IMedalService getMedalService(String medalType) { + return map.get(medalType); + } +} + +``` + +Ż?? + +``` +ublic class Test { + public static void main(String[] args) { + String medalType = "guest"; + IMedalService medalService = MedalServicesFactory.getMedalService(medalType); + medalService.showMedal(); + } +} +``` + diff --git "a/345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md" "b/345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md" new file mode 100644 index 0000000..978ae68 --- /dev/null +++ "b/345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md" @@ -0,0 +1,123 @@ +

????

+

???以?????????????APP?????????????e????????就??????????????????????????????????????大??????????????????件?????????????????常大??????影?????????此???????????????????????????????????????????????????大叱?起6???????????????????????????

+ +

???????????????????9?????起菰论???????????????

+

1. ??????????????????????

+

??????????????????????裸??????以??容??就??使???https??讏????e??????顾??https?????????~

+

1.1 https ???

+ +
    +
  • ???http????大????????
+

为????使??https??????????http?????????? ????http???????信?????????????????????????海???使??http??讏?????以???大??????

+
??? +
    +
  • ????/?????????笥????˻??????信????
  • ???????????笥????襭???????信????????????俏???
  • ?????????笥????˻???????人身份??????<??
+???
+

??????????????信???好??????????????????????????信?????e??????????以???????使?????https??????????????????信???

+
    +
  • ???https ?????????
+

https????????????????为??????解???http????大????????

+
??? +

https = http + SSL/TLS, SSL/TLS ????????????讏??????????容???????认??????????????????以解??????????????????????

+???
+

为??????https????????????o?????以??起?????????次?????https???请??????????~

+ +
??? +
    +
    1. +
    2. 客??????https请??
    +
    1. +
    2. ????????须????????????????˻??????????˻?????????????菶??????????就???对???????
    +
    1. +
    2. ??????????????????????????????????????????????????????客?????
    +
    1. +
    2. 客????????????????????????????对???????主??????????????????????????????????????????????????????弹?6???????????????????????????????????对称???????????????????????????????并?????????????叶?????????????
    +
    1. +
    2. 客???????https串??笥?????????????????客??????(???????)?????????????????
    +
    1. +
    2. ???????????????????????????????????????????叶????????对称e???e?????????????????????????客?????叶??????????对称?????????????????????????
    +
    1. +
    2. ???????????????????????????客?????
    +
    1. +
    2. 客???????????????????????????????????????客???????对????对称e?????????????????????????
    +
+???
+
    +
  • ???https?????????????
+

https?????????????????????????????d???使???https??讏???????信?????????????????????????????????~

+
??? +
    +
  • ???https ????就?????????˿?????????????????????????????中??人????????????????????????????/??就>???????平???????鱼????述????????就????客??导????????以?????????
  • ???????????https?????被??????????????
+???
+

1.2 对称??????

+

???使????https??讏??????????????????????????????????d??????以?????????????????????????????~

+

????????????对称????????????????对称???????两大类??????????类??????????????????????????

+
??? +

对称????????????e??使???????????????????????????? +

+???
+

常????对称??????主?????以?????????? +

+

????使??对称?????????????????????????????叶????????????????????????对???????????人??????????????????????

+

1.3 ???对称??????

+

??????????????对称???????????

+
??? +

??????对称???????? ???对称??????????两个?????????????????????????????????????对??????????????????叶??????????????对????????????解????

+???
+ +

常???????对称??????主?????以?????????? +

+
??? +

????使????对称????????????????????????????????叶????????????????????????对???????????人??????????????????????????以??????˻??????????????????????客?????????????????????????????????????????? 大叱?˻???????????????~

+???
+

???以?桦???????????度??????????????????大??????????????????˻??????????????桦??????:

+ +

????????????????????就??RSA???RSA就????????对称??????????????????度???竏????JavaScript????jsencrypt???????github???star???????????

+ +

???此?????以˻??????https + ???对称????????RSA???? ????????????~

+

2. ??????????????????????

+

???设?????已???????达?????????????d???????????????????????????????????????????????????????˻???????????????????????????????????????????

+
??? +

??????????? ??????????????????????????????????????????????????叶?????????????

+???
+

2.1 MD5??????????????????

+

MD5 ????????常??????????????????广????????????????????????????????????????????????????????使?? MD5 对????????????并????????????以??丏???????

+
public class MD5Test {
public static void main(String[] args) {
String password = "abc123456";
System.out.println(DigestUtils.md5Hex(password));
}
}
+

???????

+
0659c7992e268962384eb17fafe88364
+

???MD5???费?解????????驥??就˻?????????????????????

+ +

????????????客??建?????大??????????????????20?????以?????????????????????????????????MD5??????????并?????????????以??????????????????奵??就?????彏?;???????????解?????????????????????????;就????????????????????MD5对???????????????????????已?????????~

+

2.2 MD5+??????????????????????

+

??d???为???????MD5+??????????????????????????

+
??? +

????????????????????????任???????罏?????????????讏?e???????????????使???????????????e???????????????称??为??????????????

+???
+

??????????+????????????????e?????????????????????˻???????对彩??;??解????????????使?????????????????????????

+
??? +
    +
  • ?????g??举??死?????????????????????度???????死太??????????客?注????????????????
  • 每??????????????????????并?????????????????? 20 ????(???????????????????????容????解)
  • ???好???????????并?????????????????????????????????????????彏?;????????
+???
+

2.3 ????????????????????????????Bcrypt

+

??使????????????????????被??????解??????此?????以˻????????????????????????????讏??客?解????????大???d??????迫使??以??????????????????????????????~Bcrypt??˻??溮???????

+
??? +

??????Spring Security 已???? MessageDigestPasswordEncoder?????使??BCryptPasswordEncoder??就??BCrypt????????????????BCrypt ??????为???????设?????????? MD5 ?????????

+???
+

???丏???对????????

+
public class BCryptTest {

public static void main(String[] args) {
String password = "123456";
long md5Begin = System.currentTimeMillis();
DigestUtils.md5Hex(password);
long md5End = System.currentTimeMillis();
System.out.println("md5 time:"+(md5End - md5Begin));
long bcrytBegin = System.currentTimeMillis();
BCrypt.hashpw(password, BCrypt.gensalt(10));
long bcrytEnd = System.currentTimeMillis();
System.out.println("bcrypt Time:" + (bcrytEnd- bcrytBegin));
}
}
+

???????

+
md5 time:47
bcrypt Time:1597
+

???叶??????BCrypt?MD5????????????客??????解?????就?????费????????????d??????此??????????建菰使??Bcrypt?????????????????

+

3. ????

+
    +
  • ???此????????https ??? + ???对称????????RSA?????????????????为????????????˻??????竏????????????????????
  • 使??BCrypt + ???????????????????
  • ??????????????解??台???????????????TEL???????形??????????????????????御?????御??????解???
+

???????????

+
    +
  • ??g`?????????????????? https://time.geekbang.org/column/article/239150[1]
  • ???????????????????????? https://juejin.cn/post/6844903604944371726#heading-8[2]
+

???????

+
    +
  • ???????????????????9???
  • github?????https://github.com/whx123/JavaHome
+ + +
+ \ No newline at end of file diff --git "a/345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md.bak" "b/345267245344275234346200273347273223/347250213345272217345221230345277205345244207345237272347241200357274232345246202344275225345256211345205250344274240350276223345255230345202250347224250346210267345257206347240201.md.bak" new file mode 100644 index 0000000..e69de29 diff --git "a/347274223345255230Redis346200273347273223/344270203347247215346226271346241210345257271346257224345210206345270203345274217351224201.md" "b/347274223345255230Redis346200273347273223/344270203347247215346226271346241210345257271346257224345210206345270203345274217351224201.md" new file mode 100644 index 0000000..d861cdb --- /dev/null +++ "b/347274223345255230Redis346200273347273223/344270203347247215346226271346241210345257271346257224345210206345270203345274217351224201.md" @@ -0,0 +1,225 @@ +### ???? +??常????举???????????????红???????????????????????????????????Redis???常??????为???????使??????????????????????大叱??Redis???????????g`使?????????????????g`????????欢??大叱?????????起6??起??步?? + + +???????**?????????9** + +- ???????????? +- ??????SETNX + EXPIRE +- ??????SETNX + value?????系??????+????????? +- ??????使??Lua??????(??????SETNX + EXPIRE两????) +- ????????SET?????????令?SET EX PX NX? +- ??????SET EX PX NX + ???????????????,?????????? +- ???????: ??????:Redisson +- ???????????????????????Redlock + +- github????????谢??star +> https://github.com/whx123/JavaHome + + +### ???????????? + +> ????????????就?????????式系????????????访???享?????????????????????????????系??????????????????主??????享????丏渴?????????????????2彼4干???以????????? + +???以???????????????谱???????????该??????????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/42884a1613344c11be5fef3b9e8ed7c5~tplv-k3u1fbpfcp-zoom-1.image) + +- **?????**: 任????????????????????????????? +- **???????????**????????????????˻?????????2????????????˻??2死????? +- **????????**:???????????????????,?˻???次叶??菶?????????? +- **??????????**??????????i??????????尽???????????????????????????????失????? +- **???????**??????被?????????客????????????被????客???????? + +### Redis??????????????SETNX + EXPIRE + +??????Redis??????????????小?伴2?就??????```setnx```+ ```expire```??令??????????```setnx```?????????????????????????```expire```????设置??????????????2????记????????? + +> SETNX ???SET IF NOT EXISTS???????.??常??令???????SETNX key value????? key?????????SETNX??????????1???????key已??????????????0??? + +???设???????????????????????????活???key?˻设置?key_resource_id,value设置任??????伏滣?????? + +``` +if?jedis.setnx(key_resource_id,lock_value) == 1?{ //?????? + expire?key_resource_id?100?; //设置???????? + try { + do something //???菶? + }catch(){ +??????} +??????finally { + jedis.del(key_resource_id); //??????? + } +} +``` +?????????举??```setnx```???```expire```两个??令??????**???????????**????????????```setnx```???????h??????```expire```设置????????????crash????????????⻴???????d??????就???????????????**?????线??永??????????????**??? + + +### Redis??????????????SETNX + value????(系??????+????????) + +为??e??????**???????常????????????????**????小?伴菰为???˻?????????????```setnx```???value??????????????????失败????????value?????????????????g????? +``` +long expires = System.currentTimeMillis() + expireTime; //系??????+设置??????????? +String expiresStr = String.valueOf(expires); + +// ????????????????????????????????? +if (jedis.setnx(key_resource_id, expiresStr) == 1) { + return true; +} +// ???????已???????????????????????? +String currentValueStr = jedis.get(key_resource_id); + +// ?????????????????????小?系????????????已????? +if (currentValueStr != null && Long.parseLong(currentValueStr) < System.currentTimeMillis()) { + + // ???已???????????????????????????并菱罏????????????????????redis???getSet??令???小?伴???˻??????????? + String oldValueStr = jedis.getSet(key_resource_id, expiresStr); + + if (oldValueStr != null && oldValueStr.equals(currentValueStr)) { + // ???????线??并?????????????????????设置???????????????????˻?????? + return true; + } +} + +//????????????????????????失败 +return false; +} +``` + +??????????????巧??移??```expire```?????罶??????????????????**??????????setnx???value???**????????e???????????????常????????????????????????????????????????缺??? + +> - ??????????????????????????System.currentTimeMillis()????????系????????????须????????????每?????????????须??步?? +> - ???????????????????并?????????????菶???????????jedis.getSet()???????????????????????????????揵客???????????????????被?????客?????? +> - 该??没???????????????????????????被?????客????????/i????? + + +### Redis??????????????使??Lua??????(??????SETNX + EXPIRE两????) + +?????????以???˻使??Lua???????????????????????setnx???expire两???令???lua????????? +``` +if redis.call('setnx',KEYS[1],ARGV[1]) == 1 then + redis.call('expire',KEYS[1],ARGV[2]) +else + return 0 +end; +``` +??????g????? + +``` + String lua_scripts = "if redis.call('setnx',KEYS[1],ARGV[1]) == 1 then" + + " redis.call('expire',KEYS[1],ARGV[2]) return 1 else return 0 end"; +Object result = jedis.eval(lua_scripts, Collections.singletonList(key_resource_id), Collections.singletonList(values)); +//???????????? +return result.equals(1L); +``` +??????????缺????????????????缺????????????????????˻?????????????对?????渪??好? + +### Redis????????????????????SET?????????令?SET EX PX NX? + +????使???使??Lua?????????```SETNX + EXPIRE```两???令?????????????以???˻巧??Redis???SET???令???????????```SET key value[EX seconds][PX milliseconds][NX|XX]```??????????????? + +> SET key value[EX seconds][PX milliseconds][NX|XX] +> - NX :?key??????????????????set????????????????笥???????请???????襭????????????客??请????????????????????襭?????? +> - EX seconds :设??key????????????????????????? +> - PX milliseconds: 设??key????????????????为揵? +> - XX: ??key??????菱??? + +伏滣???demo??? +``` +if?jedis.set(key_resource_id, lock_value, "NX", "EX", 100s) == 1?{ //?????? + try { + do something //???????? + }catch(){ +??????} +??????finally { + jedis.del(key_resource_id); //??????? + } +} +``` + +??????????????????????????? + +- ??????**????????????????????没????**??????设线?a???????????????????????临??????g?????????100s????????没????????????????????已???????此?线?b???请??????????线?b就˻???????????????????临??????g???????d??????就????临?????????>?????????ٸ??串????????????? +- ??????**?????????线?????**??????设线?a????????????????????????????????????????????⺿?b??????????线??a?????????????????????????已??????此?线?b??????????????????g?a就??线??b??????????????????⺿?b临????????>????????没???????? + +### ??????SET EX PX NX + ???????????????,????????? + +???????被?????线????????f??以??value??菱罏?????记?????线?????????????????????????????????????????OK???????伏滣?????? +``` +if?jedis.set(key_resource_id, uni_request_id, "NX", "EX", 100s) == 1?{ //?????? + try { + do something //???????? + }catch(){ +??????} +??????finally { + //??????????????线???????????,?????????? + if (uni_request_id.equals(jedis.get(key_resource_id))) { + jedis.del(lockKey); //??????? + } + } +} +``` + +?????????**??????????????线???????????**???**???????**????????????????????????jedis.del()?????????????????????????已????????客????i???人??????????? + +![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9237655e6b1a47038d2774231e507e11~tplv-k3u1fbpfcp-watermark.image) + +为????严谏???????????lua?????????lua????????? +``` +if redis.call('get',KEYS[1]) == ARGV[1] then + return redis.call('del',KEYS[1]) +else + return 0 +end; +``` + +### Redis????????????????Redisson???? + +???????????????**?????????????????没?????**??????????????小?伴菰为???徏????????????菱罏????就˻????????????以???????????˻?????????线?????????????????线???????段???????????????????????????对????????????延??????2???????????????????? + +??????????Redissone??????????????以??起????Redisson????????????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/367cd1a7a3fb4d398988e4166416d71d~tplv-k3u1fbpfcp-zoom-1.image) + + +???线????????????????就?????????```watch dog```??????????????????线???????10????????????线??1?????????????d??就???????延???key???????????????此??Redisson就?ٽ???Redissone???**?????????????????没?????**??????? + +### Redis???????????????????????????????Redlock+Redisson + +??????????????只?????????????????????????????????Redis???????群?????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7349794feeee458aa71c27f27a0b2428~tplv-k3u1fbpfcp-watermark.image) + +????线??????Redis???master????????????????????????????key?没??步??slave?????????好?????master???????????????????slave?????就????级为master???????线???就˻????????key????????????线????已?????????????????????就>????? + +为??e????????Redis???? antirez?????????级?????????????Redlock???Redlock????????????????? +> ?????Redis master????以????以????????????????并????master??????????????????????????????????????????步?????????????硏?????????master???????????Redis??????使???????????襭???????????????? + +???以??设????????5?Redis master??????????5???????????????Redis????? + +![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0df0a36c7ccd439291a8a869ff4ddad3~tplv-k3u1fbpfcp-watermark.image) + +RedLock?????步鏪:?? +> - 1.?????????????以揵?为?????? +> - 2.???顺?????5?master?????菶??????????客??设置??????????????????并?????????小???????失???????????设???????失?????为10????????????????5-50???????,???以???设????????50ms????????????????跳???master???????尽快??????master??????? +> - 3.客??使????????????????????????????5?1记??????????????襭??????使????????????????????N/2+1????????5/2+1=3??????????Redis master??????襭?????并??使????????????失???????????????????????????????????10s> 30ms+40ms+50ms+4m0s+50ms? +> - ???????????????key??????f????????就??????????????????????????使????????? +> - ???????????失败?没????????N/2+1?master?????????????????????????????已经???????????????客???????????????master???????i?????便????master???????没????????????????????i???以?2????漏??鱼????? + +?????步鏪就??? +- ???顺?????5?master?????菶??????? +- ???Џ罏????????????????????跳???master??????? +- ????大??????????????????????并??使???????????????????????????ԏ?????????????????? +- ???????????失败?i??? + +Redisson???redLock????????????????趣???小?伴???˻??d??????~ + +### ??????? +- 欢????注????????????????9 + +### ??????????? + +- [redis系???????????](https://juejin.cn/post/6844903656911798285 "redis系???????????") +- [???? Redis ????????e????](https://www.infoq.cn/article/dvaaj71f4fbqsxmgvdce "???? Redis ????????e????") +- [??Redis????????????](https://juejin.cn/post/6844904082860146695#heading-3 "??Redis????????????") +- [Redlock?Redis????????????????????](https://mp.weixin.qq.com/s?__biz=MzU5ODUwNzY1Nw==&mid=2247484155&idx=1&sn=0c73f45f2f641ba0bf4399f57170ac9b&scene=21#wechat_redirect) + diff --git "a/347274223345255230Redis346200273347273223/344275277347224250Redis34723220421344270252346263250346204217347202271.md" "b/347274223345255230Redis346200273347273223/344275277347224250Redis34723220421344270252346263250346204217347202271.md" new file mode 100644 index 0000000..6a4364e --- /dev/null +++ "b/347274223345255230Redis346200273347273223/344275277347224250Redis34723220421344270252346263250346204217347202271.md" @@ -0,0 +1,386 @@ +### ǰ + +ѧϰRedis֪ʶ?˰redis淶?ԼRedisάⱾ顣ʹù淶пӵ?Ŀʵսάĸ?ʹRedis21ע?ϣԴа?һѧϰ + +ں?**ݵСк** +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c59661f74a014a63a4527939096f11aa~tplv-k3u1fbpfcp-watermark.image) + +## 1Redisʹù淶 + +### 1.1 keyĹ淶Ҫ + +Rediskeyʱ?Ҫע⼸? + +> - ҵΪkeyǰ׺?ðŸ?Էֹkeyͻǡ?live:rank:1 +> - ȷkey?keyijȾС30ַ +> - keyַֹ?ո񡢻С˫Լתַ +> - Rediskeyttl?Ա֤ʹõKeyܱʱ̭ + +### 1.2valueĹ淶Ҫ + +RedisvalueֵõŶ + +**һ**?洢bigKeyǻ?ᵼѯ?ڴȵȡ +> - String?valueС10kڡ +> - hashlistsetzset?Ԫظһ㲻5000 + + +**ڶ**?Ҫѡʺϵ͡СֻRedisString?setgetʵ?Redis ṩ**ḻݽṹ**?Щҵ񳡾?ʺ```hashzset```ݽ + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1874e69c709940fd80d66cc8ab683135~tplv-k3u1fbpfcp-watermark.image) + +**?** + +``` +set user:666:name jay +set user:666:age 18 +``` + +**** + +``` +hmset user:666 name jay age 18 +``` + +### 1.3. Keyùʱ?ͬʱעⲻͬҵkey?ʱɢһ + +- ΪRedisǴڴе?ڴԴǺܱġ +- һǰRedis?**ݿ**?keyھͲ̫ +- ?key?һ㽨**expireùʱ** + + +keyijʱ㼯й?ڵǸʱ?Redisܻڿ?**ѩ**?һ㲻ͬҵkey?ʱӦ÷ɢһЩʱ?ͬҵ?Ҳʱϼһֵ?ùʱɢһЩ + + +### 1.4.ʹЧ + +ճдSQLʱ?֪?Чʻ?һθ50?ѭ50?ÿθһЧʸߡʵRedisҲ + +RedisͻִһɷΪ4?1.-> 2.Ŷ-> 3.ִ-> 4. ؽ14 ΪRRT?ִʱ? Redisṩ**?mgetmset**?ЧԼRRT?󲿷ֵ?Dz֧?hgetall?ûmhgetallڡ**Pipeline** Խ⡣ + +> Pipelineʲô?ܽһRedisװ?ͨһRTTRedis?ٽRedisִн˳򷵻ظͻ. + +ûʹPipelineִnģ? + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b71283614a3344c4afac8ac82438fa44~tplv-k3u1fbpfcp-watermark.image) + +ʹPipelineִn?Ҫ1RTT?ģ? + +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b865d241c02d45e7a88540ab7f70280a~tplv-k3u1fbpfcp-watermark.image) + +## 2Redis пӵЩ + + +### 2.1. ```O(n)```Ӷ?```hgetall``````smember```?```lrange``` + +ΪRedisǵ?ִġhgetallsmemberʱ临ӶΪO(n)?nʱ?ᵼ Redis CPU 쭸?ִС + +> hgetallsmember?lrangeЩһʹ?Ҫۺ?ȷnֵ?ȥ +> hgetall?ϣԪnȽ϶Ļ?ȿʹ**hscan** + + +### 2.2 Redismonitor + +Redis Monitor ʵʱӡRedisյ??֪ͻ˶redisЩ?ͿMonitor 鿴?һ****ö?Ҫ?Ϊ**monitorܵredisڴ** + +> monitorģǽϵ?ὫRedisִе?һRedisQPSǺܸߵ?Ҳִmonitor?RedisMonitorͻ˵ֻд^ ??Ҳռ˴Redisڴ档 + + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d3610a4a95fe4995862d9ddd878269fe~tplv-k3u1fbpfcp-watermark.image) + + +### 2.3ʹ keysָ + +Redis Keys ڲзϸģʽpatternkey?鿴Redis ij͵keyжٸ?С?keys?? + +``` +keys keyǰ׺* +``` + +?redis```keys```DZƥ?Ӷ```O?n?```?ݿԽԽ֪?redisǵ?̵?ݱȽ϶Ļ?keysָͻᵼredis???ϷҲͣ?ֱִָ?Żָ?**һ?Ҫʹkeysָ**ٷĵҲ? + +> Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is executed against large databases. This command is intended for debugging and special operations, such as changing your keyspace layout. Don't use KEYS in your regular application code. If you're looking for a way to find keys in a subset of your keyspace, consider using sets. + +ʵ?ʹscanָ?ͬkeysһṩģʽƥ书ܡĸӶҲ O(n)?ͨαֲ?**redis?**;ǻһ**ظ**?Ҫ**ͻһȥ** + +> scan֧ʽ?ʽҲȱ?ٸ? ʹ SMEMBERS ԷؼϼǰԪ? Ƕ SCAN ʽ˵? ΪڶԼʽĹ? ܻᱻ޸? ʽֻܶԱصԪṩЏı֤ + + +### 2.4 ֹʹflushallflushdb + +> - Flushall Redis (ɾݿ key ) +> - Flushdb յǰݿе key + +ԭԵ?ִֹСһʼִ?ִʧܵġ + +### 2.5 עʹdel + +ɾkeyһʹʲô?ֱdel?ɾһkey?ֱʹdelȻû⡣??delʱ临ӶǶ?Ƿ̽һ? +- ɾһString͵key?ʱ临ӶȾ```O?1?```?**ֱdel** +- ɾһList/Hash/Set/ZSetʱ?ĸӶ```O(n)```, nʾԪظ + +?ɾһList/Hash/Set/ZSet͵keyʱ?ԪԽ?Խ**nܴʱ?Ҫע**??̵ġô?del?Ӧôɾ? + +> - List?ִ```lpoprpop```?ֱԪɾɡ +> - Hash/Set/ZSet?ִ```hscan/sscan/scan```ѯ?ִ```hdel/srem/zrem```ɾÿԪء + +### 2.6 ʹSORTSINTERȸӶȹߵ + +ִиӶȽϸߵ?ᏻĸ CPU Դ??̡Ҫִ```SORTSINTERSINTERSTOREZUNIONSTOREZINTERSTORE```Ⱦۺ?һ㽨ŵͻִС + +## 3?ĿʵսܿӲ + +### 3.1 ֲʽʹõע + +ֲʽʵ?Ʒֲʽϵͳ̹ͬͬʹԴһʵɱµȵҵ񳡾?ҪõֲʽǾʹRedisΪֲʽ?ҪЩע? + +#### 3.1.1 SETNX + EXPIREֿд?ʹʵ? +``` +if?jedis.setnx(key_resource_id,lock_value) == 1?{ // + expire?key_resource_id?100?; //ùʱ + try { + do something //ҵ + }catch(){ + } + finally { + jedis.del(key_resource_id); //ͷ + } +} +``` +ִ```setnx```?Ҫִexpireùʱʱ?crashҪά?ô^ ??**?Զȡ**?һֲʽôʵ + +#### 3.1.2 SETNX + valueֵǹʱ (ЩСôʵ?п) + + +``` +long expires = System.currentTimeMillis() + expireTime; //ϵͳʱ+õĹʱ +String expiresStr = String.valueOf(expires); + +// ǰ?ؼɹ +if (jedis.setnx(key_resource_id, expiresStr) == 1) { + return true; +} +// Ѿ?ȡĹʱ +String currentValueStr = jedis.get(key_resource_id); + +// ȡĹʱ?Сϵͳǰʱ?ʾѾ +if (currentValueStr != null && Long.parseLong(currentValueStr) < System.currentTimeMillis()) { + + // ѹ?ȡһĹʱ?ÏĹʱ?˽redisgetSetС?ȥ¹? + String oldValueStr = jedis.getSet(key_resource_id, expiresStr); + + if (oldValueStr != null && oldValueStr.equals(currentValueStr)) { + // Ƕ?̲?ֻһ?̵ֵ͵ǰֵͬ?ſԼ + return true; + } +} + +//?ؼʧ +return false; +} +``` +ַ**ȱ**? +> - ʱǿͻԼɵ?ֲʽ?ÿͻ˵ʱͬ +> - ûбߵΨһʶ?ܱĿͻͷ/ +> - ڵʱ?ͻͬʱ?ִ```jedis.getSet()```?ֻһͻ˼ɹ?ǸÿͻĹʱ?ܱĿͻ˸ǡ + +#### 3.1.3? SETչ?SET EX PX NX??עܴڵ? + +``` +if?jedis.set(key_resource_id, lock_value, "NX", "EX", 100s) == 1?{ // + try { + do something //ҵ + }catch(){ + } + finally { + jedis.del(key_resource_id); //ͷ + } +} +``` + +ǿܴ? +- ͷ?ҵûִꡣ +- ?ɾ + + +#### 3.1.4 SET EX PX NX + УΨһֵ,ɾ?ɾ?Ǵ?ҵûִ? + +``` +if?jedis.set(key_resource_id, uni_request_id, "NX", "EX", 100s) == 1?{ // + try { + do something //ҵ + }catch(){ + } + finally { + //жDzǵǰ?̼ӵ,Dzͷ + if (uni_request_id.equals(jedis.get(key_resource_id))) { + jedis.del(lockKey); //ͷ + } + } +} +``` + +?жDzǵǰ?̼ӵͷһԭӲjedis.del()ͷʱ?Ѿڵǰͻ?˼ӵ + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/88518412ca20489cbd38498d883639db~tplv-k3u1fbpfcp-watermark.image) + + +һҲluaű档luaű? + +``` +if redis.call('get',KEYS[1]) == ARGV[1] then + return redis.call('del',KEYS[1]) +else + return 0 +end; +``` + + +#### 3.1.5 Redisson + Redlock㷨 ͷ?ҵûִ+ + +Redisson ʹһ```Watch dog```ͷ?ҵûִ?Redissonԭͼ: +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a80964e2ed1d4e739dc2a62ac73110da~tplv-k3u1fbpfcp-watermark.image) + +ϵķֲʽ?ڵ? +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3b9e6b6050874be98f6a256291552459~tplv-k3u1fbpfcp-watermark.image) +> ?һRedismasterڵõ?Ǽkeyûͬslaveڵ㡣ǡʱ?masterڵ㷢?һslaveڵͻΪmasterڵ㡣?̶ͿԻȡͬkey??һҲѾõ?İȫԾûˡ + +Ե?ʹRedlock㷨ȤѿԿƪ¹?[ַ?̽Redisֲʽȷʹ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488142&idx=1&sn=79a304efae7a814b6f71bbbc53810c0c&chksm=cf21cda7f85644b11ff80323defb90193bc1780b45c1c6081f00da85d665fd9eb32cc934b5cf&token=1120875912&lang=zh_CN#rd) + +### 3.2 һע + +- Ƕ?ȶ?ݿ +- д?ȸݿ?д +- ÿθݺ?Ҫ +- һ㶼ҪһĹʧЧ +- һҪߵĻ?ʹbiglog+MQ֤ + +Ȥ?Կƪ¹?[?Ȳݿ⻹Ȳ?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488079&idx=1&sn=49255f6c0c540deeb3333bcf86d6c77c&chksm=cf21cd66f856447061b5eca47f51199e120a9eaa83fa7546b4bd2667218403ccc97e726ab456&token=1120875912&lang=zh_CN#rd) + +### 3.3 Redis?Ƶset?֮ǰõĹʱЧ + +֪?Redisݽṹ?ǿùʱġһַ?Ѿ˹ʱ?ȥ?ͻᵼ֮ǰĹʱЧ + +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/29a81b1775e044e2b1198dff2e3b1ca1~tplv-k3u1fbpfcp-watermark.image) + +Redis ```setKey```Դ? +``` +void setKey(redisDb *db,robj *key,robj *val) { + if(lookupKeyWrite(db,key)==NULL) { + dbAdd(db,key,val); + }else{ + dbOverwrite(db,key,val); + } + incrRefCount(val); + removeExpire(db,key); //ȥʱ + signalModifiedKey(db,key); +} +``` + +ʵҵ񿪷?ͬʱҪRedis?Ƶset?˹ʱkeyʧЧС׷ + +### 3.4 洩͸ + +һĻʹ÷ʽ??Ȳ»?ֵ?ֱӷ?û?ȥݿ?Ȼݿֵµ?ٷء + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/59c69359b2c249ad8954b7da7c0e6fb8~tplv-k3u1fbpfcp-watermark.image) + +**洩͸**?ָѯһһڵ?ڻDzʱҪݿѯ?鲻д뻺?⽫ڵÿҪݿȥѯ?ݿѹ + +> ͨ׵˵?ʱ?ݿⶼûijֵ?ͻᵼÿζֵIJѯ󶼻ᴩ͸ݿ?ǻ洩͸ + +洩͸һ㶼⼸? + +- **ҵ񲻺**?ûûػ?ÿȥ?ѯijuseridѯûػ +- **ҵ/ά/ʧIJ**?绺ݿݶɾˡ +- **ڿͷǷ󹥻**?ڿ͹Ƿ?Զȡڵҵݡ + +**α⻺洩͸?** һַ + +- 1. ǷǷ?API?ԲУ?˷Ƿֵ +- 2. ѯݿΪ?ǿԸøֵ?ĬֵдĻ?Ҫ»?Ա֤һ?ͬʱ?ʵĹʱ䡣?ҵϱȽϳ?Ч? +- 3. ʹò¡жǷڡһѯʱ?ͨ¡жֵǷ?ڲż²顣 +> ¡ԭ?ɳʼֵΪ0λͼNϣɡһһkeyNhash㷨ȡNֵ?ڱнNֵɢк趨Ϊ1?Ȼʱض⼸λöΪ1?ô¡жϸkeyڡ + + +### 3.5 ѩ + +**ѩ?** ָݴʱ?ѯ޴?ֱӷݿ?ݿѹdown + +- ѩһڴͬʱɵ?ԭ?ͨùʱ?ùʱ䏺ɢһ㡣һϴ̶ֵ+һСֵ?5Сʱ+01800뽴ϡ +- Redis 崻Ҳ𻺴ѩҪRedis߿üȺ + + +### 3.6 + +**?** ָȵkeyijʱڵʱ?ǡʱKeyдIJ?Ӷdb + +е㏻?ʵ?ѩָݿѹdown?ֻǴDBݿ档ΪǻѩһӼɡЩΪ?ڻijһȵkey?ѩǺܶkey + +? + +- **1.ʹû**ʧЧʱ?ȥdb?ʹijЩɹصԭӲ?(Redissetnx?ȥ?ɹʱ?ȥdbݿݺû档ȥԻȡ档 +- **2. ^ ?**?ָûùʱ?ȵݿҪʱ?첽?ȥºùʱ䡣 + +### 3.7key + +Redis?ǰѷƵʸߵkey?Ϊȵkeyijһȵkey󵽷ʱ?ر?ܻᵼԴ?崻?ӶӰķ + +ȵKeyô?Ҫԭ? +> - ûѵԶ?ɱȵŵȶдٵij +> - Ƭ?Redi?̶key?Hashͬһ̨?˲?ƿ?ȵKey⡣ + +ôճ?ʶȵkey? +> - ƾжЩKey? +> - ͻͳϱ? +> - ϱ + +νkey? + +> - RedisȺ?ӷƬ?? +> - keyhashɢ?罫һkeyΪkey1,key2 ? ?keyN?ͬN?NݷֲͬƬ?ʱNеһ?һֵ? +> - ʹö?JVMػ,RedisĶ + +## 4. Redisά + +### 4.1 ʹóӶǶ?Һÿͻ˵ӳ + +- ʹö?ÿζҪ TCP ֡Ĵλ?ӺʱȻӵĻ?һ?redisһֱʹ?ϿԼٽredisʱ䡣 +- ӳؿʵڿͻ˽ӲҲͷ?Ҫʹӵʱ?ÿζ?ʡ˺ʱҪò?ʱ䲻 Redisʱ?Ҳ輰ʱͷԴ + +### 4.2 ֻʹ db0 + +Redis-standaloneֹܹʹ÷db0.ԭ + +- һ?Redisִselect 0select 1л?ܡ +- Redis Cluster ֻ֧ db0?ҪǨƵĻ?ɱ + +### 4.3 maxmemory + ǡ̭ԡ + +Ϊ˷ֹڴѹ͡Щʱ?ҵ?rediskeyʹ?ڴֱӲ?άСҲǼӴڴˡѵredisֱҵ?Ҫʵҵ?ѡmaxmemory-policy(ڴ̭)?úùʱ䡣һ8ڴ̭? + + - volatile-lru?ڴ治дʱ?˹ʱkeyʹLRU?ʹ?㷨̭? +- allkeys-lru?ڴ治дʱ?keyʹLRU?ʹ?㷨̭ +- volatile-lfu?4.0汾?ڴ治дʱ?ڹڵkey?ʹLFU㷨ɾkey +- allkeys-lfu?4.0汾?ڴ治дʱ?keyʹLFU㷨̭? +- volatile-random?ڴ治дʱ?˹ʱkey?̭? +- allkeys-random?ڴ治дʱ?key̭ݡ +- volatile-ttl?ڴ治дʱ?˹ʱkey?ݹʱ̭?Խڵȱ̭? +- noeviction?Ĭϲ?ڴ治дʱ?дᱨ + +### 4.4 lazy-free + +Redis4.0+汾֧lazy-free?RedisbigKey?lazy-free?Redis ɾһ bigkey ʱ?ͷڴĺʱ?ŵ̨?ȥִ?ٶ?̵Ӱ + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6f6c5e7c58fa488ea0540f671c08081b~tplv-k3u1fbpfcp-watermark.image) + +### οл + +- [Redis ǧҪKEYS?Ȼᰤ](https://www.cnblogs.com/tonyY/p/12175032.html) +- [Redis淶](https://developer.aliyun.com/article/531067) +- [Redis ʵָ?7ά+43ʹù淶](https://mp.weixin.qq.com/s/2sUWnpJCvkJ8-7XSGLdesA) +- [RedisĻ洩͸!!¡BloomFilter](https://blog.csdn.net/wx1528159409/article/details/88357728) +- [ Redis ʵܽ](https://www.shangmayuan.com/a/d2f178b548a64c25854a9750.html) + From b6c47701db1d56630b83b39eb5d5e396504b3aea Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2021ǯ620 09:44:13 +0800 Subject: [PATCH 02/52] =?UTF-8?q?m=E5=87=8F=E5=B0=91bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...345260221bug345221242357274237.md" | 663 ++++++++++++++++++ ...260221bug345221242357274237.md.bak" | 0 2 files changed, 663 insertions(+) create mode 100644 "345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md" create mode 100644 "345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md.bak" diff --git "a/345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md" "b/345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md" new file mode 100644 index 0000000..0c47dce --- /dev/null +++ "b/345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md" @@ -0,0 +1,663 @@ +## ǰ + +Һѽ~ ǼݵСк?ճ?μbug?Ľ**ݿ⡢桢ʹƪ**3??ܽһ60ע?ҳΪ֮ǡ +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/41bd0d208d054f87a99f6c7df514f35d~tplv-k3u1fbpfcp-zoom-1.image) + +- ӭעں?**ݵСк** +- [githubַ](https://github.com/whx123/JavaHome)?лÿһstar + +## 1. ݿƪ + +![ѯ](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a05dccf50dc3403c8c665d3395cdcc91~tplv-k3u1fbpfcp-zoom-1.image) + +ݿƪĻ?Щط׵bug?ܽ7?**ѯݿֶע㡢ʧЧijӳ١ݼݡһЩSQLע** + +### 1.1 ѯ + +![ѯ.gif](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d38c462aa484b47b9fcfded5f4f2140~tplv-k3u1fbpfcp-watermark.image) + +#### 1.1.1 Ƿ +ѯ?Ͼͻ?һSQLû?ûĻ?ͻѯ + +**ЩʧЧ?** + +- ѯor?ܵʧЧ +- ֶַ?whereʱһ?ʧЧ +- likeͨܵʧЧ +- ?ѯʱвеĵһ?ʧЧ +- ʹmysqlú?ʧЧ +- ??+-*/??ʧЧ +- ֶʹ??= ?not in?ʱ?ܻᵼʧЧ +- ֶʹis null? is not null?ܵʧЧ +- ӲѯӲѯѯֶαʽһ?ܵʧЧ +- mysqlʹȫɨҪʹ,ʹ + + +#### 1.1.2 ?Ƿֱֿ + +̫?ͻӰSQLִܡ֪ݽṹһB+?һø߶Ϊ3B+?ſԴ洢ǧݡĻ?B+Ҫ?ѯܻ½ + +?ʱ?ֱֱֿֿм**mycatsharding-jdbc** + + +#### 1.1.3 SQL + +ճ?߼ܶ಻SQL?һSQLȻ**6**,̫Ӱѯ?ٱһ?Ȼ**10**ȵȡǻή˲͸SQL?һ㲻̫?һ㲻ܳ + + +### 1.2 ݿֶע + +ݿֶ?׳bug?Ի޸˱ṹ?ijֶ?ǰѽű?Ƿ϶ˡ + +#### 1.2.1 ֶǷᳬ + +ݿֶ? + +``` +`name` varchar(255) DEFAULT NOT NULL +``` + +˱name?ֶγ300?Dzʱ****ˡҪУ?ֶֹγ + +#### 1.2.2 ֶΪ?Ƿᵼ¿ָ + +ݿֶεʱ,ֶΪ**not null** + +- ?һʹ0-1ΪĬֵ +- ַ?ĬϿַ + +ݿֶΪ```NULL```ֵ?׵³ָ?ݿֶΪ```NULL```ֵ?Ҫע**count()** ʹ?пӡ + +#### 1.2.3 ֶȱʧ + +ǵճ?ڲԻ?Ա޸?һֶ?ҪSQLű?ֶȱʧ? + + +#### 1.2.4 ֶǷֱ֧ + +һֶҪֱ֧洢?ʹ**utf8mb4** + +#### 1.2.5 ʹtextblobֶ + +Ҫһֶδ洢ļ?**洢ļ·**?ļȥʹtextʱ?漰ѯʱ?עⴴ**ǰ׺** + +### 1.3 ʧЧij + +#### 1.3.1 @Transactional ڷpublicεķʧЧ + + +@Transactionalע?ڷpublicεķ?DzЧġspringǽAOP˼??Ҳ̬ͨʵġspringԼڵö̬֮ǰ?ѾԷpublic?Էpublic?Ч + +#### 1.3.2 طֱӵ +? @TransactionalҲЧ +``` +public class TransactionTest{ + public void A(){ + //һ + //÷B (ص?ʧЧ) + B(); + } + + @Transactional + public void B(){ + // + } +} +``` + +#### 1.3.3 쳣try...catch?ʧЧ + + +``` +@Transactional +public void method(){ + try{ + //һ + insertA(); + //һ + updateB(); + }catch(Exception e){ + logger.error("쳣?ʧЧ",e); + } +} + +``` + +#### 1.3.4 rollbackForô + +SpringĬ׳δ```unchecked```쳣?̳RuntimeException 쳣?ErrorŻع?쳣ᴥع׳͵쳣?Ҫָ```rollbackFor```ԡ + +#### 1.3.5 ײݿ治֧ + +MyISAM洢治֧?InnoDb֧ + +#### 1.3.6 springҵ߼һ? + +ҵҪspringԴͬһ??ŻspringĿơ?mothed??ڲִе?mothedspringĿ?һҪע⡣ΪspringʵʹThreadLocal?ʵͬһ?ݹ + +``` +@Transactional +public void mothed() { + new Thread() { + + }.start(); +} +``` + + +### 1.4 + +ָͬһԴϏռ?ԷԴ?Ӷ¶ѭďҡ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3513a3fd3ef64e318f157dd51ec280ef~tplv-k3u1fbpfcp-zoom-1.image) + + +MySQLڲһ?һعһ?һִȥ**Դʽ̵͡òȷ**Σ + +#### 1.4.1 9SQL + +Ҫ?Ҫѧ?һSQLļνе?һSQL?Է9̽? + +- һ?id?RC뼶 +- ϶?idǶΨһ?RC뼶 +- ?idǶΨһ?RC뼶 +- ?idû?RC뼶 +- ?id?RR뼶 +- ?idǶΨһ?RR뼶 +- ?idǶΨһ?RR뼶 +- ϰ?idû?RR뼶 +- Ͼ?Serializable뼶 + + +#### 1.4.2 η? + +IJ? + +- ģ +- show engine innodb status;鿴־ +- ҳSQL +- SQL?ȥ +- ־?ʲô?ȴʲô? +- Ϥģʽݾ?InnoDB洢ļԾ + +ȤС?Կ֮ǰдƪ?[ְֽMysql](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487979&idx=1&sn=588c83d77a8851f3b3c18cd68ed9c454&chksm=cf21cec2f85647d4a77cc239ae9a4cfd31bb8832be3d98540a08ea8b4a1f46b38cf736210a02&token=1327808550&lang=zh_CN#rd) + + +### 1.5 ӳ⿼ + +Ȳ?žȥѯ,߼Ƚϳ?ܻġһݿⶼ?ӿġдĻд?һǶӿ⡣ӳ??ܿܳɹ?ѯ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/560555c31cfe42a0b07dd9bcad24c0e1~tplv-k3u1fbpfcp-zoom-1.image) + + +#### 1.5.1 Ҫǿһ?Ƕ + +Ҫҵ?Ҫǿһ?ֱӶ + +#### 1.5.2 Ҫǿһ?ӿ + +һҵ?ԽܶݵݲһµĻ?ȿǶӿ⡣ΪӿԷֵĶдѹ?ϵͳܡ + +### 1.6 ݼ + +#### 1.6.1 ¼ӵֶ?ǴݵĬֵ + +ճ?ҵ?ҪijݿӸֶΡijAPPñ?ҪӸֶ?```scene_type```,öֵ ```010203```?ǾҪҵ?ӵֶ?ʲôĬֵ?ΪջĬ01?Ϊ```NULL```Ļ?Ҫÿָ봦 + +#### 1.6.2 ҵϵֶ?ݵֵǷп + +ǿ?Ҫݿֶ?д?ǾҪϴݿֵǷпӡDZиuser_role_code ֶ?ϵ?öֵ ``` 01?Ա 02?Ա 03?һû```ҵ**һû**Ϊ**03ѯû04û**?ڿ?Ҫݵ + +### 1.7 һЩSQLľע + +#### 1.7.1 limitҳ + +limitҳһdzSQL?һ3ֶӦĽ + +**һ?** id??ϴβѯ¼(ƫ)?limit + + +``` +select id,name from employee where id>1000000 limit 10. +``` + +**:** ҵҳ? + +ҵ?ûбҪôķҳΪû̫ҳȸҳҲǏҳ?˲limitҳ⡣ + +**?** ӳٹӲѯŻҳ?ȿٶλҪȡid?Ȼٹ? + +``` +SELECT a.* FROM employee a, (select id from employee where LIMIT 1000000,10 ) b where a.id=b.id +``` + +#### 1.7.2 ޸ġѯʱ?ǷС + +Ǹ»߲ѯݿʱ?ѭȥݿ?ԿǷСҪ10ݵĻ?һβ500 + +**?** +``` +remoteBatchQuery(param); +``` +**?** + +``` + +for(int i=0;i<100000;i++){ + remoteSingleQuery(param) +} +``` + + +## 2. ƪ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/819c4665e0064db5bb3441c5bee4cb7a~tplv-k3u1fbpfcp-zoom-1.image) + +### 2.1 ϸ + +![ϸ.gif](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/aaa1fee8efa745d39a2ef869caa55b4f~tplv-k3u1fbpfcp-watermark.image) + +#### 2.1.1 Ϳָ + +DZʱ?Ҫע͵Ŀָ + +- װ͵Ŀָ +- õĿָ +- EqualsߵĿָ +- ConcurrentHashMap ֧ k-vΪ null +- ?ֱӻȡԪ +- ԏֱӻȡ + + +``` +if(object!=null){ + String name = object.getName(); +} +``` + +#### 2.1.2 ?̳ʹע + +- ʹ Executors.newFixedThreadPool?ܻOOM?Ϊʹõ޽ +- ʹԶ?̳?ø?̳һ?Ų +- ͬҵ??̳ظ?еҵһ?̳ء +- ?̳쳣ҪǺ + +#### 2.1.3 ?԰ȫļϡ + +ڸ߲?```HashMap```ܻѭΪǷ?԰ȫ?Կʹ```ConcurrentHashMap```ʹЩϵʱ?ҪעDz?԰ȫġ + +- HashmapArraylistLinkedListTreeMapȶ?Բȫ? +- VectorHashtableConcurrentHashMapȶ?԰ȫ + +#### 2.1.4 ڸʽ?ȵ + +ճ?Ҫڸʽ??ΪYYYYдʱ?пӵŶ + + +``` +Calendar calendar = Calendar.getInstance(); +calendar.set(2019, Calendar.DECEMBER, 31); + +Date testDate = calendar.getTime(); + +SimpleDateFormat dtf = new SimpleDateFormat("YYYY-MM-dd"); +System.out.println("2019-12-31 ת YYYY-MM-dd ʽ " + dtf.format(testDate)); +``` +н? + +``` +2019-12-31 ת YYYY-MM-dd ʽ 2020-12-31 +``` + +нҲȽϳ?Ҫע⾫? + + +``` +public class DoubleTest { + public static void main(String[] args) { + System.out.println(0.1+0.2); + System.out.println(1.0-0.8); + System.out.println(4.015*100); + System.out.println(123.3/100); + + double amount1 = 3.15; + double amount2 = 2.10; + if (amount1 - amount2 == 1.05){ + System.out.println("OK"); + } + } +} + +``` +н? + + +``` +0.30000000000000004 +0.19999999999999996 +401.49999999999994 +1.2329999999999999 +``` + + + +#### 2.1.5 ļ + + +ȡļʱ?Ҫ```Files.readAllBytes```ֱӶڴ?OOM?ʹ```BufferedReader ```һһ?ʹ```NIO``` + + +#### 2.1.6 ʹIOԴ?Ҫر + + +ʹtry-with-resource?дļ?Ҫر + +``` +/* + * עں?ݵСк + */ +try (FileInputStream inputStream = new FileInputStream(new File("jay.txt")) { + // use resources +} catch (FileNotFoundException e) { + log.error(e); +} catch (IOException e) { + log.error(e); +} +``` + + +#### 2.1.7 try...catch쳣ʹõһЩ + +- Ҫʹe.printStackTrace()ӡ?ַܵڴռռ +- catch쳣?ʹlogӡ +- ҪһException׽пܵ쳣 +- ҪѲ쳣ҵ߼ + + +#### 2.1.8 Ȳѯ?ٸ/ɾIJһ + + +ճ?ִʵɼ?ȲѯǷʣõƱ?ȥƱ + + +``` +if(selectIsAvailable(ticketId){ + 1deleteTicketById(ticketId) + 2Ӳ +}else{ + return ^ûпÏȯ ? +} +``` + +Dzִ?ܿ?Ӧݿ/ɾԭ?? + +``` +if(deleteAvailableTicketById(ticketId) == 1){ + 1Ӳ +}else{ + return ^ûпÏȯ ? +} +``` + + +### 2.2 ṩӿ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/818d79dfadab43e5a2bddf26a3ea2870~tplv-k3u1fbpfcp-zoom-1.image) + + +#### 2.2.1 УϷ + +ṩĽӿ?ṩͻˡǰ?ֻDZϵͳ?ҪУһεĺϷԡ + +> ݿֶΪvarchar(16),Էһ32λַ?㲻У?ݿֱ쳣ˡ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4f4649f1bb3b43418ef808b8c5599c76~tplv-k3u1fbpfcp-watermark.image) + +#### 2.2.2 Ͻӿڼ + +ܶbugΪ޸˶Ͻӿ?ȴݵµġؼDZȽص?ֱӵϵͳʧܵġֳԱ׷Ŷ~ + +иdubboķֲʽӿ?޸?ҪϽӿڼݡԭֻA?B?һC?ͿԿ + + +``` +//Ͻӿ +void oldService(A,B){ + //½ӿ?nullC + newService(A,B,null); +} + +//½ӿ?ʱɾϽӿ?Ҫݡ +void newService(A,B,C); +``` + + + +#### 2.2.3 ?ֹѹϵͳ + +˲Ĵ?ѹϵͳΪ˱ǵϵͳ?һҪʹ**guava ratelimiter** ?Ҳð↑Դ**Sentinel** + +#### 2.2.4 ӿڰȫ?ǩǩ?Ȩ + + +ת˵͵Ľӿ?һҪעⰲȫԡһҪȨ?**ǩǩ**?Ϊûױݻ + + +#### 2.2.5 ǽӿݵ + +ӿҪݵԵ?תЩҪӿڡֱ۵ҵ񳡾?**ûŵ**?Ľӿûholdס + +> 1. ݵ?idempotentidempotence?һѧѧ?ڳ鏻ҴС +> 2. ڱ.һݵȲصִӰһִеӰͬݵȺ?ݵȷ?ָʹÏͬظִ?ܻÏͬĺ + + +һ㡸ݵȼ⼸: + +1. ѯ +2. Ψһ +3. token?ֹظύ +4. ݿdeleteɾ +5. ֹ +6. +7. Rediszookeeper ֲʽ?ǰ?Redisֲʽ? +8. ״̬ݵ + +![ӿݵ.gif](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/55e09e293249431a85d68f8b217d9a8d~tplv-k3u1fbpfcp-watermark.image) + +### 2.3 õӿ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/41e0a0d34083431ca0d44f3354dca2f5~tplv-k3u1fbpfcp-zoom-1.image) + +#### 2.3.1 ʱ + +ǵñ˵Ľӿ?ʱô? + +> ٸ?ǵһԶת˽ӿ?AͻBͻת100?ɹʱͰѱתˮΪɹ?ʧܵʱͰѱˮΪʧܡתϵͳʱ?ô?Ϊɹʧ?**ʱҪǺ**?ҪȻʽʧˡֳ?ӿڳʱ?ǾͿ**±תˮ**״̬?·ѯԶת?ѯת˳ɹļ¼?ٸ±״̬״̬ + + + +#### 2.3.2 Ի + +ǵһԶhttpdubboӿ?ʧ?ǿԿԻơʱ·һ?ӿھ͵ʧ?Իƿû顣ԻҪ?Щӿڲ֧ݵ?ͲʺԵġ + +#### 2.3.3 Ƿ񽵼 + + +ϵͳһṩעķ?ûעɹ֮?ԶAӿڷ?ԶBӿڷʼ?ע״̬Ϊɹ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d2a2180e624d4f8fadcf8fc8f63651bf~tplv-k3u1fbpfcp-zoom-1.image) + + +ýӿBʼʧ?ûעʧ?ҵܾͲͬˡʱǿԿǸBӿ****?ṩ****Ҳ˵?Bӿʧ?Ȳʼ?ûעɹ?ʱʼͺ + +#### 2.3.4 Ƿ첽 + +һʹϸСڵ**ûע**ӡǿԿ첽?ȥAӿڷ?첽Bӿڷʼ?ǼʹABӿڵʧ?ǻǿԱ֤ûעɹ + +ѷЩ֪ͨӿ?ŵ첽?̴?Խͽӿںʱ?ûŶ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/07eef178cfe04048ade9fbed2f465d12~tplv-k3u1fbpfcp-zoom-1.image) + + + +#### 2.3.5 ӿ쳣 + +ǵһԶ̽ӿ?һҪ˼?˽ӿ쳣?Ҫô?ô?Իǵʧ?ô֤ݵһԵȵȡ + + +## 3. ƪ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f84d96671e8e451d936e110a53bf9cf6~tplv-k3u1fbpfcp-zoom-1.image) + +### 3.1 ݿ뻺һ + +ʹû?Խͺʱ?ṩϵͳܡ?ʹû?һԵ⡣ + +#### 3.1.1 ֻʹģʽ + +- Cache-Aside Pattern?·ģʽ +- Read-Through/Write-Through?д͸? +- Write- behind ?첽д? + +һʹû?**·ģʽ**?: + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/38f7efc4d066409dbf65a56eb10eb90e~tplv-k3u1fbpfcp-zoom-1.image) + + +- ʱ?ȶ?еĻ?ֱӷ +- ûеĻ?ȥݿ?ݿȡ?뻺?ͬʱ؏Ӧ + +·ģʽд? +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c80f0df22739439088d6a47ced7b6ae0~tplv-k3u1fbpfcp-zoom-1.image) + + +#### 3.1.2 ɾ?Ǹ»? + +ڲʱ?Ӧɾ滹Ǹ»?? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b0a52a30ec994ca7b66cf83fba5398a2~tplv-k3u1fbpfcp-zoom-1.image) + + +1. ?Aȷһд?һȸݿ +2. ?Bٷһд?ڶݿ +3. ԭ??Bȸ˻ +4. ?A»档 + +ʱ?汣A???ݿⱣB???ݲһ?ݳɾȡ»򲻻⡣ + + +#### 3.1.3 Ȳݿ⻹Ȳ + +˫д?Ȳݿ⻹Ȳ?һ?AB?A²?Bѯȡ + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/95b0b2cd05d34ff1b66a8aa0a768cc04~tplv-k3u1fbpfcp-watermark.image) + +1. ?Aһд?һdel cache +2. ʱ?Bһ?cache miss +3. ?BDB?һ +4. Ȼ?Bcache +5. ?AдDBµ + +Ͼ?ݿݲһˡ汣?ݿⱣݡ?Cache-Asideģʽ?ѡȲݿȲ档 + + +#### 3.1.4 α֤һ + +- ʱ˫ɾ +- ɾԻ +- ȡbiglog첽ɾ + + + +### 3.2 洩͸ + +> 洩͸?ָѯһһڵ?ڻ治ʱ?Ҫݿѯ?鲻д뻺?⽫ڵÿҪݿȥѯ?ݿѹ + +洩͸һ㶼⼸?**ҵ񲻺ơҵ/ά/ʧIJڿͷǷ󹥻** +α⻺洩͸? һַ + +- ǷǷ?API?**ԲУ**?˷Ƿֵ +- ѯݿΪ?ǿ**øֵ?Ĭֵ**дĻ?Ҫ»?Ա֤һ?ͬʱ?ʵĹʱ䡣?ҵϱȽϳ?Ч? +- ʹ**¡**жǷڡһѯʱ?ͨ¡жֵǷ?ڲż²顣 + +### 3.3 ѩ + +> ѩ?ָݴʱ?ѯ޴?ݿѹdown + +- ѩһڴͬʱɵ?ԭ?ͨ**ùʱ?ùʱ䏺ɢһ**һϴ̶ֵ+һСֵ?5Сʱ+01800뽴ϡ +- **Redis 崻Ҳ𻺴ѩ**ҪRedis߿üȺ + + +### 3.4 + +> ? ָȵkeyijʱڵʱ?ǡʱKeyдIJ?Ӷdb + +е㏻ʻѩ?ʵ?ѩָݿѹdown?ֻǴDBݿ档ΪǻѩһӼɡЩΪ?ڻijһȵkey?ѩǺܶkey + + +? + +1. **ʹû**ʧЧʱ?ȥdb?ʹijЩɹصԭӲ?(Redissetnx?ȥ?ɹʱ?ȥdbݿݺû档ȥԻȡ档 +2. **^ ?**?ָûùʱ?ȵݿҪʱ?첽?ȥºùʱ䡣 + + +### 3.5 Key + +Redis?ǰѷƵʸߵkey?Ϊȵkeyijһȵkey󵽷ʱ?ر?ܻᵼԴ?崻?ӶӰķ + +νkey? + +- **RedisȺ**?ӷƬ?? +- **keyhashɢ**?罫һkeyΪkey1,key2 ? ?keyN?ͬN?NݷֲͬƬ?ʱNеһ?һֵ? +- **ʹö**?JVMػ,RedisĶ + +### 3.6 ڴ濼 + +#### 3.6.1 ? + +ʹõRedis?RedisڴDZȽϰ?DzҪʲôݶRedis?һRedisֻѯȽƵݡͬʱ?ҪRedis?ҲƵset?˹ʱkeyʧЧ + +ʹõDZػ?guavaıػ?ҲҪ + + +#### 3.6.2 Redisİڴ̭ + +Ϊ˱Redisڴ治?Redis8ڴ̭ԱԼ~ + +> - volatile-lru?ڴ治дʱ?˹ʱkeyʹLRU?ʹ?㷨̭? +> - allkeys-lru?ڴ治дʱ?keyʹLRU?ʹ?㷨̭ +> - volatile-lfu?4.0汾?ڴ治дʱ?ڹڵkey?ʹLFU㷨ɾkey +> - allkeys-lfu?4.0汾?ڴ治дʱ?keyʹLFU㷨̭? +> - volatile-random?ڴ治дʱ?˹ʱkey?̭? +> - allkeys-random?ڴ治дʱ?key̭ݡ +> - volatile-ttl?ڴ治дʱ?˹ʱkey?ݹʱ̭?Խڵȱ̭? +> - noeviction?Ĭϲ?ڴ治дʱ?дᱨ + +#### 3.6.3 ͬҵ񳡾?Redisѡʺϵݽṹ + +- аʺzset +- ûϢһhash +- Ϣ?бlist +- ûǩ罻һset +- ֲʽһString + +### 3.7 RedisһЩпӵ + +1. ʹ keysָ +2. O(n)Ӷ?hgetall +3. Redismonitor +4. ֹʹflushallflushdb +5. עʹdel + +## + +ܽ60bugıע?ճķ?ϣԴа? +עں?**ݵСк**?ظ**˼άͼ**?**ȡĵĸ˼άͼ** + + diff --git "a/345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md.bak" "b/345267245344275234346200273347273223/350201212350201212346227245345270270345274200345217221344270255357274214345246202344275225345207217345260221bug345221242357274237.md.bak" new file mode 100644 index 0000000..e69de29 From 33784b8a311b182ef7ed2c7e3daf01f66be7de14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2021ǯ711 21:09:56 +0800 Subject: [PATCH 03/52] Add files via upload --- ...35025625615350277236351227256.md" | 395 ++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 "Java351235242350257225351242230351233206347273223345217267/350256241347256227346234272347275221347273234/TCP34521521735025625615350277236351227256.md" diff --git "a/Java351235242350257225351242230351233206347273223345217267/350256241347256227346234272347275221347273234/TCP34521521735025625615350277236351227256.md" "b/Java351235242350257225351242230351233206347273223345217267/350256241347256227346234272347275221347273234/TCP34521521735025625615350277236351227256.md" new file mode 100644 index 0000000..eae7eec --- /dev/null +++ "b/Java351235242350257225351242230351233206347273223345217267/350256241347256227346234272347275221347273234/TCP34521521735025625615350277236351227256.md" @@ -0,0 +1,395 @@ +### ???? + +TCP??讏???????????????????????????15??????常??????TCP??????????大叱??????????offer??? + + +![](https://files.mdnice.com/user/3535/47429a24-7e0b-4bf6-8200-7e2ec1baad63.png) + + +- ???????**?????????9** + +### 1. 讲??TCP?次揱???? + +![](https://files.mdnice.com/user/3535/43f4b02a-ad18-45e5-8d6e-52349cc371d6.png) + +??客????????????????CLOSED??????????????????????????????????LISTEN???? + +- 笥??次揱??(SYN=1, seq=x)?????????????客?????? SYN_SEND ???? +- 笥??次揱??(SYN=1, ACK=1, seq=y, ACKnum=x+1)? ???????????????????????? SYN_RCVD ??????? +- 笥??次揱??(ACK=1?ACKnum=y+1)?????????????客?????? ESTABLISHED ??????????????????????????,????? ESTABLISHED ?????TCP ??????˻??????????? + +### 2.TCP???为???????\??????ٸ\?????????\?? + +TCP???为???????次????为????便???o?????以??????为???两个人?走????起????????????????就?????就??**????????并????????????????**???????以此?模????次揱???????? + + +![](https://files.mdnice.com/user/3535/374acab7-d609-4c7b-9db6-6a40dbe42926.png) + + +**为??????????ٸ次????** + +???????两?????女9???就??????她????e??**????????**???9??????**????**???????系就???????????? + +**为?????????????次????** + +???为揱?????????次???????为??次已经????次已???菰?????????????????????????????????次就?????? + +### 3. 讲??TCP???次????? + +![](https://files.mdnice.com/user/3535/439e735c-c443-4b2f-96b1-b750004d8d05.png) + +1. 笥??次???(FIN=1?seq=u)?????????????客??????FIN_WAIT_1 ???? +2. 笥??次???(ACK=1?ack=u+1,seq =v)?????????????????????????CLOSE_WAIT ?????客?????????`认??????????? FIN_WAIT_2 ???? +3. 笥??次???(FIN=1?ACK1,seq=w,ack=u+1)?????????????????????????LAST_ACK ??????????????????????????ACK??? +4. 笥??次???(ACK=1?seq=u+1,ack=w+1)?客????????????????????????????????`认???并????? TIME_WAIT?????**???????????????两个???大揱???????????2MSL?2 Maximum Segment Lifetime?????**?没??????????????? ACK ?认为????????已?e???????????????????????? CLOSED ??????????????????????`认?????????????????? CLOSED ??????? + +### 4. TCP????为??????????次???? + +举个?????! + +> ???????小红?????????夏??????巏????????????小红???????没???说??????????????????????????????????????????????????说????小红????????????????????????奏???????????????????????叽10??????????????????说?????说???????小红???????????????????????????????? + +![](https://files.mdnice.com/user/3535/966cef0c-1477-4eca-aadf-059219da0198.png) + +### 5. TIME-WAIT ????为????????? 2MSL + +![](https://files.mdnice.com/user/3535/f56000c8-da62-4370-9559-71bf312f6214.png) + +2MSL?2 Maximum Segment Lifetime???两???大揱?????????? + +> - 1? MSL ?????次???TEL??????????????? ACK ???????????达对? +> - 1? MSL ??对?没?????? ACK ??d??????????? FIN ??????????达 + +### 6.TCP ??? UDP ??????? + +1. TCP????????????????????????建????;UDP??????????????????????????????建??????? +2. TCP??????????????????????????\??????TCP???????????????丢失?????????????????????????UDP尽??大????交?????????????交????? +3. TCP???叶?????????UDP?对????对????对????˻ +4. TCP??????????叶??,???UDP??????????????????对????????????????????????信??广???<?? +5. TCP???????????页????黶?;UDP?????????????诱?广???? +6. TCP??????????UDP???????? + +### 7. TCP????????????????段??说???????? + + +![](https://files.mdnice.com/user/3535/f9f25411-09d7-4441-bf64-3f0881c4fc01.png) + +- **16?????**??????主?菵????段??????????????????????渪????讏????????? +- **32?????**???TCP???\???TCP??建?????????????丏???????????????????每????????????? +- **32?硶Џ???**?????对另????????????tcp????段?????????????????TCP????段???????1??? +- **4?头???度**??tcp头????????32bit??4????????????4????大????15?????TCP头?????????60??????? +- **6??????**?URG(紧????????????????)?ACk??硶Џ????????????PSH?????????? ?\???RST????对?????建?????SYN?建?????????????FIN???????叶????????????? +- **16?????**????TCP?????????????段??????说???????????????ݡ????????????????对??????TCP????????????叱纳??????????????????叶??就?˻??????????????????? +- **16????????**????????? ??????????TCP????段???CRC??以???TCP????段????????????????????????????????????TCP头????????????????????????TCP????????????????????? +- **16?紧??????**???3?????移?????????????段??????????????????????????????????????此?????????????段?ⴧ?????????叶??????????移?????为紧???移??TCP???紧???????????????????????????紧???????????? + +### 8. TCP ???????????????? + + +![](https://files.mdnice.com/user/3535/fce5ee83-8664-4f82-a453-fe25bc35dd88.png) + + +- ?????TCP???????????**?次揱??**??????????????**???次???**???硏?????????????????????? +- ????TCP?????????????????**???????**;TCP?记????????????????????????Т??????????没????????并????????????????达????????????差?????? +- ???\??TCP?????????????????**?ϥ???**??????????????????ACK?????**??????(?????????)**???失??????????????????丢??????????????????????????????????????????????? + +### 9. TCP ???????? + +#### ?????? +TCP 为????????????????????????????????????????就??**??????**?????????????????????设?????????????????段????没?????叶????ACK硶Џ???????就????????该?????? + +?????????????罏鸺??????????以????????????**RTT?Round-Trip Time????????**??? + +![](https://files.mdnice.com/user/3535/05b6c061-2515-4367-aa58-0526db10f6b6.png) + +RTT就????????????????奵????????????????**??????????次???????**??????????????就??Retransmission Timeout ???**RTO**??? + +**RTO设置???????** +- ????RTO??????e???????没???丢失?就?????????导??????????导???????????硼??? +- ????RTO??大????????谢????ݲ????????????f?????就??好????? + +??????????RTO??大?RTT???????????好???????小?伴?????????????没??计???????????????????????????????RTO????????????**Jacobson / Karels ??**??????以??起????计??RTO??????? + +**1. ???计??SRTT?计??平?????RTT?** + +``` +SRTT = (1 - α) * SRTT + α * RTT //? SRTT ?????????平?? +``` + +**2. ???计??RTTVAR (round-trip time variation)** + + +``` +RTTVAR = (1 - β) * RTTVAR + β * (|RTT - SRTT|) //计?? SRTT ?????????巶?? +``` + +**3. ???????RTO** + +``` +RTO = µ * SRTT + ??? * RTTVAR = SRTT + 4·RTTVAR +``` + +??中?```α = 0.125?β = 0.25? μ = 1???? = 4```????????????????????????????????? + +?????????????????缺??? +> - ??????段丢失????????????????????????????????????????????????延??? +> - ??????段丢失??????????????????举????????硼????????????????????段已经???????????????????`认????????竏??认为?丢失???????起??????????????浪费?????????? + +并???TCP??????????就??????????????????????????????**????????**??????此????˻使??**???????**????? + +#### ??????? + +**???????**???????以??o?????????ٻ???o??????????????????????信?????????????? + +?起?????????????? + +![?????????](https://files.mdnice.com/user/3535/2c172057-bb6c-40e1-8d64-b6a15818f596.png) + +????????????? 1?2?3?4?5,6 份???: + +- 笥??? Seq=1 ??????????????? Ack ??? 2? +- 笥??? Seq=2 ????????????设??e?????ACK ??? 3? +- 笥??? Seq=3 ??????????????????没?????? +- 笥??? Seq=4 ????????????????Seq3没????????ACK???3? +- ??????? Seq=4,5????????????????ACK???????3?????Seq=3没???? +- ??????竏??????????????????ACK=3???硶Џ?????????4???????????????3常??ACK?????????????????????????便?????渪????段??????TEL失????????????????????????????该???段?? +- ??????????????? Seq3?此???? Seq=4?5?6???????????ACK???7. + +?**???????**?????????????ACK????????????????大??????????段??????????渪????丢失??????**并?????**???e???该????????????? +> ????? Seq3 ??????????? Seq3???Seq4???Seq5???Seq6 ????????为??????????????绲?? ACK3 ??????????????? + +#### ?????`认???????SACK? + +为??e?快???????????????**?该????????**? TCP?????**SACK????**??????`认???????Selective Acknowledgment???? + +**SACK????**就???????????????????????????????????????????段????????????????????????????????????????没??????紫就????该??????????????????SACK???记???????TCP头??**????**?段????????? + +![SACK????](https://files.mdnice.com/user/3535/9475e768-9d4d-46dd-97a5-ec2298c433bd.png) + +????中???????竏?????次??????ACK=30???硶Џ???????????????????????????????SACK信????????```30~39```?段??鸢失????????????就?????????```30~39```???TCP????段???????????? + +#### D-SACK + + D-SACK????Duplicate SACK?????SACK?????SACK????????????????????主????????????????????????????????????????????????DSACK?????????????????????????????????????失?????ACK丢失?????????????????????TCP?˻??好?????????????????????? + +![D-SACK????](https://files.mdnice.com/user/3535/d3647f5d-ce7c-4998-953a-04e8c8a9e71c.png) + +### 10. ??????TCP???????????? + +TCP ???????????????????`认???????????????????????????????就????????????? +> ?就好??????以?叶????夏???说????????????????????说????????d???????????????????????没???????????????????说?????????????????????????说????????????????? + +为??e????????TCP?????**????**???????系????????????空?????????;示???????硶Џ???????˻继续??????????????大??? + +TCP头????????段??win?????d**16????????**??????对??????TCP????????????叱纳??????????????????叶??就?˻???????????????????????达??**????????**?????????? +> ??????菰?就?ݡ??????次?????????????????硶Џ???????????????????????????????????????????????空??空?????????空??空??????以称??为桦???????????就??win??? + +TCP ??????????为两?: ???????????????????**??????竏???????????**?????????大????????? +- 已??????已???ACK硶Џ +- 已????????????ACK硶Џ +- ??????????˻?????? +- ???????????˻?????? + +![](https://files.mdnice.com/user/3535/8f7d9784-f6e6-47d8-82bb-deb398431025.png) + +- ???线???就??????????? +- SND.WND: ????????????大??,?????线???????????就???14丏?? +- SND.UNA: ????对?????????????????????????????`认??笥?????????????????? +- SND.NXT?????????????罏???????????????????˻?????????笥?????????????????? + +?????????????????????大????????? +- 已????????并硶Џ +- ??????????˻???? +- ??????????˻????????? + +![](https://files.mdnice.com/user/3535/40b906fe-aa60-42f3-b7bf-b4fcaa9a0588.png) + +- ???线???就?ݡ??????? +- REV.WND: ??????????大??,?????线?????????就??9丏?? +- REV.NXT:????????罏?????????????????˻?????笥?????????????????? + +### 11. ??????TCP??????????? + +TCP?次揱?????????????????????ESTABLISHED??????以?˻????????????????? + +?????????竏?????????????????????????????为桦???????????????????只?????????????????????????????????????????满???????????????????????????????????只??????????????丢????就浪费??????????? + +> TCP ?????????˻讏?????竏????????????????????????????????????就??**????????**??? + +TCP????????????楡???????????以????????????**????**???? + +???????????次揱??????????????????????????? 400 ????????? + + +![TCP???????????](https://files.mdnice.com/user/3535/e233b594-72b5-4f9a-bc9c-23bb5c065bfe.png) + +1. ????????????????????????????200?????????d?????????????```SND.NXT```??移200????????就???????????????????200 ????????? +2. ???????????????????????????????REV.WND =400-200=200?????????win=200???????????????????????????? ACK ??????????????缏?????????????????200???? +3. ????????????????200?????????200??????达?继续???????????????????????????大??载?????????????????????????????????????100????????????100????继续?????????????????????REV.WND = 400-200-100=100????????win=100?????????????? +4. ????????继绾干活????????100???????????????????????win????0??? +5. ??????????止????????????????任??\???????段????就奵询????????????win大??0????继续??????????? + +### 12. TCP??????????? + +?????????**?????????????2??????????????????举????????硼???载??大????????**???????????主??????大????????????????路?????????**????????**????????????????????????????????????????????**?????????????????????????????**???2????丢失?????? + +???以˻???????路????????水\?????????以???大?????????????????????e????水?达????佳??满?????? + +![](https://files.mdnice.com/user/3535/f4b5b102-75db-47cc-8c1a-83fa01941dcc.png) + +????????维?????**????????cwnd?congestion window?** ???????????????估?????段????????路?水?\???˻??载?????????????水?????????????大?h;????????????????并???????????????????????ٸ?达???大??????????????以?????????水管??????????????????????? + +????????????????就???????????????水??????水管快?????为2?对????????就???????丢??????? TCP ?????述就???? +> ?????没?????硼????????????????就?˻????大????以便????????????????????????奵?????????硼????????????????就?该?小???以?????????串???????????? + +?????????????主?????????常????? +- ?????? +- ???????? +- ?????????? +- ??????? + +#### ????????? + +?????????????????就???????????????TCP建???????????????????????大?????????????????????????????????????????大?????????????????大???????没????硼丢???**???????ACK?就??????????cwnd大?就??1????????MSS?**???**每轏?**???????????????????????????????????????硼丢?????????????????????????????揱??? + +- TCP??????????????cwnd = 1??????˻???MSS????大?????????? +- 每???????ACK?cwnd就???; +- 每?????RTT?cwnd就?????????; ????????菰??? + +![](https://files.mdnice.com/user/3535/c9edd5d1-0302-45b7-bee7-22d1e505b085.png) + +为????2cwnd?????大??起????????????设置??**???????????ssthresh**?slow start threshold???????????????```cwnd```??达该???????就好??水?被????水??头????????????????????????**cwnd>ssthresh**?????????**????????**????? + + +#### ?????????? + +?????????????????ssthresh???65535?????```cwnd```??达**???????????**??? +- ???????ACK????cwnd = cwnd + 1/cwnd +- ?每???RTT????cwnd = cwnd + 1 + +?????????????????????????????导??????????????? + +![](https://files.mdnice.com/user/3535/600ed914-5f98-4c01-9f1d-d7dcc12244b8.png) + +#### ?????????? + +?????????????**丢??**????????两????????? + +- RTO?????? +- ??????? + +?????????????**RTO??????**?就??使?????????????? + +- ???????????sshthresh = cwnd /2 +- cwnd ???罏鸺 1 +- ??????????????? + + +![](https://files.mdnice.com/user/3535/9e54bfb4-ed83-42a9-aeb0-f98b44563067.png) + +??????????**????????????年???????????解????**?????????????好????????????就??**???????**??????????????3???绱??????ACK????就???????????????**RTO????**?????????? + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e5f5ca98465c40b0936ed83aba2ffc15~tplv-k3u1fbpfcp-watermark.image) + +???????????ssthresh ??? cwnd ????????? + +- ???????? cwnd = cwnd/2 +- ??????????? ssthresh = cwnd +- ???快????????? + +#### ??????? + +??????????????????????????使???????????????认为?????3????ACK?????说?????没?d????????以没????????RTO????d??强????? + +e?????????说?????快????????????cwnd ??? sshthresh已被????? +``` +- cwnd = cwnd /2 +- sshthresh = cwnd +``` + +????????g?????????? + +- cwnd = sshthresh + 3 +- ?????????????e???ACK???丢失????e????????? +- ???????????????? ACK???d?? cwnd = cwnd +1 +- ???????????? ACK ???, cwnd = sshthresh??????为??????? ACK???????????已???????˻???次??????????????????????? + +![](https://files.mdnice.com/user/3535/1cb2de35-db67-4efa-8b64-1ea00d57c116.png) + +### 13. ?????????????? SYN Flood ???????系 + +TCP?????次揱??????????????**CLOSED**????????**LISTEN**????,????????????????建??两个???????????????????SYN???????????????????????ACCEPT?????????? + +?????**????????????SYN???????** ???? ?????**?????????????ACCEPT???????** ??????????TCP?次揱????????? + +![?次揱??](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/67e2444df1934f549e7509fb5ce4b561~tplv-k3u1fbpfcp-watermark.image) + +- TCP?次揱??????客????????SYN???????????????????????便???**ACK???SYN**????????**LISTEN????SYN_RCVD**?此???????就被?????**SYN??????**???????????????? +- ?客??????ACK, ?????????????次揱??就?????????????????????????????????走????????走????????????ACCEPT??????????????????????? + +SYN Flood????????????DoS (Denial of Service???????????) ??????????????????**???????IP????**,??????????大??????SYN???????????????????SYN+ACK??????????????ACK?????????导????????建??大?????????????????????>????就???????e???TCP请??????? + +主????? **syn cookie**???**SYN Proxy?????**??????对?? + +- **syn cookie**????????SYN????????????????????????????以????????????????????信?ٸ?????????????cookie????为?????SYNACK?????????????????SYN+ACK???????????并????????????????????????????????ACK??????????????????????????????????该??串??硶Џ?????????3硏??????g`???建??????????丢??该????? + +- **SYN Proxy?????**?????????????对????每??SYN??????g??????????并????????????????????????ACK????????????????????????SYN???????????????建?????g??TCP????? + +### 14. Nagle ???延??硶Џ + +#### Nagle?? + +??????????竏?????????????????????????????1?????????d??亲???小?伴???以?????????????????? + +> TCP/IP??讏鸭????论??????????????????????????????????????????对?桦??????????????????ACK?硶Џ???为??尽????????????TCP?????????尽?????????足??大???????**Nagle??**就?ٸ?尽??????大?????????????举??????许???????????? + +Nagle???????????????**任???????????????????硶Џ???小?**??? ???????小段??????????????MSS尺叶????????????????????硶Џ???????????????????????奵????没?????叶??????????ACK硶Џ该???????? + +Nagle???????????? + +- ?????????度达??MSS???????许?????? +- ????该????????FIN???????许?????? +- 设置?TCP_NODELAY???项????????许?????? +- ????TCP_CORK???项???????????????奵????????????????度小?MSS?????`认????????许?????? +- ?述?>????足??????????????????200ms???????????????? + +#### 延??硶Џ + +???????????????????????????????????????????????????????????????????d??请???????丏???????好?????????并??起???好???? + +> ????????????????????????没????????????对????˻??段???硶Џ?Linux??认??40ms?????????段????好?????????对??ACK就????????????????????????????????ACK??????????????没?????????????????????ACK?????对?以为丢????? + +?????????????延?硶Џ????????**乱?????**???**??????大???? frame ?????????????????????**???? + +??????????**Nagle?????延??硶Џ**?????起使????Nagle?????????延??????**延??硶Џ**???????延?????????紫就??????????大???延????产??????????? + +### 15. TCP???????????????? + +TCP???????没????????????串????TCP??并???d??????????????????????????TCP??????????????????????????????????以?????>??认为??**???????????????TCP?????????????????????**?**????????????????????????????????????????**??就???????TCP???????????????????? + +![TCP????????????????](https://files.mdnice.com/user/3535/cf617d8f-70c3-4687-bb20-1bc3518bed11.png) + + +**为????产???????????????????** + +- ????????????????TCP????????????大???TCP??次????????????????次???????奵?????????????? +- ??????????????没???????菶???????????中???????????????????? +- ???????????????TCP?????????????空?大????????????????? +- ????????????MSS????大?????度??TCP???????????????????????TCP??????度-TCP头???度>MSS??? + +**e?????** + +- ?????????每????????为?????度 +- ????????????????????????????? +- ???????为两?????????????????????????????????容?????中头???????大???????????????段0??????容?????大????? + +### ??????????? +- [TCP ?????d?????????](https://coolshell.cn/articles/11609.html "TCP ?????d?????????") +- [????头?>???????????? TCP ????????????](https://zhuanlan.zhihu.com/p/76023663 "????头?>???????????? TCP ????????????") +- [30???解? TCP ?????????????????????????????????????](https://zhuanlan.zhihu.com/p/133307545 "30???解? TCP ?????????????????????????????????????") +- [TCP??讏????????巏???????????????](https://juejin.cn/post/6844904070889603085 "TCP??讏????????巏???????????????") +- [TCP?????????????](https://blog.csdn.net/ailunlee/article/details/95944377 "TCP?????????????") +- ??度???? + + + From 726441dc408342ae76d78f1d738457a75094e410 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2021ǯ711 21:24:19 +0800 Subject: [PATCH 04/52] =?UTF-8?q?Redis=E5=BF=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...10350277231344271210345277253.md" | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 "Java351235242350257225351242230351233206347273223345217267/347274223345255230,Redis/Redis344270272344273200344271210350277231344271210345277253.md" diff --git "a/Java351235242350257225351242230351233206347273223345217267/347274223345255230,Redis/Redis344270272344273200344271210350277231344271210345277253.md" "b/Java351235242350257225351242230351233206347273223345217267/347274223345255230,Redis/Redis344270272344273200344271210350277231344271210345277253.md" new file mode 100644 index 0000000..a3f6b30 --- /dev/null +++ "b/Java351235242350257225351242230351233206347273223345217267/347274223345255230,Redis/Redis344270272344273200344271210350277231344271210345277253.md" @@ -0,0 +1,175 @@ + +## ???? + +大叱好????????????????9??????以????Redis?????QPS?Ծ10??每?请?????????**Redis为?????????**,??????大叱?起6???? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3880491879ed4a228d8f4213d987f6a3~tplv-k3u1fbpfcp-zoom-1.image) + + +- ???????**?????????9** +- [github????](https://github.com/whx123/JavaHome)????谢???star + +## ?????????? + +???以????????读??????????读???????????Redis????????????????????????????叶?????????????????????????就???????????I/O??????????MySQL????????????????建??索?????????菵??????????Redis?????????????????桦????????????以就???? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d7be13173814a43a60960fe59a48c61~tplv-k3u1fbpfcp-zoom-1.image) + +## ??????????????? + +???以????MySQL索??为????????????????????B+???????????????????????????????????????就??˻讏?????????/????快??????????Redis???????????&??????????????? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4ddd7723cc0e4953b746b13db7a5cea3~tplv-k3u1fbpfcp-zoom-1.image) + + +### SDS???????????? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0e68a18c50f149dda136fc9b1aa73ab8~tplv-k3u1fbpfcp-zoom-1.image) + +``` +struct sdshdr { //SDS???????????? + int len; //记??buf举已使????空?? + int free; // buf串??珪???度 + char buf[]; //?????????????? +} +``` + + +#### ????度???? + +???C诺??举???????```?????????9```??????????度??????头???????????????O?n?; +???Redis举?? 已???????**len**?段菰????????????度???????桦?????????????????O(1)??? + +#### ????????????????????次?? + +???C诺??举??俏???????????????????????????俏????????????????就??????????????????????**????????**????????????Redis举??SDS?????两???????????空???????????????珪???????? + +**空?????????** + +?SDS????????????俏???空?????????????????????????????空???????????????潿?????空????????????????紫???? + +> - SDS俏????len?????度小?1M???d????????????len??????度?????潿?????????len=100???????????????buf ?????????度?????100(已使??????)+100(??空??)+1(空???)=201??? +> - SDS俏???, len??度大??1M???d???序???????1M?????潿??????? + +**???珪???????** + +?SDS缏??????????????????????空??????????free记????????空??????绾?????俏???????桦使??free串??空??????????????????? + +#### ???? + +Redis ?为???K-V???????????????使???????????????????????????????????叶?????????衏??????????桶??????????桶中???entry???????```*key```???```*value```?????????中```*key```??????????????????```*value```?????????????????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13924387cd9e4a2d96d873dba1cc3ca9~tplv-k3u1fbpfcp-zoom-1.image) + +???????????????????????类似??Java串??**HashMap**??讏??以??**O(1)** ?????????????????????叶???????????key计?????????????叶????????桶??罏???????????entry????entry???叶????????? + +????小?伴????????????????????举????大????????????????????**????????**??????????f?????就???????????? +> **?????????** ???????????key?计??????????????????导????????????桶中??? + +Redis为??e????????????????**????????**???????????????????????桶中????????????;???????以??????次????????????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/131951cd80354c24b62584d71b8fe9f9~tplv-k3u1fbpfcp-zoom-1.image) + +????小?伴??????????????????????????????????????????????????????????????????????????????????????????????;就?????????f?菵??????就?????????? + +为???????????Redis ?对???????**rehash????**??就???????????桶????????????为??rehash????????Redis??认使????两个????????衏???????????使???称为主???衏??????????称为???????????? + +#### 跳??? + +跳??????Redis?????????????????????就????**??;??????????????级索?**?以??????????????跳????????????????????: + +![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0b62d59ffbd945e18f6dfcbf650a6eed~tplv-k3u1fbpfcp-watermark.image) + +- 每?????????????????;???????????;???????????????????????? +- 跳???????平?? O?logN?,?????? O?N???????????????????˻????顺????????????????????? + + +#### ???缏???ziplist + +???缏???ziplist??????????????????????????????????系????????????????????????????????衏?? ??ziplist?˻????????entry? 每?entry?˻?????度???????????????????????????? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4ce3da7cddbe4e6e94a775151664ed93~tplv-k3u1fbpfcp-zoom-1.image) + +- zlbytes ?记????个???缏?????????????????????? +- zltail: 尾?????起??????????移?? +- zllen : 记????个???缏??????????????????? +- entryX: ???缏???????????????????? +- zlend : ???????0xFF(???????255)????????记??缏??????? + +???????????**?绾?????**???????以????????????????? + + +## ????????????????? + +Redis????????????????每???????对??????????????????每?????????对???????????????为???????????Redis设?????????????????????????????????????????? + +Redis??ٽ???对象?redisObject???;示?????串????????????以?? Redis 举??建??????叶???????????建两?\????象??????????叶??????\??????????叶?????叶<?? +``` +//??注????????????????9 +typedef struct redisObject{ + //类?? + unsigned type:4; + //???? + unsigned encoding:4; + //????????????????????????? + void *ptr; + //... + }robj; +``` + +redisObject举??**type** 对????????象类??????????String对象???List对象???Hash对象???Set对象???zset对象???**encoding** 对??????????????? + +- String??????????????????????int类?????????;???????????????小???39?????????????embstr?大??39?????????????raw??????? +- List???????????????????512???????每????????????64??????认???使??ziplist??????????使??linkedlist???? +- Hash?????类??????????512?????????????64?????????使??ziplist????,?????使??hashtable??????? +- Set???????????串?????????????????????512???使??intset??????????使??hashtable??????? +- Zset???????????????????????128???每???????????64????????使??ziplist??????????使??skiplist?跳??衏?????? + +## ?????????线??模?? + + +### ???线??模??????????????????? + +Redis?????线??????????????**Redis?????IO???????叶读??**?????????????????????Redis???????????????????????????步?????????群?????步?????????????????线???????????? + +Redis??????线??模????????**CPU?????????????????**???**????????????**????e??为????线????????????令??????????hgetall??令????????????????Redis???????????????????????????????以?????????lrange???smembers???hgetall???令??? + +?????**???????????**?举个??? + +> - ??????????????小说???????????页???????????????读???????丏湦签??????????????????????????????????X??i??继续??读???????就??????????? +> - ??????丏溺读??????????没????????????????????????????????????小?伴翻?????????????????????????????????????????????????????????d??页??????????????????d??页?? +> - ??????丏溺?????????????????签?没?????ٺ??翻?翻????????????记就?乱??????????????????????????该?????????? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/053215e73f844b8da8c2880205947fc1~tplv-k3u1fbpfcp-zoom-1.image) + +### I/O ??????? + +?????I/O???????? +- I/O ??? I/O +- ?? ???????? +- ?????????????????? +- IO???????????就????????IO模???????????˻????????件叹????????????件叹??就绪?就???????????????序?????????读??????????没?????件叹??就绪???,就??????????????交??cpu??? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/07838d0a48ef4b38acccb7b52e5435e1~tplv-k3u1fbpfcp-zoom-1.image) + + +> ??I/O??????????˻讏????????????????????请??????Redis使????epoll??I/O???????????????????并??Redis???????件?????模???epoll串???????读?????????转??为?件?????????I/O???????????? + +## ?????????????? + +Redis??桦??????建??VM???? ??????????系???????????????????????????奵移?????请????? + +**Redis???????????????????????** +> ?????????????就?????????经常菱????????(?????)?????交???????举???????????贵??????空????????????访???????(?????)???????VM?????˻??????????离??使????????????KK??????????????????????就?˻???????为????足????????访??????????????????? + +### ??????????? + +- [Redis?VM????](https://www.codenong.com/cs106843764/) +- [???????????线?????Redis为???????](https://zhuanlan.zhihu.com/p/57089960) +- [??|Redis?????线???????Redis为????????](https://zhuanlan.zhihu.com/p/42272979) + + From 1b8d1314deb883bc8dcf1ba547334a82d9f0e5e7 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2021ǯ711 21:26:23 +0800 Subject: [PATCH 05/52] =?UTF-8?q?Redis=E5=BF=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order by350257246350247243.md" | 348 ++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 "Mysql345237272347241200345255246344271240/order by350257246350247243.md" diff --git "a/Mysql345237272347241200345255246344271240/order by350257246350247243.md" "b/Mysql345237272347241200345255246344271240/order by350257246350247243.md" new file mode 100644 index 0000000..3aeda16 --- /dev/null +++ "b/Mysql345237272347241200345255246344271240/order by350257246350247243.md" @@ -0,0 +1,348 @@ +## ???? + +??常????举?????以?常??使?????order by?亲???小?伴???????????order by ???工?????????????order by??????????跏????????????使??order by?????????????????????????????大叱?起?6??????order by~ + + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3b1eda4fbc6c458c9182545d93cb6f15~tplv-k3u1fbpfcp-watermark.image) + +- 徏鿡???????**?????????9** +- [github????????谢???star](https://github.com/whx123/JavaHome) +- ???????????襭?????????轥??????????谢??? + + +## ?丏潿???order by ????????? + +???设???????工;?????????? + +``` +CREATE TABLE `staff` ( +`id` BIGINT ( 11 ) AUTO_INCREMENT COMMENT '主??id', +`id_card` VARCHAR ( 20 ) NOT NULL COMMENT '?????', +`name` VARCHAR ( 64 ) NOT NULL COMMENT '????', +`age` INT ( 4 ) NOT NULL COMMENT '年??', +`city` VARCHAR ( 64 ) NOT NULL COMMENT '????', +PRIMARY KEY ( `id`), +INDEX idx_city ( `city` ) +) ENGINE = INNODB COMMENT '???工;'; + +``` + +????????? + + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/aadfe321a1b74141a418f4a4c2f75e82~tplv-k3u1fbpfcp-watermark.image) + +???以??????????????**??菵???10???????????工?????????年??????????并???????年????大????**???对????? SQL 课叹?˻?????? + +``` +select name,age,city from staff where city = '深??' order by age limit 10; +``` + +???菵????????????????????**????????**????????????? + +## order by 工???????? + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/582926f8d02e44d4b94e23a3fafc0ec8~tplv-k3u1fbpfcp-watermark.image) + +### explain ????计?? + +???以?????**Explain**????????????????计?? + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2da79360c7204f5d8fada7f8ec2d21ba~tplv-k3u1fbpfcp-watermark.image) + +- ????计?????**key**????段???使????索?idx_city +- Extra ????段?? **Using index condition** ?索????> +- Extra ????段?? **Using filesort**????????? + +???以˻?????????SQL使??????索???并????????????????d??????**????????**???????? + +### ????段??? + +MySQL ??每??菵线?????????????**????**?????**????**????称为 **sort_buffer**?????????????段??????????????????????```idx_city```索?????叶??????????????????????????? + +???以??顾??索????????????????????????????????索????????????**idx_city**索???????? + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/773e727c45254b7a858a780fdeff8a7c~tplv-k3u1fbpfcp-watermark.image) + +idx_city索????????????????????????**主??id**??? ??????id主?????索?????????以?????????索?????????? + + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f12ea50032b6428c899ee143663aa3de~tplv-k3u1fbpfcp-watermark.image) + + +**???以????菵课叹??????????????????**????????**idx_city**索?????????叶????主??id?????????????????主??id?????**id主?????**????叶?????????? + +????**order by**??????????????????就??? + +1. MySQL 为叶????线?????????**sort_buffer**?????????菵???name???age???city?段?? +2. ?**索?????idx_city**? ??????? city='深?????>???主?? id??就???中???id=9? +3. ???**主?? id 索?????**????id=9??????????? ???name???age???city????段??????????sort_buffer? +4. ?**索?????idx_city** ???????????主?? id????中???id=13? +5. ????步鏪 3???4 ????**city?????????深??**为2? +6. ??????5步已?????????????**city为深???**??????????? sort_buffer举???????????????age??????? +7. ???????序??????????10??????客????? + +????示???????? + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6d8760fdf99741b492ab032cd3d0d87c~tplv-k3u1fbpfcp-watermark.image) + +???菵??????????段??????????sort_buffer举??就??**????段???**????????????????小?伴????????????,?????菵??????????段????sort_buffer????sort_buffer??????????????????????????sort_buffer????????????????? + +### ????临???件??????? + +??????sort_buffer???大????????????楡?????**sort_buffer_size**?????????????????????sort_buffer_size????????**sort_buffer** ????举???????????????????????sort_buffer_size????**?????????????件????????** + +?????????????????????件????????????? ?˻使??以????????令 + +``` +## ????optimizer_trace??????? +set optimizer_trace = "enabled=on"; +## ????SQL课?? +select name,age,city from staff where city = '深??' order by age limit 10; +## ??菵??????>??? +select * from information_schema.optimizer_trace +``` + +?˻? **number_of_tmp_files** 串???????????????临???件?? + + + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c876d88537ce4b67bcf8f991df17aa94~tplv-k3u1fbpfcp-watermark.image) + +**number_of_tmp_files** ?使??????????????临???件???????number_of_tmp_files>0?????使??????????件??????????? + +使???????临???件????个???序?????????????????? + +1. ?**主??Id索?????**???????????????并???**sort_buffer????**???KK???sort_buffer???满???就叶sort_buffer串???????????????????????鸴????????????????件中??? +2. 继续?????主??? id 索?????????????继续????sort_buffer????举??????????????????????????????临??????件中??? +3. 继续??????????????满足??>????????????????????????临???好?????????件?????并??????????大??件?? + + +**TPS:** ??????????临??????件?????????使???????**?并???**????? + +小?伴们??????????????????**sort_buffer**??????就????????临??????????件????影?????????????????d??????????序???????段??name?city?????sort_buffer举??????????????age?段???**??**???? ?˻?d??**rowid ????**??? + + +### rowid ???? + +rowid ???序就????????菵SQL**????????????????段??主??id**?????sort_bufferKK????f??????走????????段??序????rowid ????????????? + +?????????????楡?????????????就???**max_length_for_sort_data**???MySQL???????序????????度????????????????????????度???????MySQL 就菰为?????就??rowid ??????????以˻??????令???????????????? + + +``` +show variables like 'max_length_for_sort_data'; +``` + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ce8fc30884e74dd5b09c0028640ce7ea~tplv-k3u1fbpfcp-watermark.image) + +**max_length_for_sort_data** ?认???1024??????为???示???name,age,city??度=64+4+64 =132 < 1024, ???以走?????????段?????????以???????????????????? + +``` +## 俏?????????大?????度?32 +set max_length_for_sort_data = 32; +## ??????菵SQL +select name,age,city from staff where city = '深??' order by age limit 10; +``` + +使??rowid ???????????个SQL?????????????????????? + +1. MySQL 为叶????线?????????**sort_buffer**??????????????age?段??以??主??id? +2. ?**索?????idx_city**? ??????? city='深?????>???主?? id??就???中???id=9? +3. ???**主?? id 索?????**????id=9??????????? ???age???主??id???????????sort_buffer? +4. ?**索?????idx_city** ???????????主?? id????中???id=13? +5. ????步鏪 3???4 ????**city?????????深??**为2? +6. ??????5步已?????????????city为深???????????? **sort_buffer**举???????????????age??????? +7. ?????????序???????????10??并????? id ??????**????????**举????????city???name ??? age ????段??????客????? + + +????示???????? + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2addcf67082741e19637dae2e69ee515~tplv-k3u1fbpfcp-watermark.image) + + +对????**????段???**??????rowid ???序????**????**??? + +> ???????衏?????主??????????主?????菵??????就叫?????? + + +???以???**optimizer_trace**??˻?????????????rowid???????? + + +``` +## ????optimizer_trace??????? +set optimizer_trace = "enabled=on"; +## ????SQL课?? +select name,age,city from staff where city = '深??' order by age limit 10; +## ??菵??????>??? +select * from information_schema.optimizer_trace + +``` + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/446258ee4bfa40e6ad80596202c8d5a0~tplv-k3u1fbpfcp-watermark.image) + + +### ????段??序?rowid???序对?? + + +- ????段???? sort_buffer???????????就?????????????临???件????????**????访??**??? +- rowid????? sort_buffer?˻?????????????????????????????????????????段??序???**????**??? + +??????????对??InnoDB???????????????**????????**????????˻???? **max_length_for_sort_data** ?????菱罏鸺1024???????大??????????????????序?段???????????就?????**?????**??????? + + +## order by????????????? + +???以???????order by课叹???? + + +- ???为?????????????以就??????????????????????????????e??????????????索??????????????????以???建??**??????索??**?????order by 课叹?? +- ???以???˻????????**max_length_for_sort_data**???????????? + + +### ??????索?????? + +??????顾??示??SQL?????菵计?? + +``` +explain select name,age,city from staff where city = '深??' order by age limit 10; +``` + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7fce894de9024dd5913e98116dca832f~tplv-k3u1fbpfcp-watermark.image) + +???以????菵??>```city```??????序??```age```??????????索??**idx_city_age**???????????????计?? + +``` +alter table staff add index idx_city_age(city,age); +explain select name,age,city from staff where city = '深??' order by age limit 10; +``` + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/33621e91730b44e5bb88c27b74614b89~tplv-k3u1fbpfcp-watermark.image) + +?˻?????????**idx_city_age**??????索???就??????**Using filesort**???序????为????????????**索????????????**????以˻????**idx_city_age**??????索??示????????? + + + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/19b368a039a34678aeea8e297eee05e8~tplv-k3u1fbpfcp-watermark.image) + +??个SQL??????????????紫? +1. ?索??idx_city_age???满?**city='深???** ???主?? id +2. ???**主?? id索??**????????????? name???city???age ????段???????为????????????????????桦???? +3. ?索??**idx_city_age**???????主??id +4. ????步鏪 2???3???????**?10???**记????????????**?满足city='深???** ??>??循???????? + +??示???????? + +![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/95f6a85904934d9688598d436fbcc1ee~tplv-k3u1fbpfcp-watermark.image) + + +?示????????????????次?????????????对??示??????没?????????????????????????????˻使??**????索??**? + +> ????索????????菵?????????????????????????????????桦?索?????就????????????????????叹??说???SQL???????索?????????????????菵???????????就???????索?????? + +???以??city?name?age ???????????索???????????????索????????SQL???????????????????˻????????? + +### ???????????? + +???以???˻??????????????????order by?????????????˻????sort_buffer_size???????????sort_buffer??太??????大???????????????临???件??????????MySQL?????????罏????????˻使????徶????大???? + +???以???˻????max_length_for_sort_data??????????太??????order by??rowid?????????衏????????菵?????????max_length_for_sort_data?˻????大?????? + +??????????????MySQL???????????以?桦????????认?就?˻???? + +## 使??order by ???????????? + +### 没??where??>?order by?段??????索????? + +??常??????举?????以????????没???where??>???order by???d????????order by????????段??????????索??????????????SQL?create_time???????????索??? + +``` +select * from A order by create_time; +``` + +?????>??菵???????使create_time????索??,???使??????????MySQL???????为走?????级索????????????????????;????????????????????以????ҵ???;??????,???????????段?????????rowid???????????? + +??????菵SQL俏????? + +``` +select * from A order by create_time limit m; +``` +- ?????>??菵,????m?????,???˻走索????.????MySQL???????为????????????奵?????????,????????m?????,就˻?止循?,??d????????????;??????,????????ҵ?级索???? + + +### ????limit?大????导?大??????????????? + +????SQL??? +``` +select * from A order by a limit 100000,10 +``` + +- ?˻记????页????????id???页?菵??????菵??>???id??? where id> ??页?????id limit 10??? +- ??˻????????许???????????????页???? + + +### 索??????序?order by????????????? + +???设????????索?? idx_age_name, ???以???俏?为?????**??菵???10???工?????????年???并???????年????大?????????年????????????????????????**???对????? SQL 课叹?˻?????? + +``` +select name,age from staff order by age ,name desc limit 10; +``` +???以???????计???????使?????**Using filesort**??? + +![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bdc45d41d0744567bc753892661789b7~tplv-k3u1fbpfcp-watermark.image) + +??????为??idx_age_name索?????举??age????大?????????**age???????????name????大????**??????order by 举??????age????大?????????**age???????????name?大???????**????就???索??????序?order by?????? + +???以????????????????MySQL???8.0???????????**Descending Indexes**??˻???修??索?? + +``` +CREATE TABLE `staff` ( + `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主??id', + `id_card` varchar(20) NOT NULL COMMENT '?????', + `name` varchar(64) NOT NULL COMMENT '????', + `age` int(4) NOT NULL COMMENT '年??', + `city` varchar(64) NOT NULL COMMENT '????', + PRIMARY KEY (`id`), + KEY `idx_age_name` (`age`,`name` desc) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='???工;'; +``` + + +### 使???in??>?????????SQL??????????????序?? + +???????以??**??????索??idx_city_name**???????SQL??????????走??序????????? + +``` +select * from staff where city in ('深??') order by age limit 10; +``` + +![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d5c0099035f48529075b6bc9d396cca~tplv-k3u1fbpfcp-watermark.image) + + + +?????????使??in??>?并????????>????就????????序????? + +``` + explain select * from staff where city in ('深??','??') order by age limit 10; +``` + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1813404917da4dc9898ab7a14afb811f~tplv-k3u1fbpfcp-watermark.image) + +???????:in???两个??>????满足深????age????好???????????满足?海??age?????????就???????满足?????????age?????好???????????此???Using filesort??? + +## ?????? + +- ???????????襭?????????轥??????????谢??? +- 徏鿡???索??????**?????????9**???????????????ٺ?? + + +### ??????????? + +- MySQL????45? + + + From 46430483bac498e923f85ac4768040d32e72eff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2021ǯ1010 23:16:51 +0800 Subject: [PATCH 06/52] Add files via upload --- ...23345215260350247204350214203.md" | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 "345267245344275234346200273347273223/346227245345277227346211223345215260350247204350214203.md" diff --git "a/345267245344275234346200273347273223/346227245345277227346211223345215260350247204350214203.md" "b/345267245344275234346200273347273223/346227245345277227346211223345215260350247204350214203.md" new file mode 100644 index 0000000..4577332 --- /dev/null +++ "b/345267245344275234346200273347273223/346227245345277227346211223345215260350247204350214203.md" @@ -0,0 +1,269 @@ +## ǰ + +Һ?**ݵСк**־ǿٶλĺð?**˺ƺ˦**?ӡ־dzҪ**־ӡ**15ý~ + +- ں?**ݵСк** + + +## 1. ѡǡ־ + +־5?ֱerrorwarninfodebugtraceճ?Ҫѡǡ־?Ҫ־Ǵӡinfo~ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c4502943568747e79ac4091b4d2868ea~tplv-k3u1fbpfcp-zoom-1.image) + +- error?־?ָȽصĴ?ҵӰ?Ҫ**άüص**? +- warn?־?һĴ?ҵӰ?Ҫ**ע**? +- info?Ϣ־?¼ŲĹؼϢ?ʱ䡢εȵ? +- debug?ڿDEBUG?ؼ߼ʱ? +- trace?ϸϢ?һЩϢֻ¼־ļС + + +## 2. ־ҪӡΡ + +DzҪӡܶܶ־?ֻҪӡ**ٶλЧ־**Ч־?˦? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c59f66bfc09d42ffa8528c16145952b8~tplv-k3u1fbpfcp-zoom-1.image) + +Щõ**Чؼ**־?˵?ʱ?ӡ****Ȼ?ڷصʱ?**ӡ?ֵ**εĻ?һ**userIdbizSeqЩؼ**Ϣ? + +``` +public String testLogMethod(Document doc, Mode mode){ + log.debug(^method enter param?{} ?,userId); + String id = "666"; + log.debug(^method exit param?{} ?,id); + return id; +} +``` + + +## 3. ѡʵ־ʽ + +?־ʽ?ӦЩϢ?統**ǰʱ**?һ뾫ȷ?**־**?**?**ȵȡlogback־ô? + +``` + + + %d{HH:mm:ss.SSS} %-5level [%thread][%logger{0}] %m%n + + +``` + +ǵ־ʽ?ǰʱ䶼?]м¼?**ʱ㶼֪**? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6ecfebbe1a0b411e8186d46edaddbd38~tplv-k3u1fbpfcp-zoom-1.image) + + +## 4. if...else...ʱ?ÿ֧жӡ־ + +**if...else...switch**ʱ?ڷ֧оʹӡ־?Ųʱ?Ϳͨ־?ȷĸ֧?߼?ҲŲˡ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/60bc12dfb6324c089b86a9dc05acc2f3~tplv-k3u1fbpfcp-zoom-1.image) + + +? +``` +if(user.isVip()){ + log.info("ûǻԱ,Id:{},ʼԱ߼",user,getUserId()); + //Ա߼ +}else{ + log.info("ûǷǻԱ,Id:{},ʼǻԱ߼",user,getUserId()) + //ǻԱ߼ +} +``` + +## 5.־Ƚϵʱ?־ж + +trace/debugЩȽϵ͵־?־Ŀжϡ + +? +``` +User user = new User(666L, "ں", "ݵСк"); +if (log.isDebugEnabled()) { + log.debug("userId is: {}", user.getId()); +} +``` + +Ϊǰµ־? +``` +logger.debug("Processing trade with id: " + id + " and symbol: " + symbol); +``` + +**õ־warn**Ļ?־ӡ?ǻִַƴӲ?```symbol```Ƕԏ? +ִ```toString()```?˷ϵͳԴ?ִ?־ȴûдӡ?˽**־жϡ** + +## 6. ֱʹ־ϵͳ?Log4jLogback?е API?ʹ־SLF4JеAPI + +SLF4J ģʽ־?ά͸־ʽͳһ?ҿڱ֤޸Ĵ?ܷʵײ־ܵĸ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9846b8d9ddd2485483e41b7134954f91~tplv-k3u1fbpfcp-zoom-1.image) + +? +``` +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +private static final Logger logger = LoggerFactory.getLogger(TianLuoBoy.class); +``` + +## 7. ʹòռλ{}?+ƴӡ + +? +``` +logger.info("Processing trade with id: " + id + " and symbol: " + symbol); +``` + +?ʹ```+```ַƴ?һ**** + +? +``` +logger.info("Processing trade with id: {} and symbol : {} ", id, symbol); +``` +ʹ˴```{}```Ϊ־еռλ?ʹ```+```?żࡣ?**ڷ**?ʹռλ滻?Чܡ + +## 8. ʹ첽ķʽ־ + +- ־ջļе?IOܻҪġ첽?Ϳ?֏?IOܡ +- Ҫ?ҪȻʹ첽ķʽ־logbackΪ?Ҫ첽ܼ?ʹAsyncAppender +``` + + + +``` + +## 9. Ҫʹe.printStackTrace() + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e2aeaca5e0f44c08ad25fb92e75222dc~tplv-k3u1fbpfcp-zoom-1.image) + + +? +``` +try{ + // ҵ봦 +}catch(Exception e){ + e.printStackTrace(); +} +``` +? +``` +try{ + // ҵ봦 +}catch(Exception e){ + log.error("ij쳣",e); +} +``` + +**?** + +- e.printStackTrace()ӡĶջ־ҵ־ǽһ?ͨŲ쳣־̫㡣 +- e.printStackTrace()ַ¼ǶջϢ?Ϣ̫̫?ַڵڴûпռ,ڴ?ô?ûͿס~ + +## 10. 쳣־Ҫֻһ?ҪȫϢ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/420f0da65bac44b5b340a96facfd5c11~tplv-k3u1fbpfcp-zoom-1.image) + +1? + +``` +try { + //ҵ봦 +} catch (Exception e) { + // + LOG.error('ij쳣'); +} + +``` +- 쳣eûдӡ?ѹ֪ʲô͵쳣 + +2? +``` +try { + //ҵ봦 +} catch (Exception e) { + // + LOG.error('ij쳣', e.getMessage()); +} +``` + +- ```e.getMessage()```¼ϸĶջ쳣Ϣ?ֻ¼Ϣ?Ų⡣ + +? + +``` +try { + //ҵ봦 +} catch (Exception e) { + // + LOG.error('ij쳣', e); +} +``` + +## 11. ֹ?ϻ debug + +ֹ?ϻdebug?һdzҪ + + +Ϊһϵͳdebug־ܶ?ҸֿҲʹ debug־??Ͽdebugÿܻ?ӰҵϵͳС + +## 12.Ҫ¼쳣?׳쳣 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/671289ecaa4b4eb39dca1139b657f8cd~tplv-k3u1fbpfcp-zoom-1.image) + + +? +``` +log.error("IO exception", e); +throw new MyException(e); +``` + +- ʵĻ?ͨջϢӡΡΪMyException쳣ĵط?ٴӡһΡ +- ־¼?߰װ׳ȥ?Ҫͬʱʹ?־˺Ի + + +## 13.ظӡ־ + +ظӡ־?ϻ˷Ѵ̿ռ䡣Ѿһ־˼?**ӡ**?? + +``` +if(user.isVip()){ + log.info("ûǻԱ,Id:{}",user,getUserId()); + //?Ըǰ־ϲһ + log.info("ʼԱ߼,id:{}",user,getUserId()); + //Ա߼ +}else{ + //ǻԱ߼ +} +``` + +ʹlog4j־?```log4j.xml``` additivity=false?ΪԱظӡ־ + +? +``` + +``` + +## 14.־ļ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/12a2cbe6cf7f4ba981ba7103f9d81858~tplv-k3u1fbpfcp-zoom-1.image) + + +- ǿ԰Ѳͬ͵־ȥ?access.log?errorerror.log?Եӡһļ档 +- Ȼ?ҲԸݲͬҵģ?ӡͬ־ļ?ŲͳƵʱ?ȽϷ + + +## 15. Ĺģ?ӡ־ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c6f26259cda042edb98400145d208d12~tplv-k3u1fbpfcp-zoom-1.image) + + +- ճ?Ļ߼ӵĴ?ӏϸע?ԼϏϸ־ +- ־Ҫϸ?Զһ?ĺijһ?ͨ־Զλ?ǾͿ + + + + + + From 93194b68365941438a9d904fa1b3e9c258f7e28a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2021ǯ1010 23:17:47 +0800 Subject: [PATCH 07/52] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6018cc3..214c8ab 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## 丏溺??????? -![image](https://user-gold-cdn.xitu.io/2019/7/28/16c381c89b127bbb?w=344&h=344&f=jpeg&s=8943) +徏鿡?????????????9 - ???????ٸ??6????好9???˻??注???????????起6?????~~ From 6cd2682a3f262f88a9db736c5402df01c6aefc20 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: Mon, 6 Jun 2022 08:23:10 +0800 Subject: [PATCH 08/52] mhouduansiwei --- ...36344270252351224246345233212.md" | 540 ++++++++++++++++ ...03347224250346250241346235277.md" | 599 ++++++++++++++++++ 2 files changed, 1139 insertions(+) create mode 100644 "345220216347253257346200235347273264347257207/34522021634725325734620023534727326434427020035727423235025627635025624134621624534521724334723220436344270252351224246345233212.md" create mode 100644 "345220216347253257346200235347273264347257207/345220216347253257346200235347273264347257207344272214357274232346211213346212212346211213346225231344275240345256236347216260344270200344270252345271266350241214350260203347224250346250241346235277.md" diff --git "a/345220216347253257346200235347273264347257207/34522021634725325734620023534727326434427020035727423235025627635025624134621624534521724334723220436344270252351224246345233212.md" "b/345220216347253257346200235347273264347257207/34522021634725325734620023534727326434427020035727423235025627635025624134621624534521724334723220436344270252351224246345233212.md" new file mode 100644 index 0000000..f999d6b --- /dev/null +++ "b/345220216347253257346200235347273264347257207/34522021634725325734620023534727326434427020035727423235025627635025624134621624534521724334723220436344270252351224246345233212.md" @@ -0,0 +1,540 @@ +## ǰ + +Һ?ǼݵСкΪ˿?ʲô?```Java``````Go``````C++```?䱳ĺ˼?Ƶġһ˼?ļר?Ҫ˵һЩơߺ˹淶ص?ϣԴճа + +˿ʦ?Ҫ?**ΰһӿƺ**?͸ҽ?ƺýӿڵ36ҡľǺ˼?רĵһƪ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bfc8123cee34de2ad82b736121165d2~tplv-k3u1fbpfcp-zoom-1.image) + +- ں?ݵСк + + +## 1. ӿڲУ + +γУÿԱرĻƵĽӿ?УǷΪ?γǷԤڳȡҪϰ߹?ճ?ܶͼbugDzУµġ + +> ݿֶΪ```varchar(16)```,Էһ32λַ?㲻У?**ݿֱ쳣** + +Ҳ?㶨Ľӿڱ?DzΪյ?Ľӿڷز?ûУ?ΪijЩԭ?ֱرһ```null```ֵ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bfd3392f3ce6408daa1940cc185f0d5f~tplv-k3u1fbpfcp-zoom-1.image) + +## 2. ޸Ͻӿʱ?עӿڵļ + +ܶbugΪ޸˶ɽӿ?ȴ****µġؼDZȽص?ֱӵϵͳʧܵġֳԱ׷Ŷ~ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/701ac23b5dd04149b277c4001721fb87~tplv-k3u1fbpfcp-zoom-1.image) + +?ԭӿ޸?ӿǶṩĻ?һҪǽӿڼݡٸӰ?dubboӿ?ԭֻA?B?һC?ͿԿ? + +``` +//Ͻӿ +void oldService(A,B){ + //½ӿ?nullC + newService(A,B,null); +} + +//½ӿ?ʱɾϽӿ?Ҫݡ +void newService(A,B,C){ + ... +} +``` + +## 3. ƽӿʱ?ֿǽӿڵĿչ + +Ҫʵҵ񳡾ƽӿ?ֿǽӿڵĿչԡ + +ӵһ?ûӻ޸Աʱ?ҪˢǷṩһԱύˢϢӿ?˼?ύˢDzͨ?ת˻һҪˢĻ?ǷҪʵһӿ?ǵǰҵͻģ?ӿھͺ?ӿڵĿչԡ + +ģ黮ֵĻ?δһˢĻ?ٸһµĽӿ?ֻҪö?Ȼˢͨ̽ӿ?ʵһˢIJ컯ɡ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cd3ee52ecaa34de384bb529cbb358889~tplv-k3u1fbpfcp-zoom-1.image) + + +## 4.ӿڿǷҪش + +ǰظ?߼δ?Dzǿǽӿȥش + +Ȼ?Dzѯ?ʵ÷ءǸ޸Ļ?ת?Ҫظˡ򵥵?ʹRedisظ?ͬ?һʱڵďͬ?ǷˡȻ?תӿ?ߵĻ?**Ƽʹݿر**?**ΨһˮΪΨһ** + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/059928f565ba4d27a17c54f451b0235d~tplv-k3u1fbpfcp-zoom-1.image) + + +## 5. صӿ??̳ظ롣 + +һЩ½ת˽סµҪӿ??̳ظҵ񶼹һ?̳?Щҵbug?̳Ļ?Ǿͱ?**ҵӰ**˽?̳ظ?Ҫҵһĺ??͸ñҪҵ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1d30804afc044026b4eb7bad23689c42~tplv-k3u1fbpfcp-zoom-1.image) + + +## 6. õӿҪ쳣ͳʱ + +õӿ?߷ֲʽԶ̷ĵĻ?Ҫ? + +- 쳣 + +> ?˵Ľӿ?쳣?ô?ԻǵʧܻǸ澯 + +- ӿڳʱ + +> ûԤԷӿһ÷?һøʱϿʱ?ԱĽӿڡ**֮ǰһ**?httpòóʱʱ?󏻻Ӧ̼?һֱռ?̲ͷ?Ͽ?̳ء + +- Դ +> Ľӿڵʧ?費Ҫ?Լ?ҪվҵϽǶ˼ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/25ec61c10c324ada9252745fa4017ad6~tplv-k3u1fbpfcp-zoom-1.image) + + +## 7. ӿʵ۶Ϻͽ + +ǰϵͳһ㶼Ƿֲʽġֲʽϵͳоij񲻿?յϵͳõ, ֏ұΪ**ѩЧӦ** + +ֲʽ·```A->B->C....```?ͼʾ? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/65240791c94c44b6aab143178eeb790c~tplv-k3u1fbpfcp-zoom-1.image) + +> C?**ΪSQLµû**?ǽBҲӳ?ӶAҲӳ١סAᏻռϵͳ?̡IOԴ AķԽԽ?ռüԴҲԽԽ?ջᵼϵͳƿ?ͬ?ҵϵͳ + +ΪӦԷѩ, **۶Ϻͽ**Ǽӿؿ?ϵͳʱ?ؽ?ٵϵͳѡÿԴ```Hystrix``` + +## 8. ־ӡ?ӿڵĹؼ?Ҫ־ݻ + +ؼҵε?Ӧ㹻־ݻ +?ʵתҵ?ת?Ȼתʧ?ſͻͶ?Ȼ㻹ûдӡ־???ˮȵ?ȴް취 + +ô?תҵҪЩ־Ϣ??ǰ?ҪӡҪ?ӿڵú?Ҫһ쳣?ͬʱӡ쳣־?? +``` +public void transfer(TransferDTO transferDTO){ + log.info("invoke tranfer begin"); + //ӡ + log.info("invoke tranfer,paramters:{}",transferDTO); + try { + res= transferService.transfer(transferDTO); + }catch(Exception e){ + log.error("transfer fail,account?{}", + transferDTO.getAccount??) + log.error("transfer fail,exception:{}",e); + } + log.info("invoke tranfer end"); + } +``` + +֮ǰдһƪӡ־15?ҿԿ?[ܽ?־ӡ15](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494838&idx=1&sn=cdb15fd346bddf3f8c1c99f0efbd67d8&chksm=cf22339ff855ba891616c79d4f4855e228e34a9fb45088d7acbe421ad511b8d090a90f5b019f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) + +## 9. ӿڵĹܶҪ߱һ + +һָӿȽϵһרһһ½ӿ?ֻУ˻?Ȼ󷵻ص½ɹԼ```userId```ɡ**Ϊ˼ٽӿڽ?һЩעᡢһЩòѯȫŵ½ӿ?Ͳ̫ס** + +ʵҲ΢һЩ˼??ӿڵĹܵһȷ綩񡢻֡ƷϢصĽӿڶǻֿġ΢Ļ?DzǾͱȽϼ + + +## 10.ӿЩ?ʹ첽 + +ٸ򵥵?ʵһûעĽӿڡûעɹʱ?ʼ߶ȥ֪ͨûʼ߷?͸ʺ첽Ϊܲһ֪ͨʧ?עʧܰɡ + +첽ķʽ?򵥵ľ**?̳**ʹÏϢ?ûעɹ?߲һעɹďϢ?עɹďϢ?ͷ֪ͨ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/585b098a67b349d495e6e8579ea85e4c~tplv-k3u1fbpfcp-zoom-1.image) + + +еĽӿڶʺΪͬӿڡҪһת˵Ĺ?ǵʵת?ǿ԰ѽӿͬûתʱ?ͻھȴת˽ͺáת?һһǧ?һʵ?԰ѽӿΪ첽ûתʱ?־ûɹȷɹȻûʮӻʮӵת˽ͺáֻ?ת˳ɹ?ٻصϵͳ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1ae74868492344c4bcbab9b480904c47~tplv-k3u1fbpfcp-zoom-1.image) + + +## 11. Żӿںʱ?Զ̴пǸIJе + +һAPPҳĽӿ?ҪûϢҪbannerϢҪ鵯Ϣȵȡһһӿڴе?Dzе? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d118e2b09e1f4fc6a1003fd44a43e4c7~tplv-k3u1fbpfcp-zoom-1.image) + +Ǵһһ?ûϢ200ms?bannerϢ100ms鵯Ϣ50ms?һͺʱ```350ms```?Ϣ?Ǻʱ͸ˡֳǿԸΪеõġҲ˵ûϢbannerϢ鵯Ϣ?ͬʱ + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/83561366219b48a2a85a6bb0419f82a3~tplv-k3u1fbpfcp-zoom-1.image) + +Javaи첽?```CompletableFuture```?ͿԺܺʵܡȤСԿ֮ǰ¹?[CompletableFuture](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490456&idx=1&sn=95836324db57673a4d7aea4fb233c0d2&chksm=cf21c4b1f8564da72dc7b39279362bcf965b1374540f3b339413d138599f7de59a5f977e3b0e&token=1260947715&lang=zh_CN#rd) + +## 12. ӿںϲ˵˼? + +ݿԶ̵ʱ?ͲҪforѭá +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/855cd5cf57d047be909dbc41ddacc021~tplv-k3u1fbpfcp-zoom-1.image) + +һ?ƽʱһбϸݲݿʱ?Ҫforѭһһ?һμ?롣ͬԶ̵Ҳ??ѯӪ?ǩǷ?һǩһǩȥ?Ҳǩȥ??Чʾ͸ + +``` +// +for(int i=0;i һЩƽʱ䶯С˵ƷϢ?Էŵ?ʱ?Ȳѯ?ûٲݿ?Ұݿݸµ档?ʹûҪЩ?ݿһα֤Ⱥѩ洩͸⡣ + +- ֤ݿͻһ?**ʱ˫ɾɾԻơȡbiglog첽ɾ** +- ? +- ѩ?RedisȺ߿áùʱ +- 洩͸?ӿڲУ顢ѯΪøĬϿֵǡ¡ + +һ```Redis```ֲʽ?ȻЩʱҲԿʹñػ?```Guava CacheCaffeine```ȡʹñػЩȱ?޷дݴ洢?Ӧý̵?ʧЧ + +## 14. ӿڿȵݸ + +˲ʱĸ߲?ܻϵͳһЩȵݵĸ롣**ҵ롢ϵͳ롢û롢ݸ**ȡ + +- ҵ?12306ķʱƱ?ȵݷɢ?ϵͳѹ +- ϵͳ?ϵͳֳûƷ顣ֱʹòͬݿ?ӽ㵽Ӧòٵݲȫ롣 +- û?صûøõĻ +- ݸ?ʹõĻ漯Ⱥݿȵݡ + +## 15. ɱû?Ƥл + +Ʒ˸?ʥڵʱ?ƤΪʥڏص?ڵʱ?ΪںƤȡ + +ڴд?´? +``` +if(duringChristmas){ + img = redPacketChristmasSkin; +}else if(duringSpringFestival){ + img = redSpringFestivalSkin; +} +``` +Ԫڵʱ?ӪСͻȻ??Ƥɵص?ʱ?DzҪȥ޸Ĵ?·? + +һʼӿʱ?ʵ**һźƤñ**?Ƥû?Ƥ?ֻ޸һ±ݾͺˡ + +Ȼ?һЩʺһЩûIJ?һҳơijʱЩ?Ը㵽û档**Ҳչ˼?һ叺** + +## 16.ӿڿݵ + +ӿҪݵԵ?תЩҪӿڡֱ۵ҵ񳡾?**ûŵ**?Ľӿû**holdס**ߏϢгظѵ?ҵ߼ô? + +?**ʲôݵ?** + +> ѧ?ݵȱʾһκͶijһԴӦþͬĸ?˵?ӰһִеӰЧͬ + +ұ?**غݵʵ**ҪΪ˱ظ?ظɡݵƳѾ?ҪÿΏͬ󶼷һЧ?ܶʱ?ǵĴ̡ƵĹ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f8c3d0d5a653455198ba3259ef221387~tplv-k3u1fbpfcp-zoom-1.image) + + +ӿݵʵҪ8? + +- select+insert+/Ψһͻ +- ֱinsert + /Ψһͻ +- ״̬ݵ +- ȡر +- token +- +- ֹ +- ֲʽ + +ҿԿƪ¹?[ݵ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497427&idx=1&sn=2ed160c9917ad989eee1ac60d6122855&chksm=cf2229faf855a0ecf5eb34c7335acdf6420426490ee99fc2b602d54ff4ffcecfdab24eeab0a3&token=1260947715&lang=zh_CN#rd) + +## 17. д?ȿǶӿ?עӳ + +ǵݿⶼǼȺ?Ҳдӿ?ǰһ㶼Ƕдġд?϶д?ǶڶȡʵʱҪ󲻸ߵ?ȿǶӿ?ΪԷֵѹ + +ȡӿĻ?Ҫӳٵ⡣ + +## 18.ӿעⷵص?Ҫҳ + +һӿڷر?Ӧð?ѹҲdzʵDZȽϴ?Էҳ?ǹܲصı?Ӧÿǽӿڲ֡ + +## 19. õĽӿʵ?벻SQLŻ + +˵?дһӿ?벻SQLŻ + +SQLŻ⼸ά˼? + +- explain SQLѯƻ?صעtypeextrafilteredֶ? +- show profile?˽SQLִе?̵״̬Լĵʱ +- Ż ?ǰ׺ԭʽתorder byԼgroup byŻjoinŻ? +- ҳŻ?ӳٹ¼һҳID? +- ̫?**ֱֿ**ͬes?esѯ? + +## 20.ȿƺ + +ʲôǼ? + +> ʵǾҪסķΧǶ󡣱ڼ?ֻҪסͿ˰?ҪҶü˽Ű?ļȡ + +дʱ?漰Դ?ûбҪסġͺÏ?ðҶס?סžͿˡ + +?ҵ?һArrayListΪ漰?̲?Ҫ?պһαȽϺʱIJ?е```slowNotShare```?漰?̰ȫ?μ? + +? +``` +//漰Դ +private void slowNotShare() { + try { + TimeUnit.MILLISECONDS.sleep(100); + } catch (InterruptedException e) { + } +} + +//ļ +public int wrong() { + long beginTime = System.currentTimeMillis(); + IntStream.rangeClosed(1, 10000).parallel().forEach(i -> { + //̫?slowNotShareʵ漰Դ + synchronized (this) { + slowNotShare(); + data.add(i); + } + }); + log.info("cosume time:{}", System.currentTimeMillis() - beginTime); + return data.size(); +} +``` + +? +``` +public int right() { + long beginTime = System.currentTimeMillis(); + IntStream.rangeClosed(1, 10000).parallel().forEach(i -> { + slowNotShare();//Բ + //ֻListⲿּ + synchronized (data) { + data.add(i); + } + }); + log.info("cosume time:{}", System.currentTimeMillis() - beginTime); + return data.size(); +} +``` + +## 21.ӿ״̬ʹҪͳһȷ + +ṩҪĽӿڵ״̬Ϣһת˽ӿڵdzɹʧܡлɹ?Ҫȷ߿ͻˡӿʧ?ôʧܵԭʲôЩҪϢҪ߸ͻ?ҪȷĴͶӦͬʱ?ԱϢװһ?ҪѺ˵쳣Ϣȫ׳ͻˡ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/20a1080126274c04aa31802178c01bb0~tplv-k3u1fbpfcp-zoom-1.image) + + +## 22.ӿҪ쳣 + +ʵһõĽӿ?벻ŵ쳣쳣?ʮС? + +- Ҫʹ```e.printStackTrace()```,ʹ```log```ӡΪ```e.printStackTrace()```ܻᵼڴռ +- ```catch```ס쳣ʱ?ӡ```exception```?ڸöλ +- Ҫһ```Exception```׽пܵ쳣 +- ǵʹ```finally```رԴֱʹ```try-with-resource``` +- 쳣׳쳣ȫƥ?߲쳣쳣ĸ +- 񵽵쳣?ܺ?ٴ־ +- ע쳣ĴνṹȾ +- Զװ쳣?Ҫԭʼ쳣Ϣ```Throwable cause``` +- ʱ쳣```RuntimeException``` ?Ӧͨ```catch```ķʽ?Ԥ??```NullPointerException``` +- ע쳣ƥ˳?Ȳ쳣 + +СȤԿ֮ǰдƪ¹?[Java 쳣ʮ](https://mp.weixin.qq.com/s/3mqY77c8iXWvJFzkVQi9Og) + +## 23. Ż߼ + +Ż߼黹ͦҪ?Ҳ˵?ʵҵ?**DZȽϸӵĻ?עд**?߼?뾡Ч + +> ?ҪʹûϢ?sessionѾȡ```userId```?ȻͰûϢݿѯ?ʹ?ҪõûϢ?ЩСû?̫?־Ͱ```userId```ٴȥ?ٲһݿ⡣?Ŀ?ִ롣ֱӰûԏҴ + +α? + +``` +public Response test(Session session){ + UserInfo user = UserDao.queryByUserId(session.getUserId()); + + if(user==null){ + reutrn new Response(); + } + + return do(session.getUserId()); +} + +public Response do(String UserId){ + //һݿ + UserInfo user = UserDao.queryByUserId(session.getUserId()); + ...... + return new Response(); +} + +``` + +? + +``` +public Response test(Session session){ + UserInfo user = UserDao.queryByUserId(session.getUserId()); + + if(user==null){ + reutrn new Response(); + } + + return do(session.getUserId()); +} + +//ֱӴUserInfoԏҹ?ٶһݿ +public Response do(UserInfo user){ + ...... + return new Response(); +} +``` + +Ȼ?ֻһЩСһ?кܶƵ?Ҫҿ?˼Ĺ + + +## 24. ӿʵ̻?עļ񡢴ԏ + +- ȡļʱ?Ҫ```Files.readAllBytes```ֱӶȡڴ?OOM?ʹ```BufferedReader```һһ +- ܵعʱ䳤ӳٵ?о +- עһЩԏҵʹ?Ϊԏֱӽ?ᴥfullGC + +## 25. Ľӿ?ҪǏ + +ϵͳÿ뿸ס1000?һʮ?ǶȾ˵?߲ʱ??ϵͳij?ô? + +ȡʩ?е?ϵͳCPUڴ桢Load쮵ĺܸ??е޷Ӧ + +ֳ?ǿԲÏΪ˱ϵͳ??ֱӶ + +? +> ڼ?ǿӿڷͻ?ɷֹDoS͏Web档?Ҳơָϵͳٸ߲?ߴ?µϵͳķ?Ӷ֤ϵͳȶԡ + +ʹGuava```RateLimiter```揺?Ҳʹ```Redis```ֲʽ?ʹð↑Դ```sentinel``` + +ҿԿ֮ǰƪ¹?[4־䏺㷨](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490393&idx=1&sn=98189caa486406f8fa94d84ba0667604&chksm=cf21c470f8564d665ce04ccb9dc7502633246da87a0541b07ba4ac99423b28ce544cdd6c036b&token=162724582&lang=zh_CN&scene=21#wechat_redirect) + + +## 26.ʵʱ?עʱ쳣?ָ롢±Խ? + +ճ?Ҫȡʩ**߽??ָ**ʱƴȽϳ? +``` +String name = list.get(1).getName(); //listԽ?Ϊһ2Ԫع +``` + +Ӧòȡʩ?Ԥһ߽? +``` +if(CollectionsUtil.isNotEmpty(list)&& list.size()>1){ + String name = list.get(1).getName(); +} +``` +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/10199365140845ea8f7b29a07fbaf3cc~tplv-k3u1fbpfcp-zoom-1.image) + + +## 27.֤ӿڰȫ + +APIӿǶṩ?Ҫ֤ӿڵİȫԡ֤ӿڵİȫ**tokenƺͽӿǩ** + +**token֤**Ƚϼ򵥵? + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9b468f89cdaf4040b84e432182903fd9~tplv-k3u1fbpfcp-zoom-1.image) + +1. ͻ˷?ȡtoken +2. ȫΨһtoken?浽redis?һһʱ??Ȼ󷵻ظͻˡ +3. ͻ˴token? +4. ȥredisȷtokenǷ?һ redis.del(token)ķʽ?ڻɾɹ?ҵ߼?ɾʧܲҵ߼?ֱӷؽ + +**ӿǩ**ķʽ?ǰѽӿϢ??ʱ汾šappid??ͻ˽Կǩ?ȻùԿǩ?֤ͨΪǺϷġûб۸Ĺ + +йڼǩǩ?ҿԿƪ¹?[Աر?ǩǩ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488022&idx=1&sn=70484a48173d36006c8db1dfb74ab64d&chksm=cf21cd3ff8564429a1205f6c1d78757faae543111c8461d16c71aaee092fe3e0fed870cc5e0e&token=162724582&lang=zh_CN&scene=21#wechat_redirect) + +**ǩǩtoken?ӿڱһҪܵ**Ȼ?httpsЭǻԱļܵġǷĻ?μӽ? +> ԲοHTTPSԭ?Ƿ˰ѹԿͻ?ȻͻɶԳԿ?ſͻ÷˵ĹԿܶԳԿ?ٷ?Լ˽Կ?õͻ˵ĶԳԿʱͿ촫䱨?ͻ**ԳԿ**?**öӦĶԳԿܱ** + +ʱ?ӿڵİȫ?**ֻš֤Ϣ**˵?**û˽?㱩¶** + +## 28.ֲʽ?α֤ + +> ֲʽ?ָIJߡ֧ķԴԼֱλڲͬķֲʽϵͳIJͬڵ֮ϡ˵?ֲʽָľǷֲʽϵͳе?ĴھΪ˱֤ͬݿڵһԡ + +ֲʽļֽ? +- 2PC(׶ύ)3PC +- TCC?TryConfirmCancel? +- ؏Ϣ +- Ŭ֪ͨ +- seata + +ҿԿƪ¹?[һ?ֲʽ񏻺](https://mp.weixin.qq.com/s/3r9MfIz2RAtdFhYzwwZxjA) + +## 29. ʧЧһЩ䳡 + +ǵĽӿڿ?ҪʹõҪܿʧЧһЩ䳡 + +- ķȨpublic?privateȨ?ʧЧ +- final?ᵼʧЧ +- ͬһеķֱڲ?ᵼʧЧ +- һûspring?Ͳspring +- ?̵?ͬһ??ȡݿӲһġ +- Ĵ洢治֧ +- Լtry...catch쳣?ʧЧ +- Ĵ + +Ƽҿƪ?[springʧЧ12ֳ?̫](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494570&idx=2&sn=17357bcd328b2d1d83f4a72c47daac1b&chksm=cf223483f855bd95351a778d5f48ddd37917ce2790ebbbcd1d6ee4f27f7f4b147f0d41101dcc&token=2044040586&lang=zh_CN&scene=21#wechat_redirect) + + +## 30. ճõģʽ + +Ѵд?Ҫõģʽ?ģʽģʽģ巽ģʽ۲ģʽȵȡģʽ?ǴƾܽᡣʹģʽԿô롢ôױ⡢֤ɿԡ + +֮ǰдһƪܽṤгģʽ?дͦ?ҿԿ?[ʵս?гõЩģʽ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495616&idx=1&sn=e74c733d26351eab22646e44ea74d233&chksm=cf2230e9f855b9ffe1ddb9fe15f72a273d5de02ed91cc97f3066d4162af027299718e2bf748e&token=1260947715&lang=zh_CN#rd) + +## 31. дʱ??԰ȫ + +**߲**?```HashMap```ܻѭΪǷ?԰ȫ?Կʹ```ConcurrentHashMap```Ҳϰ?Ҫ־һ```new HashMap()```; + +> - HashmapArraylistLinkedListTreeMapȶ?Բȫ? +> - VectorHashtableConcurrentHashMapȶ?԰ȫ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1ba0cab945874264a8d8e87b7d7c4a1b~tplv-k3u1fbpfcp-zoom-1.image) + + +## 32.ӿڶ׶?淶 + +д?ΪʵǰĹ?ҲҪںά˵ά?벻дԼ?ҲǸ˿ġԽӿڶҪ׶?淶 + +## 33. ӿڵİ汾 + +ӿҪð汾ơ˵??Ӧð```version```ӿڰ汾ֶ?δӿڼݡʵҲӿչԵһ叺ɡ + +ͻAPPijŻ?ϰ汾Ṳ?ʱǵ```version```汾žó?```version```?ð汾ơ + +## 34. ע淶 + +עһЩĴ뻵ζ? +- ظ?鹫÷?ģʽ? +- ?ɷװһDTOԏ? +- ?С? +- ж̫?Żif...else? +- ûõĴ +- עشʽ +- + +Ļζ?Ҷд?[25ִ뻵ζܽ+Żʾ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490148&idx=1&sn=00a181bf74313f751b3ea15ebc303545&chksm=cf21c54df8564c5bc5b4600fce46619f175f7ae557956f449629c470a08e20580feef4ea8d53&token=162724582&lang=zh_CN&scene=21#wechat_redirect) + +## 35.֤ӿȷ?ʵDZ֤ٵbug + +֤ӿڵȷ?ǶȽ?DZ֤ٵbug?ûbugԽӿڿ?һҪ**Բһ**ȻĻ?ӿڵȷ叺??̲ʱ?**֤ݵȷ**,ȵȡһת˽?ۼʱ?ͨCASֹķʽ֤ۼȷɡ + +ʵɱӿ?÷ֹɡʹRedisֲʽֹ⡣ʹRedisֲʽ?мעҪ?ҿԿ֮ǰƪ¹?[ַ?̽Redisֲʽȷʹ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488142&idx=1&sn=79a304efae7a814b6f71bbbc53810c0c&chksm=cf21cda7f85644b11ff80323defb90193bc1780b45c1c6081f00da85d665fd9eb32cc934b5cf&token=162724582&lang=zh_CN&scene=21#wechat_redirect) + +## 36.ѧṵͨ?ǰ˹ͨ?Ʒͨ + +Ұһŵ?ѧṵͨǷdzdzҪġ㿪ӿʱ?**һԼͷѽӿڶ**?**Ҫͻȶӿ**һЩѵʱ?leader뷽ʵĹ?ʲô?ʱƷͨ + +֮?ӿڹ?һҪͨ~ + + +## (ע?) + +ƪ¶?Ļ?ӭעҵĹں?ݵСк + + diff --git "a/345220216347253257346200235347273264347257207/345220216347253257346200235347273264347257207344272214357274232346211213346212212346211213346225231344275240345256236347216260344270200344270252345271266350241214350260203347224250346250241346235277.md" "b/345220216347253257346200235347273264347257207/345220216347253257346200235347273264347257207344272214357274232346211213346212212346211213346225231344275240345256236347216260344270200344270252345271266350241214350260203347224250346250241346235277.md" new file mode 100644 index 0000000..762cb1b --- /dev/null +++ "b/345220216347253257346200235347273264347257207/345220216347253257346200235347273264347257207344272214357274232346211213346212212346211213346225231344275240345256236347216260344270200344270252345271266350241214350260203347224250346250241346235277.md" @@ -0,0 +1,599 @@ +## ǰ + +Һ?ǼݵСк + +Ǻ˼άרĵڶƪһƪ[36ƽӿڵĽ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499388&idx=1&sn=49a22120a3238e13ad7c3d3b73d9e453&chksm=cf222155f855a8434026b2c460d963c406186578c2527ca8f2bb829bbe849d87a2392a525a9b&token=1380536362&lang=zh_CN#rd)?õdzСϿɡ +36ƽӿڵĽҲᵽһ?**ʹòеŻӿ**ԽͿӱ?дڶƪ?ְֽдһеģ塣 + +- һеõ?AppҳϢѯ? +- CompletionServiceʵе +- ȡͨõIJе÷ +- ˼ԼģʽӦ +- ˼ܽ +- ں?**ݵСк** + + +## 1. һеõ + +һAPPҳѯĽӿ?ҪûϢҪ```banner```ϢҪǩϢȵȡһ?Сʵ? + +``` +public AppHeadInfoResponse queryAppHeadInfo(AppInfoReq req) { + //ûϢ + UserInfoParam userInfoParam = buildUserParam(req); + UserInfoDTO userInfoDTO = userService.queryUserInfo(userInfoParam); + //bannerϢ + BannerParam bannerParam = buildBannerParam(req); + BannerDTO bannerDTO = bannerService.queryBannerInfo(bannerParam); + //ǩϢ + LabelParam labelParam = buildLabelParam(req); + LabelDTO labelDTO = labelService.queryLabelInfo(labelParam); + //װ + return buildResponse(userInfoDTO,bannerDTO,labelDTO); +} +``` + +δʲô? ʵһͦĴ?ʵ?ѯûbannerǩϢ?**Ǵе**?ѯûϢ```200ms```?ѯbannerϢ```100ms```?ѯǩϢ```200ms```Ļ?ʱ```500ms``` + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/35fa8e071a7048d5ae7d8e3e7f339532~tplv-k3u1fbpfcp-zoom-1.image) + +ʵΪŻ?ǿ޸Ϊ**е**ķʽ?ʱԽΪ```200ms```?ͼʾ? + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e8559cfd7bb2449dbab91c0b38a3d78e~tplv-k3u1fbpfcp-zoom-1.image) + + +## 2. CompletionServiceʵе + +?**ʵе?** + +С˵?ʹ```Future+Callable```ʵIJеá?ִ̳ʱ?ֵ```Futureget()```ȡ?ǰһִбȽϺʱĻ?```get??```?γŶӵȴ + +```CompletionService```ǶԶ```ExecutorService```˰װ?һ,һ߻ȡķֵ·ִֿ,֮䲻ụ?Իȡɵ + + +> ```CompletionService```ʵԭȽϼ?ײͨFutureTask+?ʵɵĻ?ȻȡҲ˵ִнɵȺ˳?ɿŻȡڲһȽȳ?ڱѾִɵFuture?```CompletionService```polltakeɻȡһѾִɵFuture?ͨFutureӿʵ```get```ȡյĽ + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/10e375f58f5d490193888b0c5375e0f0~tplv-k3u1fbpfcp-zoom-1.image) + + +??```CompletionService```?ʵвѯAPPҳϢ˼? + +1. ȰѲѯûϢ?ŵ?̳?? +``` +ExecutorService executor = Executors.newFixedThreadPool(10); +//ѯûϢ +CompletionService userDTOCompletionService = new ExecutorCompletionService(executor); +Callable userInfoDTOCallableTask = () -> { + UserInfoParam userInfoParam = buildUserParam(req); + return userService.queryUserInfo(userInfoParam); + }; +userDTOCompletionService.submit(userInfoDTOCallableTask); +``` + +2. ?Ѳѯ```banner```Ϣ?Ҳŵ?̳صĻ?÷?ΪͲһ?һ```UserInfoDTO```?һ```BannerDTO```ʱ?DzǰѷΪObject?ΪжԏҶǼ̳Object?? + +``` +ExecutorService executor = Executors.newFixedThreadPool(10); +//ѯûϢ +CompletionService baseDTOCompletionService = new ExecutorCompletionService(executor); +Callable userInfoDTOCallableTask = () -> { + UserInfoParam userInfoParam = buildUserParam(req); + return userService.queryUserInfo(userInfoParam); +}; +//bannerϢ +Callable bannerDTOCallableTask = () -> { + BannerParam bannerParam = buildBannerParam(req); + return bannerService.queryBannerInfo(bannerParam); +}; + +//ύûϢ +baseDTOCompletionService.submit(userInfoDTOCallableTask); +//ύbannerϢ +baseDTOCompletionService.submit(bannerDTOCallableTask); +``` +3. и?ǻȡ**ֵʱ**?Dz֪ĸ```Object```ûϢDTO?ĸ```BannerDTO```?**ô?**ʱ?ǿڲչ?ΪһԏBaseRspDTO?ٸͷObjectݵ?ȻԏBaseRspDTOиUserDTOBannerDTO**Ψһkey**? + +``` +public class BaseRspDTO { + + //DTOصΨһ?UserInfoDTOBannerDTO + private String key; + //صdata + private T data; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} + +//вѯAppҳϢ +public AppHeadInfoResponse parallelQueryAppHeadPageInfo(AppInfoReq req) { + + long beginTime = System.currentTimeMillis(); + System.out.println("ʼвѯappҳϢ?ʼʱ?" + beginTime); + + ExecutorService executor = Executors.newFixedThreadPool(10); + CompletionService baseDTOCompletionService = new ExecutorCompletionService(executor); + + //ѯûϢ + Callable userInfoDTOCallableTask = () -> { + UserInfoParam userInfoParam = buildUserParam(req); + UserInfoDTO userInfoDTO = userService.queryUserInfo(userInfoParam); + BaseRspDTO userBaseRspDTO = new BaseRspDTO(); + userBaseRspDTO.setKey("userInfoDTO"); + userBaseRspDTO.setData(userInfoDTO); + return userBaseRspDTO; + }; + + //bannerϢѯ + Callable bannerDTOCallableTask = () -> { + BannerParam bannerParam = buildBannerParam(req); + BannerDTO bannerDTO = bannerService.queryBannerInfo(bannerParam); + BaseRspDTO bannerBaseRspDTO = new BaseRspDTO(); + bannerBaseRspDTO.setKey("bannerDTO"); + bannerBaseRspDTO.setData(bannerDTO); + return bannerBaseRspDTO; + }; + + //labelϢѯ + Callable labelDTODTOCallableTask = () -> { + LabelParam labelParam = buildLabelParam(req); + LabelDTO labelDTO = labelService.queryLabelInfo(labelParam); + BaseRspDTO labelBaseRspDTO = new BaseRspDTO(); + labelBaseRspDTO.setKey("labelDTO"); + labelBaseRspDTO.setData(labelDTO); + return labelBaseRspDTO; + }; + + //ύûϢ + baseDTOCompletionService.submit(userInfoDTOCallableTask); + //ύbannerϢ + baseDTOCompletionService.submit(bannerDTOCallableTask); + //ύlabelϢ + baseDTOCompletionService.submit(labelDTODTOCallableTask); + + UserInfoDTO userInfoDTO = null; + BannerDTO bannerDTO = null; + LabelDTO labelDTO = null; + + try { + //Ϊύ3?Իȡ3 + for (int i = 0; i < 3; i++) { + Future baseRspDTOFuture = baseDTOCompletionService.poll(1, TimeUnit.SECONDS); + BaseRspDTO baseRspDTO = baseRspDTOFuture.get(); + if ("userInfoDTO".equals(baseRspDTO.getKey())) { + userInfoDTO = (UserInfoDTO) baseRspDTO.getData(); + } else if ("bannerDTO".equals(baseRspDTO.getKey())) { + bannerDTO = (BannerDTO) baseRspDTO.getData(); + } else if ("labelDTO".equals(baseRspDTO.getKey())) { + labelDTO = (LabelDTO) baseRspDTO.getData(); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + + System.out.println("вѯappҳϢ,ܺʱ?" + (System.currentTimeMillis() - beginTime)); + return buildResponse(userInfoDTO, bannerDTO, labelDTO); +} +``` + +Ϊֹ?һ```CompletionService```ʵеõѾʵDzǺܿ? + +## 3. ȡͨõIJе÷ + +ǻع۲µ2С?ѯappҳϢdemo?```CompletionService```ʵ˲еáûʲô??,ҵ񳡾?Ҳ?ͨеŻ?DzҲøһƵ2СڵĴ롣?**DzǿԳȡһͨõIJз?ñijҲ?԰?Ǻ˼ά**? + +ڵ2СڵĴ?γȡͨòе÷ء + +?ͨõIJе÷?**ܸҵصԹҹ**?԰?ԷӦЩ? + +> ?```Callable```԰ɡΪ?϶ǶCallableġ?Ӧһ```Callable```顣Ȼ?APPҳѯ?```Callable```ô```BaseRspDTO```?԰?ξ```List> list``` + +Dzеõij? ж```Callable```?DzǵжӦķ??ijο```List```dzȡͨòеģ?Ϳдɽ? + +``` + public List executeTask(List> taskList) { + + List resultList = new ArrayList(); + //У + if (taskList == null || taskList.size() == 0) { + return resultList; + } + + ExecutorService executor = Executors.newFixedThreadPool(10); + CompletionService baseDTOCompletionService = new ExecutorCompletionService(executor); + //ύ + for (Callable task : taskList) { + baseDTOCompletionService.submit(task); + } + + try { + //ȡ + for (int i = 0; i < taskList.size(); i++) { + Future baseRspDTOFuture = baseDTOCompletionService.poll(2, TimeUnit.SECONDS); + resultList.add(baseRspDTOFuture.get()); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + + return resultList; + } +``` +ȻdzȡͨõIJе÷?ϵķǷ**ЩطҪĽ**? + +- һŻĵط?```executor?̳```?Щҵ񳡾?```A?̳```?Щҵ?```B?̳```?ô??Ͳͨ?԰ɡǿ԰?̳Բʵṩ?÷Լơ +- ڶŻĵط?```CompletionService``````poll```ȡʱ?ʱʱдġΪͬҵ񳡾?ʱʱܲһ?ʱʱҲǿԲʽų?÷Լơ + +ٴŻһͨõIJеģ?? +``` +public List executeTask(List> taskList, long timeOut, ExecutorService executor) { + + List resultList = new ArrayList(); + //У + if (taskList == null || taskList.size() == 0) { + return resultList; + } + if (executor == null) { + return resultList; + } + if (timeOut <= 0) { + return resultList; + } + + //ύ + CompletionService baseDTOCompletionService = new ExecutorCompletionService(executor); + for (Callable task : taskList) { + baseDTOCompletionService.submit(task); + } + + try { + //ȡ + for (int i = 0; i < taskList.size(); i++) { + Future baseRspDTOFuture = baseDTOCompletionService.poll(timeOut, TimeUnit.SECONDS); + resultList.add(baseRspDTOFuture.get()); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + + return resultList; +} +``` + +ԺijҲҪõеõĻ?ֱӵ?DzеССijɾ͸? + +## 4. ˼ԼģʽӦ + +ǰѳȡǸõIJе÷?Ӧõ```AppҳϢѯ```?? + +``` +public AppHeadInfoResponse parallelQueryAppHeadPageInfo1(AppInfoReq req) { + + long beginTime = System.currentTimeMillis(); + System.out.println("ʼвѯappҳϢ?ʼʱ?" + beginTime); + //ûϢѯ + Callable userInfoDTOCallableTask = () -> { + UserInfoParam userInfoParam = buildUserParam(req); + UserInfoDTO userInfoDTO = userService.queryUserInfo(userInfoParam); + BaseRspDTO userBaseRspDTO = new BaseRspDTO(); + userBaseRspDTO.setKey("userInfoDTO"); + userBaseRspDTO.setData(userInfoDTO); + return userBaseRspDTO; + }; + + //bannerϢѯ + Callable bannerDTOCallableTask = () -> { + BannerParam bannerParam = buildBannerParam(req); + BannerDTO bannerDTO = bannerService.queryBannerInfo(bannerParam); + BaseRspDTO bannerBaseRspDTO = new BaseRspDTO(); + bannerBaseRspDTO.setKey("bannerDTO"); + bannerBaseRspDTO.setData(bannerDTO); + return bannerBaseRspDTO; + }; + + //labelϢѯ + Callable labelDTODTOCallableTask = () -> { + LabelParam labelParam = buildLabelParam(req); + LabelDTO labelDTO = labelService.queryLabelInfo(labelParam); + BaseRspDTO labelBaseRspDTO = new BaseRspDTO(); + labelBaseRspDTO.setKey("labelDTO"); + labelBaseRspDTO.setData(labelDTO); + return labelBaseRspDTO; + }; + + List> taskList = new ArrayList(); + taskList.add(userInfoDTOCallableTask); + taskList.add(bannerDTOCallableTask); + taskList.add(labelDTODTOCallableTask); + ExecutorService executor = Executors.newFixedThreadPool(10); + List resultList = parallelInvokeCommonService.executeTask(taskList, 3, executor); + if (resultList == null || resultList.size() == 0) { + return new AppHeadInfoResponse(); + } + + UserInfoDTO userInfoDTO = null; + BannerDTO bannerDTO = null; + LabelDTO labelDTO = null; + + // + for (int i = 0; i < resultList.size(); i++) { + BaseRspDTO baseRspDTO = resultList.get(i); + if ("userInfoDTO".equals(baseRspDTO.getKey())) { + userInfoDTO = (UserInfoDTO) baseRspDTO.getData(); + } else if ("bannerDTO".equals(baseRspDTO.getKey())) { + bannerDTO = (BannerDTO) baseRspDTO.getData(); + } else if ("labelDTO".equals(baseRspDTO.getKey())) { + labelDTO = (LabelDTO) baseRspDTO.getData(); + } + } + + System.out.println("вѯappҳϢ,ܺʱ?" + (System.currentTimeMillis() - beginTime)); + return buildResponse(userInfoDTO, bannerDTO, labelDTO); + } + +``` + +ϴ?С?ǷŻ?? ⼸```Callable```ѯ?DzҲԳȡһ?ôӼࡣ + +> ˵?ֱӽһ```BaseTaskCommand```?ʵ```Callable```ӿ?ѲѯûϢѯbannerϢlabelǩϢIJѯŽȥ + +? + +``` +public class BaseTaskCommand implements Callable { + + private String key; + private AppInfoReq req; + private IUserService userService; + private IBannerService bannerService; + private ILabelService labelService; + + public BaseTaskCommand(String key, AppInfoReq req, IUserService userService, IBannerService bannerService, ILabelService labelService) { + this.key = key; + this.req = req; + this.userService = userService; + this.bannerService = bannerService; + this.labelService = labelService; + } + + @Override + public BaseRspDTO call() throws Exception { + + if ("userInfoDTO".equals(key)) { + UserInfoParam userInfoParam = buildUserParam(req); + UserInfoDTO userInfoDTO = userService.queryUserInfo(userInfoParam); + BaseRspDTO userBaseRspDTO = new BaseRspDTO(); + userBaseRspDTO.setKey("userInfoDTO"); + userBaseRspDTO.setData(userInfoDTO); + return userBaseRspDTO; + } else if ("bannerDTO".equals(key)) { + BannerParam bannerParam = buildBannerParam(req); + BannerDTO bannerDTO = bannerService.queryBannerInfo(bannerParam); + BaseRspDTO bannerBaseRspDTO = new BaseRspDTO(); + bannerBaseRspDTO.setKey("bannerDTO"); + bannerBaseRspDTO.setData(bannerDTO); + return bannerBaseRspDTO; + } else if ("labelDTO".equals(key)) { + LabelParam labelParam = buildLabelParam(req); + LabelDTO labelDTO = labelService.queryLabelInfo(labelParam); + BaseRspDTO labelBaseRspDTO = new BaseRspDTO(); + labelBaseRspDTO.setKey("labelDTO"); + labelBaseRspDTO.setData(labelDTO); + return labelBaseRspDTO; + } + + return null; + } + + + private UserInfoParam buildUserParam(AppInfoReq req) { + return new UserInfoParam(); + } + + private BannerParam buildBannerParam(AppInfoReq req) { + return new BannerParam(); + } + + private LabelParam buildLabelParam(AppInfoReq req) { + return new LabelParam(); + } +} +``` +?캯**Ƚ϶IJ**?```call()```?ж```if...else...```,һ֧?**ѯϢ**??ֵ```call```޸?**BaseTaskCommandĹҲҪ޸** + +> Ƿӡ?гif...else...ʱ?ǾͿԿʹ**ģʽ+ģʽ**Ż + +ʵ?? + +``` + +public interface IBaseTask { + + //ÿkey? + String getTaskType(); + + BaseRspDTO execute(AppInfoReq req); + +} + +//ûϢ +@Service +public class UserInfoStrategyTask implements IBaseTask { + + @Autowired + private IUserService userService; + + @Override + public String getTaskType() { + return "userInfoDTO"; + } + + @Override + public BaseRspDTO execute(AppInfoReq req) { + UserInfoParam userInfoParam = userService.buildUserParam(req); + UserInfoDTO userInfoDTO = userService.queryUserInfo(userInfoParam); + BaseRspDTO userBaseRspDTO = new BaseRspDTO(); + userBaseRspDTO.setKey(getTaskType()); + userBaseRspDTO.setData(userBaseRspDTO); + return userBaseRspDTO; + } +} + +/** + * bannerϢʵ + **/ +@Service +public class BannerStrategyTask implements IBaseTask { + + @Autowired + private IBannerService bannerService; + + @Override + public String getTaskType() { + return "bannerDTO"; + } + + @Override + public BaseRspDTO execute(AppInfoReq req) { + BannerParam bannerParam = bannerService.buildBannerParam(req); + BannerDTO bannerDTO = bannerService.queryBannerInfo(bannerParam); + BaseRspDTO bannerBaseRspDTO = new BaseRspDTO(); + bannerBaseRspDTO.setKey(getTaskType()); + bannerBaseRspDTO.setData(bannerDTO); + return bannerBaseRspDTO; + } +} + +... +``` +Ȼ⼸ʵ?ô```spring```? ǿʵ```ApplicationContextAware```ӿ?ѲԵʵע뵽һmap?Ȼ󷽲ͬIJ(DTO??ȥʵͬIJáʵڹģʽ˼?? + +``` +/** + * Թ + **/ +@Component +public class TaskStrategyFactory implements ApplicationContextAware { + + private Map map = new ConcurrentHashMap(); + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + Map tempMap = applicationContext.getBeansOfType(IBaseTask.class); + tempMap.values().forEach(iBaseTask -> { + map.put(iBaseTask.getTaskType(), iBaseTask); + }); + } + + public BaseRspDTO executeTask(String key, AppInfoReq req) { + IBaseTask baseTask = map.get(key); + if (baseTask != null) { + System.out.println("ʵִ"); + return baseTask.execute(req); + } + return null; + } +} +``` + +˲Թ```TaskStrategyFactory```?ٻŻ```BaseTaskCommand```Ĵ롣ĹѾҪ```IUserService userService, IBannerService bannerService, ILabelService labelService```?ֻҪԹ```TaskStrategyFactory```ɡͬʱҲҪ```if...else...```ж?òԹ```TaskStrategyFactory```漴ɡŻĴ? + +``` +public class BaseTaskCommand implements Callable { + + private String key; + private AppInfoReq req; + private TaskStrategyFactory taskStrategyFactory; + + public BaseTaskCommand(String key, AppInfoReq req, TaskStrategyFactory taskStrategyFactory) { + this.key = key; + this.req = req; + this.taskStrategyFactory = taskStrategyFactory; + } + + @Override + public BaseRspDTO call() throws Exception { + return taskStrategyFactory.executeTask(key, req); + } +} +``` + +```appҳϢ```ѯ?ͿŻ?? + +``` +public AppHeadInfoResponse parallelQueryAppHeadPageInfo2(AppInfoReq req) { + long beginTime = System.currentTimeMillis(); + System.out.println("ʼвѯappҳϢ?հ汾??ʼʱ?" + beginTime); + List> taskList = new ArrayList(); + //ûϢѯ + taskList.add(new BaseTaskCommand("userInfoDTO", req, taskStrategyFactory)); + //bannerѯ + taskList.add(new BaseTaskCommand("bannerDTO", req, taskStrategyFactory)); + //ǩѯ + taskList.add(new BaseTaskCommand("labelDTO", req, taskStrategyFactory)); + + ExecutorService executor = Executors.newFixedThreadPool(10); + List resultList = parallelInvokeCommonService.executeTask(taskList, 3, executor); + + if (resultList == null || resultList.size() == 0) { + return new AppHeadInfoResponse(); + } + + UserInfoDTO userInfoDTO = null; + BannerDTO bannerDTO = null; + LabelDTO labelDTO = null; + + for (BaseRspDTO baseRspDTO : resultList) { + if ("userInfoDTO".equals(baseRspDTO.getKey())) { + userInfoDTO = (UserInfoDTO) baseRspDTO.getData(); + } else if ("bannerDTO".equals(baseRspDTO.getKey())) { + bannerDTO = (BannerDTO) baseRspDTO.getData(); + } else if ("labelDTO".equals(baseRspDTO.getKey())) { + labelDTO = (LabelDTO) baseRspDTO.getData(); + } + } + + System.out.println("вѯappҳϢ?հ汾?,ܺʱ?" + (System.currentTimeMillis() - beginTime)); + return buildResponse(userInfoDTO, bannerDTO, labelDTO); + } +``` + + +## 5. ˼ܽ + +ϴŻ?ѾܼǻûбŻ˼·ء +> ʵе??Ψһǵ```key```Ϊö?дַ```"userInfoDTO""bannerDTO"?"labelDTO"```?```CompletionService```?ЩСϲ```CompletableFuture```ʵвеá + +ĴѧЩ֪ʶ? +1. Żӿ?ijЩ?ʹòеô洮С +2. ʵе? ʹ```CompletionService``` +3. ѧĺ˼ά? ճ?Ҫѧȡͨõķ߹ߡ +4. ģʽ͹ģʽӦ + +ĵĻ?ģʽ黹Ǻ܏ϸ?Ȼһƪ?ҽ?ڏд?ȡģʽĹȻ?ҪĵĻ?ԹעҵĹں?**ݵСк**?ҵϵʽ + + + + + From e8ce3c8cd9f26c0383fdab490c3f7557ae38aeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ717 20:56:21 +0800 Subject: [PATCH 09/52] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 214c8ab..8787f10 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,4 @@ ## ??????????谢谢大叱??????????~ ![](https://user-gold-cdn.xitu.io/2020/7/15/1735311bf66cecd8?w=430&h=580&f=jpeg&s=35456) +![image](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) From 17f5ef1c1964e24a4029654f3e4e0af261dd2a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ717 20:56:43 +0800 Subject: [PATCH 10/52] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 8787f10..1c37b37 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,4 @@ - ???????ٸ??6????好9???˻??注???????????起6?????~~ -## ??????????谢谢大叱??????????~ -![](https://user-gold-cdn.xitu.io/2020/7/15/1735311bf66cecd8?w=430&h=580&f=jpeg&s=35456) - ![image](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) From cce5493aedfd9f6942ddefdd7a7eeecf3e8dc4dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ717 20:57:25 +0800 Subject: [PATCH 11/52] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c37b37..6290566 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ 徏鿡?????????????9 -- ???????ٸ??6????好9???˻??注???????????起6?????~~ +- ???????ٸ??6????好9???˻??注??????????????????维???????????干货???????起6?????~~ ![image](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) From 3f3cc5fb02dfa5c91d72868f73970d7e02f75ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ717 20:57:38 +0800 Subject: [PATCH 12/52] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6290566..508f437 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ 徏鿡?????????????9 -- ???????ٸ??6????好9???˻??注??????????????????维???????????干货???????起6?????~~ +- ???????ٸ??6????好9???˻??注????????????????????维???????????干货???????起6?????~~ ![image](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) From 59a6aed48a8c6f9e86f13e5551befc21628f22f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 07:24:54 +0800 Subject: [PATCH 13/52] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 508f437..7327214 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ ?????份??级菵????Java?????+???????+??常工??????????????????????9?????????????????????????大叱????????offer +? ??右?????? Star????????ٺ??????干货????? ? + +?????????????9??????家大????????????????????CSDN???主?? + +- ??????精??100?(https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497536&idx=1&sn=3ac9934f607d79e51457fd01f4c8a4ef&chksm=cf222869f855a17fc30c744e5b7ccdeca407f3b7ddcca46bae1c93b1436ffc6fe417ccb8aef4&token=1990771297&lang=zh_CN#rd) + + ## 丏溺??????? 徏鿡?????????????9 From 3c57038967fffc6b22563b6017a71c94ab89ff48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 07:46:54 +0800 Subject: [PATCH 14/52] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ???竏??维?? --- .../README.md" | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 "345220216347253257346200235347273264347257207/README.md" diff --git "a/345220216347253257346200235347273264347257207/README.md" "b/345220216347253257346200235347273264347257207/README.md" new file mode 100644 index 0000000..c23117d --- /dev/null +++ "b/345220216347253257346200235347273264347257207/README.md" @@ -0,0 +1,9 @@ +## ˼άƪ?? + +ں?ݵСк + +- [˼?ƪ?ƺýӿڵ36?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499388&idx=1&sn=49a22120a3238e13ad7c3d3b73d9e453&chksm=cf222155f855a8434026b2c460d963c406186578c2527ca8f2bb829bbe849d87a2392a525a9b&scene=178&cur_album_id=2396778860463161350#rd) +- [˼άƪ?ְֽдһеģ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499504&idx=1&sn=bb62226e6cffeb1859efb0100c796050&chksm=cf2221d9f855a8cf23f75cb51c1a407578fb0f279e96ddae74b5b8c84f2f5dc71762425b17cb&scene=178&cur_album_id=2396778860463161350#rd) +- [˼άƪ?ӦģʽŻ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499524&idx=1&sn=cb4cc48a3e8d9a54b0ebc4c7ad517f14&chksm=cf22202df855a93b37327856ee88b0bf5f6ed7da67964438fc2cf747666260d5026dd62d4a17&scene=178&cur_album_id=2396778860463161350#rd) +- [˼άƪ:ͳһУ顢쳣](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499708&idx=1&sn=808979c495acd9344732d147c0ad40d3&chksm=cf222095f855a983f31d5f6abf401fa3b5967f8839c6775d35cefc5cc6244fb4135563ff1090&scene=178&cur_album_id=2396778860463161350#rd) +- [˼άƪ:γһ۲ģ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500159&idx=1&sn=a5328372e580b22c939a5b3084aef164&chksm=cf221e56f85597401e8c99b8dd1bc1af97fcf69207ceaa04c5c26e028ac47d1658b79ae32291&scene=178&cur_album_id=2396778860463161350#rd) From be59b4dc80220143cd5e2d17b31713149ddd9679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 08:56:53 +0800 Subject: [PATCH 15/52] =?UTF-8?q?Java=E5=9F=BA=E7=A1=80=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 "Java345237272347241200345255246344271240/README.MD" diff --git "a/Java345237272347241200345255246344271240/README.MD" "b/Java345237272347241200345255246344271240/README.MD" new file mode 100644 index 0000000..0a1609f --- /dev/null +++ "b/Java345237272347241200345255246344271240/README.MD" @@ -0,0 +1,21 @@ +## Java???????????中? +??? +????????????????9 +??? +- [????读??线??????工?????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488078&idx=1&sn=0a7cef472002f6582fd2354fba83706a&chksm=cf21cd67f85644716263c3a80cead9b7bb36d9677f6f8b06d0602077ece70fcafa9d20c1cffb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Synchronizedf???????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487942&idx=1&sn=bbc68d1b9da23bf6474378e310b1ef1b&chksm=cf21ceeff85647f9ad7a08226849fcba3f9481387d13b17a5787fb94027647de81c349f9e390&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?步????????CompletableFuture?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490456&idx=1&sn=95836324db57673a4d7aea4fb233c0d2&chksm=cf21c4b1f8564da72dc7b39279362bcf965b1374540f3b339413d138599f7de59a5f977e3b0e&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??常???????21?????踏????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488115&idx=1&sn=bdd4a4ca36bc7ea902106d058e8537fb&chksm=cf21cd5af856444cb36af600705615454b0aaa2b289b97ddb52d594556ac07a1915b73ecce19&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??Java?????????????????请??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488066&idx=1&sn=44b5a90be1b69d7938dbcf516d85f041&chksm=cf21cd6bf856447d869278386250f59a926881375df848e54f86a21682bdab50f9e09ca56fbd&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????JDK 5-15???????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488058&idx=1&sn=aab4d0dc9020cb62710086474ca90baf&chksm=cf21cd13f8564405040593daa45c62aec218e13f5ff42d679c59f768dd4fcc53ddcf34e0a454&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????????Git ??令??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488013&idx=1&sn=7011a51a347e3da2cf8f8540b4d9a5d6&chksm=cf21cd24f8564432d74bc13551ebdeae71a71ea31e339c7a8f1f42f181078b5192475d598626&token=162724582&ang=zh_CN&scene=21#wechat_redirect) +- [?????Java?????????????jstack??令f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487990&idx=1&sn=b5b3c565392f39e5ac517696603b2ed9&chksm=cf21cedff85647c960407dce77fe04d08e51f8c7332310ccacd925be5567c187aa761dd1d1c8&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487985&idx=1&sn=ead28c6c8d81b98e59603b848d250b30&chksm=cf21ced8f85647ce336f19016c7ff1936b21c81066815c8f28b830098716111548edb9767b21&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487980&idx=1&sn=2a9ce519f87a1ffe1511022e6724208e&chksm=cf21cec5f85647d357c79860171fc1799ef3c44a2bdd0716e8437e31708a17d9000b4224bd36&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????if-elseg??????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487970&idx=1&sn=c296bb03419adf93955c6d0f27e56b29&chksm=cf21cecbf85647dd0ef5160559bc0d524a4be004a28bc5d2770a43409e3b090123c0930cf047&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487964&idx=1&sn=24d7228cc10afc98c52dbf35da61a7b9&chksm=cf21cef5f85647e3d2b3f1e126cdc46d9e889d2e30c09716e0aea016beee3ca6d4c321cf60ae&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487963&idx=1&sn=a0b49cd49a3dd51b6736c9ffa0a5997a&chksm=cf21cef2f85647e49a4bdb43f27583f03fb9ec4719767512dc084edd05675599c3bec44251fb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?????????乱???????????????产???????????e?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487962&idx=1&sn=7424e843c80b228283fc08d4d24cc4bb&chksm=cf21cef3f85647e5a9c92d280624ad2564e885561a8b64cbf6722459f7c13da7421765321aa9&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??Java??????????????践????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487959&idx=1&sn=778114d611f18b0f307a3f3ab6cd9117&chksm=cf21cefef85647e84b77c0e46620e91cf5ff079785b58a7dc66e5ed7419e21e0da9180699617&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487946&idx=1&sn=57a86e1d2fe1a9ecf00594a0bb6baf5f&chksm=cf21cee3f85647f5cf2ba728cc0838923140130a18ad117e248cf9843460614fc855d556968a&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????????常????linux??令](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487954&idx=1&sn=6c04ff4edfcfea52a82795bcb9ed8efd&chksm=cf21cefbf85647ed8df72a23307315be5d1b3d4974c128f111bfdaa84da37cf7b49ff65c1112&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file From ea08f142d10bf19d867d95e10e45fbcc5e188d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 09:13:07 +0800 Subject: [PATCH 16/52] =?UTF-8?q?=E4=B9=A6=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 "Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" diff --git "a/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" "b/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" new file mode 100644 index 0000000..d01ff96 --- /dev/null +++ "b/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" @@ -0,0 +1,5 @@ +## Java???????????中? +??? +????????????????9 +??? +- [??Java?????????????????请??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488066&idx=1&sn=44b5a90be1b69d7938dbcf516d85f041&chksm=cf21cd6bf856447d869278386250f59a926881375df848e54f86a21682bdab50f9e09ca56fbd&token=162724582&lang=zh_CN&scene=21#wechat_redirect) From 307e6e9f4e45cc79468ee1b93b7effda87411a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 09:13:40 +0800 Subject: [PATCH 17/52] Update README.MD --- .../README.MD" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" "b/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" index d01ff96..5ee6e33 100644 --- "a/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" +++ "b/Java347250213345272217345221230351234200350246201347234213345223252344272233344271246/README.MD" @@ -1,4 +1,4 @@ -## Java???????????中? +## Java??????????????中? ??? ????????????????9 ??? From 4e853267e0bec5586cf9fb66d8615bc2bfd854b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 09:38:47 +0800 Subject: [PATCH 18/52] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E9=A2=98=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "Java351235242350257225351242230351233206347273223345217267/README.MD" diff --git "a/Java351235242350257225351242230351233206347273223345217267/README.MD" "b/Java351235242350257225351242230351233206347273223345217267/README.MD" new file mode 100644 index 0000000..78fbb48 --- /dev/null +++ "b/Java351235242350257225351242230351233206347273223345217267/README.MD" @@ -0,0 +1,31 @@ +## 1. ???????? + +??注????????????????9 +??? +- [oppo????16????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498750&idx=1&sn=19fe8b4fff28fe81db14e733053bbc74&chksm=cf2224d7f855adc1d0984980a4e3de31fe33329164a472ca8d8255a8a80b69b2e23850811323&token=2001057130&lang=zh_CN#rd) +- [?????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498316&idx=1&sn=7749b78293b7b2af51eda99844e08a56&chksm=cf222565f855ac7324232e2af459f8b6e6eb5fd5b272c2b29bda08cc579421b6704a0de94b2e&token=2001057130&lang=zh_CN#rd) +- [??菰?????15?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498171&idx=1&sn=f5a7ec25a569822be0f73fbcd413e8ba&chksm=cf222692f855af84fba419166fcd4235c0e78af3a2e1ec4c723a4efb1bd1ad6f8a5b9404c599&token=2001057130&lang=zh_CN#rd) +- [社??????21??????年工?经???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498084&idx=1&sn=96c8148cfeeeb16668ed9e03fa9131cc&chksm=cf22264df855af5b6e81b93738cca28989226a53ec702fcfaa0cc5004dded4208c5ee5ea844a&token=2001057130&lang=zh_CN#rd) +- [?份?TEL??????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497742&idx=1&sn=18765e7356f446a7f2521f45b467d5d3&chksm=cf222727f855ae31dd2029e3219814211336c41d9228d271a583d3691ddadca586529aca9302&token=2001057130&lang=zh_CN#rd) +- [???????????????15????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497256&idx=1&sn=3b799c2d514aa25e85a6faa60d639a0b&chksm=cf222901f855a017b73356b99b830b8800a7a9172fab891c5759d8dd69a270872ea9480c0b7c&token=2001057130&lang=zh_CN#rd) +- [????>????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495342&idx=1&sn=54e1c0c16a6467001524c34818025331&chksm=cf223187f855b89140db5ca429e6efc19d0111abf7f36b78a0ecd73b00fded1ff1e7ba32a6f1&token=2001057130&lang=zh_CN#rd) +- [???????????????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493270&idx=1&sn=1c78a81d6e1bd0f0fd947fe8c3a33e32&chksm=cf2239bff855b0a9627855f20a17799e0506eb7548a409bfa0ee0450328d7519ec70f7b962cc&token=2001057130&lang=zh_CN#rd) +??? +## 2. ??????????? +??? +- [Redis主???????????? Cluster???群?????竏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498254&idx=1&sn=6489360c3b226df9811e66cb40ec7656&chksm=cf222527f855ac3112628bcec7730064fee3fdbe869fbd0a7410c22766a0c036a7e5c1a69fa0&token=2001057130&lang=zh_CN#rd) +- [???以??????????衏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498625&idx=1&sn=0d7bd9d1b46eeff4c715a6761355e9b0&chksm=cf2224a8f855adbea8931c8e011711f6c70cffeef8ddf8b87729c710eacef11b46eef80fda36&token=2001057130&lang=zh_CN#rd) +- [?????????????MySQL???主??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497982&idx=1&sn=bb589329cceb5462fc41f66ec63dbf56&chksm=cf2227d7f855aec16dd4d3b3425c0401850eeaf2c9cdc82e82722d38a00c24ee9ccfa3353774&token=2001057130&lang=zh_CN#rd) +- [?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497847&idx=1&sn=29a32672b712e7dfadfa36c9902b2ec7&chksm=cf22275ef855ae484fb3f51a5726e9a4bc45222e8fbbd33631d177dc4b5619c36889ea178463&token=2001057130&lang=zh_CN#rd) +- [???????设??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497427&idx=1&sn=2ed160c9917ad989eee1ac60d6122855&chksm=cf2229faf855a0ecf5eb34c7335acdf6420426490ee99fc2b602d54ff4ffcecfdab24eeab0a3&token=2001057130&lang=zh_CN#rd) +- [???????就??o????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496788&idx=1&sn=f65ddd10d16d8376efa0037762153932&chksm=cf222b7df855a26bad76249e7b77e28da3097b226f9165d79f5031516d9c345827fca901559c&token=2001057130&lang=zh_CN#rd) +- [???????就??o??IO模???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496448&idx=1&sn=cd502f850290a25949dd4a11ac55a039&chksm=cf222c29f855a53f094bde2868900fa252b07385e73564e9ee9f0510cb4e74387d9d23ab67e6&token=2001057130&lang=zh_CN#rd) +- [???????就??o??MVCC???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495277&idx=1&sn=a1812febb4246f824ce54d778f672025&chksm=cf223144f855b8528ad6cce707dc3a1b4d387817bd751dfab4f79dda90c6640f9763d25f3f33&token=2001057130&lang=zh_CN#rd) +- [2W???20???Redis???????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494124&idx=1&sn=c185f7d999d5f006608d05707a8a7eea&chksm=cf2236c5f855bfd329c6e2ee27f23f8131ebcd312960190a10f1a819d67f07a21a08ad17f263&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?????????Redis???????????g`使??姿??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488142&idx=1&sn=79a304efae7a814b6f71bbbc53810c0c&chksm=cf21cda7f85644b11ff80323defb90193bc1780b45c1c6081f00da85d665fd9eb32cc934b5cf&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???????TCP??讏????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490868&idx=1&sn=96889bfe6a97f9200fa2d682cf2f5d89&chksm=cf21c21df8564b0b0757df584560a69340b1775fe1c70b867439565969ec3aed19c442ff4eeb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [2W??梳??50????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247492832&idx=1&sn=601fa1c340a313bc0f74bb75cdb6a95a&chksm=cf223bc9f855b2dfb8d0e74f3360e2edfe25c3a728fe17e9e80b6022340994fd9d9e1ca83ca8&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [ZooKeeper?????????????顶???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488047&idx=1&sn=4913c7e1c3b8835f7512d8dc6b845727&chksm=cf21cd06f8564410cce6121230256facb1ab3b5a9ed35579896f428d84bdea7b86836109d575&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [50???Java??????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488007&idx=1&sn=c5c16c8ec916c791e776216f3177c7e2&chksm=cf21cd2ef85644382a985e9fed1956d6ee60c86ce69e65f31f775318435fdb86bf368e26edf2&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [100???MySQL?????????????f???????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488000&idx=1&sn=1c38db7fd110bbcc1ffb2d72a56aaf25&chksm=cf21cd29f856443f25a3fe98ae8e888faceef9bee45df045969b2cffb105363dcc2a4480bb74&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [Spring ????63???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497672&idx=1&sn=6ff0350e23d014b29a47bdec79af9ef5&chksm=cf2228e1f855a1f70fa78d9bd85c53dfbe154c1325aa1e203e4c918132c430d51bb68e961eda&token=2001057130&lang=zh_CN#rd) \ No newline at end of file From 03d9f811710a455cc2d7143459b4ab7ab3690d44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 10:33:17 +0800 Subject: [PATCH 19/52] =?UTF-8?q?leetcode=E7=AE=97=E6=B3=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 "letecode350247243351242230347256227346263225344273213347273215/README.MD" diff --git "a/letecode350247243351242230347256227346263225344273213347273215/README.MD" "b/letecode350247243351242230347256227346263225344273213347273215/README.MD" new file mode 100644 index 0000000..921f58b --- /dev/null +++ "b/letecode350247243351242230347256227346263225344273213347273215/README.MD" @@ -0,0 +1,13 @@ +## leetcode??????中? + +??注????????????????9 + +- [???????就??o?????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247489016&idx=1&sn=bba3fb1a7a864b6ccefeb9f633751811&chksm=cf21cad1f85643c716c8c9396d3a6711f7722f8f81c8f40f5a91c525c98f73f5c476b7d49dd4&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488073&idx=1&sn=ec81b4a1f8b11ea59264b55e571fed91&chksm=cf21cd60f8564476952c5abb8ffa93fc38fde354a61ca5596e1875d35760383f3a92b2879e30&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???????就??o????解?????;????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487967&idx=1&sn=e75373dcb0507081c242ba018b42ca82&chksm=cf21cef6f85647e0cbf0b2072eb1264a44abcaa9f4a0621ef8954a1b1d6719560f7f4cbbce60&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????溏????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497665&idx=1&sn=39011296fa99eda839ab2bbe83a42cdf&chksm=cf2228e8f855a1fe8f059130dc0b3d9ad34431a27bbe7e16f508b7e9340c24e2e4dfd8b414c2&token=1990771297&lang=zh_CN#rd) +- [leetcode????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496003&idx=1&sn=8c40eb3e611514f3bafb8d6873c03fda&chksm=cf222e6af855a77ce2fc36d4e4fc02945286300206f43975e30bc23b65c9ca67b6a1ac9806d1&token=1990771297&lang=zh_CN#rd) +- [??????????????????此????大???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490681&idx=1&sn=0388da1492fe0fdfa3ed6b1a43511328&chksm=cf21c350f8564a466d89578f73886eb462c6dd485f42e7953f126be5f9af49b3fb0be3457d52&token=1990771297&lang=zh_CN#rd) +- [?????????+?并??????解??????;?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496038&idx=1&sn=96a1a665e43ee9e3337e3d941db49f1e&chksm=cf222e4ff855a75919f0be68e78472199c44d0e9d94de6d5bf621a892ba211738d6f4dbd53ac&token=1990771297&lang=zh_CN#rd) +- [?????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488116&idx=1&sn=aeec0553e2317bef76d158d2b0e0b5a5&chksm=cf21cd5df856444b8963efc2745bce6801df4bc547b679ae8366fa8c3cd293f1f7c60c18e4f6&token=1990771297&lang=zh_CN#rd) +- [?????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494506&idx=1&sn=1f13b0cc1f03af464e1063be8ef1cb57&chksm=cf223443f855bd5597898126d12c6039f64da47b8a95714018203ee5e453950c802ebecfabe1&token=1990771297&lang=zh_CN#rd) From 2a7556216eafa7e97eff49ac14b80e1c8bf52943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 10:35:11 +0800 Subject: [PATCH 20/52] =?UTF-8?q?Delete=20=E5=88=B7leetcode=E5=BF=85?= =?UTF-8?q?=E5=A4=87=E7=AE=97=E6=B3=95=20directory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04345210222350257246350247243.md" | 440 ------------------ ...45210222350257246350247243.md.bak" | 0 ...22345275222350257246350247243.md" | 380 --------------- 3 files changed, 820 deletions(-) delete mode 100644 "345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" delete mode 100644 "345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" delete mode 100644 "345210267leetcode345277205345244207347256227346263225/351200222345275222350257246350247243.md" diff --git "a/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" "b/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" deleted file mode 100644 index e8cc9b4..0000000 --- "a/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md" +++ /dev/null @@ -1,440 +0,0 @@ - -### ǰ - -ˢleetcodeʱ?̬滮Ŀ̬滮dzdz?Ҳм?һ󳧶dzϲʡһѧϰ̬滮·?вȷĵط?ӭָ?лл~ - -- ʲôǶ̬滮? -- ̬滮ĺ˼? -- һ߽̬滮 -- ̬滮Ľ· -- leetcode - - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01fdad6c74864d7da07193203c2dcbf4~tplv-k3u1fbpfcp-zoom-1.image) - - -ں?**ݵСк** - -### ʲôǶ̬滮? - - -̬滮?Ӣ?Dynamic programming? DP??һѧѧѧѧϢѧʹõ?ͨԭֽΪԼ򵥵ķʽ⸴ķ̬滮صӽṹʵ⡣ - -> dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems. - -϶άٿ?ое鏻ҡ˵?̬滮ʵ?һ?ǰһ?ֱֱӽȻ?𰸱?Լظ㡣ٸ𰸷?óԭһַ -> һЩ܏?ͨϵʽƳȻ?̬滮ڽÿһ?ظ,쳲оͿԿżľ䶯̬滮⡣ - - -### ̬滮˼? - -̬滮ĵ˼??**?ס?ظ** - -![̬滮ڼס](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d26f967ff6e447d291b0b196c4edaa07~tplv-k3u1fbpfcp-watermark.image) - -?ϱȽеһ? -> - A ? "1+1+1+1+1+1+1+1 =?" -> - A ? "ʽֵǶ" -> - B ? "8" -> - A : ʽд "1+" ? -> - A : "ʱʽֵΪ" -> - B : ܿó "9" -> - A : "ôô֪" -> - A : "ֻҪ8Ļϼ1" -> - A : "㲻¼?Ϊס˵һʽֵΪ8!̬滮㷨Ҳ˵ 'סĽʡʱ'" - -### һӴ߽̬滮 -- - -#### ݹ - -> leetcodeԭ?һֻһο1̨?Ҳ2̨סһ 10 ̨ܹж - -ЩСһμʱ?ܻеȦ?֪ôʵ?? -> - Ҫ?10̨?Ҫô9?Ȼ1̨ȥ;Ҫô8?Ȼһ2̨ȥ -> - ͬ?Ҫ?9̨?Ҫô8?Ȼ1̨ȥ;Ҫô7?Ȼһ2̨ȥ -> - Ҫ?8̨?Ҫô7?Ȼ1̨ȥ;Ҫô6?Ȼһ2̨ȥ - -n̨׵ǶΪf(n)??ȻͿԵó¹?ʽ? - -``` -f?10? = f?9?+f(8) -f (9) = f(8) + f(7) -f (8) = f(7) + f(6) -... -f(3) = f(2) + f(1) - -ͨùʽΪ: f(n) = f(n-1) + f(n-2) -``` - -f(2) f(1) ڶ? -- ֻ2̨ʱ??һֱ?ڶһ?Ȼһf(2) = 2; -- ֻ1̨ʱ?ֻһ?f?1?= 1? - - -˿õݹȥ? -``` -class Solution { - public int numWays(int n) { - if(n == 1){ - return 1; - } - if(n == 2){ - return 2; - } - return numWays(n-1) + numWays(n-2); - } -} -``` - -ȥleetcodeύһ??ʱ䏺 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3e0608ec89a246568e01c7ba4b8f50d8~tplv-k3u1fbpfcp-zoom-1.image) - - -Ϊʲôʱ?ݹʱ?Ȼ**ݹ**? - - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2dd95840552e4a7db9536884b7a9b558~tplv-k3u1fbpfcp-zoom-1.image) - -- Ҫԭ f(10)?Ҫȼ f(9) f(8) -- ȻҪ f(9)?Ҫ f(8) f(7)?Դơ -- һֱ f(2) f(1??ݹֹ - -ݹʱ临ӶȰ? - - -``` -ݹʱ临Ӷ = һʱ* -``` - -- һʱ = f?n-1?+f?n-2??ҲһӷIJ?ԸӶ O(1)? -- = ݹڵ?ݹܽڵ = 2^n-1?ǸӶO(2^n) - -??ݹⷨʱ临Ӷ = O(1) * O(2^n) = O(2^n)?ָ?ը?nȽϴĻ?ʱˡ - -عͷ?ϸ۲ŵݹ?ᷢڴظ?f?8??f?7?ظ3...ݹ㷨Чԭ?**ڴظ**? - -Ȼڴظ?ôǿȰѼõĴ𰸴?һ¼?ȵ´ҪĻ?ȥ¼һ??ֱȡͺ?¼ûвſʼ?ǾͿʡȥظĺʱ?Ǵ¼Ľⷨ - - - -#### ¼ĵݹⷨ?Զ?? - -һʹһһϣmap䵱**¼** -- һ?f?10?= f(9) + f(8)?f(9) f?8?Ҫ?Ȼټӵ¼?? - - - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/94484290462e45c799609b0a581b14b0~tplv-k3u1fbpfcp-zoom-1.image) - -- ڶ? f(9) = f?8?+ f?7??f?8?= f?7?+ f(6), Ϊ f(8) Ѿڱ¼?Կʡ?f(7),f?6?Ҫ?ӵ¼~ - - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/12900b17d77f4adfbdb71920f729d61a~tplv-k3u1fbpfcp-zoom-1.image) - - -? f(8) = f?7?+ f(6),f(8)?f(7),f?6?ȫڱ¼?ԶԼ - - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9a8c7ba6b5ae413799c6a33490bb1f8f~tplv-k3u1fbpfcp-zoom-1.image) - -?˱¼ݹ㷨?ݹɹͺͺɿ?? - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/18a78d6b99a84ff8a1df834f3c085014~tplv-k3u1fbpfcp-zoom-1.image) - -**¼**ĵݹ㷨?=ڵ=n?һ⻹O(1),Դ**¼**ĵݹ㷨ʱ临ӶO(n)?ô**¼**ĵݹ㷨ȥߣ?ijʱ⿩~?? - - - -``` -public class Solution { - //ʹùϣmap?䵱¼ - Map tempMap = new HashMap(); - public int numWays(int n) { - // n = 0 Ҳ1 - if (n == 0) { - return 1; - } - if (n <= 2) { - return n; - } - //жû?¼û - if (tempMap.containsKey(n)) { - //¼??ֱӷ - return tempMap.get(n); - } else { - // ¼û?ûм?ִеݹ,Ұѽ浽¼map?1000000007ȡ?leetcodeĿ涨? - tempMap.put(n, (numWays(n - 1) + numWays(n - 2)) % 1000000007); - return tempMap.get(n); - } - } -} -``` -ȥleetcodeύһ?ͼ?? - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e5f0fb1998c542dc8cb3826de800f443~tplv-k3u1fbpfcp-zoom-1.image) - -ʵ?ö̬滮⡣ - -#### Ե?ϵĶ̬滮 - -̬滮¼ĵݹⷨ˼?һµ?Ǽظ?ʱ临ӶҲDzࡣ? -- ¼ĵݹ?Ǵf(10)f(1???ҲΪ**Զ?**Ľⷨ -- ̬滮ӽСĽ?ɽ?𲽾߳ϴĽ?Ǵf(1)f(10????ԳΪ**Ե?**Ľⷨ - - -̬滮м?**ӽṹ״̬תƷ̡߽硢ص**? -- f(n-1)f(n-2) Ϊ f(n) ӽṹ -- f(n)= f?n-1?+f?n-2?ͳΪ״̬תƷ -- f(1) = 1, f(2) = 2 DZ߽ -- f(10)= f(9)+f(8),f(9) = f(8) + f(7) ,f(8)ص⡣ - -Ե?ϵĽⷨ?f(1)f(10?????DzֱһforѭͿԽ?? - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8e21b14d47e64afa958506d49972827b~tplv-k3u1fbpfcp-zoom-1.image) - -¼ĵݹⷨ?ռ临ӶO(n)??ϸ۲ͼ?Է?f?n?ֻǰ?ֻҪab洢?Ϳ?˿ռ临ӶO(1)Ϳ - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8b202b2364eb4aae9122cfa8474c045e~tplv-k3u1fbpfcp-zoom-1.image) - -̬滮ʵ? - -``` -public class Solution { - public int numWays(int n) { - if (n<= 1) { - return 1; - } - if (n == 2) { - return 2; - } - int a = 1; - int b = 2; - int temp = 0; - for (int i = 3; i <= n; i++) { - temp = (a + b)% 1000000007; - a = b; - b = temp; - } - return temp; - } - } -``` - -### ̬滮Ľ· - -#### ʲôԿʹö̬滮? - -> һ?԰пܵĴٳ?ٳ?ص?ͿԿʹö̬滮 - -һЩֵij?**СС༭롢⡢Ǯ**ȵ?Ƕ̬滮ľӦó - - -### ̬滮Ľ˼· - - -̬滮ĺ˼?**?ס?ظ㡣** Ҷ̬滮һ㶼Ե?ϵ?˵?****?ܽһ̬滮˼·? - -- ٷ -- ȷ߽ -- ҳ?ȷӽṹ -- д״̬תƷ - - -#### 1. ٷ - - -- ̨1ʱ?һ?f?1? =1 -- ֻ2̨ʱ??һֱ?ڶһ?Ȼһf(2) = 2; -- ̨3ʱ??3̨?Ҫô2?Ȼ1̨ȥ?Ҫô 1?Ȼһ 2 ̨ȥf(3) = f(2) + f(1) =3 -- ̨4ʱ??3̨?Ҫô3?Ȼ1̨ȥ?Ҫô 2?Ȼһ 2 ̨ȥf(4) = f(3) + f(2) =5 -- ̨5ʱ...... - -![Ե?ϵĶ̬滮](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/29cd6d0d31514336baf9905f8084a624~tplv-k3u1fbpfcp-zoom-1.image) - - - -#### 2. ȷ߽ - -ͨٷ?Ƿ?̨1ʱ2ʱ?ȷ֪f?1? =1?f(2) = 2?̨n>=3ʱ?Ѿʏf(3) = f(2) + f(1) =3?f?1? =1?f(2) = 2׵ı߽硣 - - -#### 3. ҹ?ȷӽṹ - -n>=3ʱ?Ѿʏ f(n) = f(n-1) + f(n-2) ??f(n-1)f(n-2) Ϊ f(n) ӽṹʲôӽṹ?ôһ? - -> һ̬滮?ʵһ⡣赱ǰ߽f(n),ӽṹҪ f(n-k) ,ӽṹʾתƵn״̬ŵ,ľûйϵ,úľ߰ĵʹǰľֲŽһ - - -#### 4? д״̬תƷ - -ͨǰ3?ٷ?ȷ߽?ӽṹ?ǾͿԵó״̬תƷ? - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4fb4cd7257ff4fcbac9d87be96f353bd~tplv-k3u1fbpfcp-zoom-1.image) - -#### 5. ʵ - -ʵʱ?һעӵϱ?Ȼע±߽?ռ临Ӷ?ҲͲ̬滮иܵ?ʵʱ?Կʵοһ? - - -``` -dp[0][0][...] = ֵ߽ -for(״̬1 ?״̬1ֵ){ - for(״̬2 ?״̬2ֵ){ - for(...){ - //״̬תƷ - dp[״̬1][״̬2][...] = ֵ - } - } -} -``` - - -### leetcode - -һһleetcodeĿ - -> һ nums ?ҵϸеijȡ - -ʾ 1? - -``` -?nums = [10,9,2,5,3,7,101,18] -?4 -? [2,3,7,101]?˳Ϊ 4 -``` - -ʾ 2? - - -``` -?nums = [0,1,0,3,2,3] -?4 -``` - -ǰ϶̬滮Ľ˼·? - -- ٷ -- ȷ߽ -- ҹ?ȷӽṹ -- ״̬תƷ - - -#### 1.ٷ - - -Ϊ̬滮?˼?**?ס?ظ㡣** ˼ԭ?**num[i]гʱ**?˼****?ԭǷ****num[i-1]гй? - -##### Զ?ϵ - -۲??ȻйϵģnǻII?v?**Ե?**ԭ?ʾ1?ֻһԪؿʼ - -- numsֻһԪ10ʱ?[10],1. -- numsҪһԪ9ʱ?[10][9],1 -- numsټһԪ2ʱ?[10][9][2],1 -- numsټһԪ5ʱ?[2,5],2 -- numsټһԪ3ʱ?[2,5][2,3],2 -- numsټһԪ7ʱ?,[2,5,7][2,3,7],3 -- numsټһԪ101ʱ?[2,5,7,101][2,3,7,101],4 -- numsټһԪ18ʱ?[2,5,7,101][2,3,7,101][2,5,7,18][2,3,7,18],4 -- numsټһԪ7ʱ,[2,5,7,101][2,3,7,101][2,5,7,18][2,3,7,18],4. - -##### ҹ? -ͨ?ǿ**һ**? - -¼һԪnums[i], Ҫô**nums[i]βĵ**?Ҫô**nums[i-1]**?DzǺܿ?nums[i]Ѿ**** nums[i-1]йˡ - -``` -ԭnums[i] = nums[i-1]/nums[i]β -``` - -DzǸоɹһ?**ΰnums[i]βĵҲתΪӦ**?Ҫnums[i]βĵҲnums[i-1]йؾͺˡֻnums[i]β?ǰnum[j]?0= - nums[3]=5,```5```βо```[2,5]```,Ϊ±```03```?ֻҵ```[2]``````5```С?Ծ```[2]+[5]```?```dp[4]=2``` -> - nums[4]=3,```3```βо```[2,3]```,Ϊ±```04```?ֻҵ```[2]``````3```С?Ծ```[2]+[3]```?```dp[4]=2``` -> - nums[5]=7?```7```βо```[2,5,7]``````[2,3,7]```,Ϊ±```05```?ҵ```2,53```7С?Ծ```[2,7],[5,7],[3,7],[2,5,7][2,3,7]```Щ?о```[2,5,7][2,3,7]```?```5```β```3```β+[7]??**```dp[5]=3 =dp[3]+1=dp[4]+1```** - - -?Ȼ⸏ɣһ?nums[i]βnums -- j[0?i-1],num[i]>num[j]Ļ??dp(i) =max(dp(j))+1? - -#### 򵥵ı߽ - -numsֻһԪʱ?еijdp(1)=1,numsԪʱ?dp(2) =21? -˱߽dp(1)=1 - -#### ȷӽṹ - -ٷ?ǿԵó?µŽṹ? - -``` -dp(i) =max(dp(j))+1?j[0?i-1],num[i]>num[j] -``` -**max(dp(j))** ӽṹ - -#### ״̬תƷ - -ͨǰ?ǾͿԵó״̬תƷ? - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/457ce281c1ec4e91b8c868aa593e41b6~tplv-k3u1fbpfcp-zoom-1.image) - -num[i]о? -``` - =max(dp[i]) -``` - - - - -#### ʵ - -``` -class Solution { - public int lengthOfLIS(int[] nums) { - if (nums.length == 0) { - return 0; - } - int[] dp = new int[nums.length]; - //ʼDZ߽ - dp[0] = 1; - int maxans = 1; - //Ե?ϱ - for (int i = 1; i < nums.length; i++) { - dp[i] = 1; - //±0i - for (int j = 0; j < i; j++) { - //ҵǰnums[i]Сnums[j],dp[i]= dp[j]+1 - if (nums[j] < nums[i]) { - //ΪжСnums[i]?Ҳǻڶ?Ǿȡŵdp[i] - dp[i] = Math.max(dp[i], dp[j] + 1); - } - } - //dp[i]?dpǸnums - maxans = Math.max(maxans, dp[i]); - } - return maxans; - } -} -``` - - - - - - - - - - - - - diff --git "a/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" "b/345210267leetcode345277205345244207347256227346263225/347234213344270200351201215345260261347220206350247243357274232345212250346200201350247204345210222350257246350247243.md.bak" deleted file mode 100644 index e69de29..0000000 diff --git "a/345210267leetcode345277205345244207347256227346263225/351200222345275222350257246350247243.md" "b/345210267leetcode345277205345244207347256227346263225/351200222345275222350257246350247243.md" deleted file mode 100644 index fb5ecdb..0000000 --- "a/345210267leetcode345277205345244207347256227346263225/351200222345275222350257246350247243.md" +++ /dev/null @@ -1,380 +0,0 @@ -### ???? -????????????常??????????????????论??????????????????????????????????????????????常工??举???计??件夹大???f??xml???件?????????????????????????????????????ٸ???????????????????经常菰???以?????????????????????????大叱?起6???????~ - -- ???????? -- ??????????? -- ?????????????系 -- ???????????? -- ????i?????? -- leetcode???????? -- ?????????????????以??e???? - - -**????????????????9** - -### ???????? - -??????????????????????????????????????d???类??????????e???????????????????????????为?????????????????????????????????????????丏溺?????常形\??大叱?????? - -> ???????????????????就???????????以????????????就?????为??i???????????使??????????????????????????????????i???????????????????????????笥??????????笥????????????????????????????????????????????????????i??????????????????????d??????走???尽头???????????????????????????????????每?????????????????????????d????????????? - -?????水?????????????g??????????? -``` -public int sum(int n) { - if (n <= 1) { - return 1; - } - return sum(n - 1) + n; -} -``` - -### ??????????? - -?????????????两个???????????,?止?>??????????: -- ????????????????˻???d?????????????????????????f??????????????????????????????????? -- ?止?>??????须??????止????>????????????????????????? - -????以??demog????????????????????? - -![](https://imgkr2.cn-bj.ufileos.com/94f250ad-41ea-4760-ae79-060f91605aeb.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=gQGMVnPTDwM%252F5AX2OrH%252F0ugG9MA%253D&Expires=1602691176) - - -### ?????????????系 -????????????????˻???d??????????????????????????ٸ???便读??????????好???i?????????以??g????计??sum?n=3??????????????? -![](https://imgkr2.cn-bj.ufileos.com/d4f09883-727b-44b6-90e0-dfad9d768b8c.jpg?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=V%252BDCQxqTa24HsCxQcooMJ%252FzuOHc%253D&Expires=1602692111) - - -为????叱??????d???????以????? ????sum?n=5?????????????????? -![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f587c37fea484be192fec7710634ec47~tplv-k3u1fbpfcp-zoom-1.image) - -- 计??sum?5????????sum?5?????????????????sum?5???????为??????sum?4???????????????止?>sum?n=1?=1?就?????????? -- sum?1?????????sum?2????????????sum?3???? -- ?????????,sum?1?就????????????sum?5?????????????????此??????˻???d????????????~ - - -### ??????????????????? -???????????以˻??????使???????解???????????????????????????????????? -- ???????? -- ???????深度 -- ?诺?????? -- ???波?e?????? -- ???????????并???????治????使???????? -- ?????????件??f??xml???? - -### ????i?????? -e????????????步????????????? -- 笥??步???????????? -- 笥??步??寻?????止?> -- 笥??步????????????价?系? - -?????i????????h???????象????以????????????????~ - -#### 1.?????????? -???????????就?????????????????????????????叹??说???????????????????????????????????e?????????????????????就???n??????????? -``` -//n????????n为大?0?????????? -int factorial (int n){ - -} -``` - -#### 2.寻?????止?> -????????????????就????须??????止????>????????????????????????????以????????????e????????????就???寻?????止?>????????????????????n=1????????????????????????˻跳?循??????n=1就˻?为???????止?>???? -``` -//n????????n为大?0?????????? -int factorial (int n){ - if(n==1){ - return 1; - } -} -``` - -#### 3.??????????价?系? -???????**????**?就?????????˻???为??类????叱???e????????????**?????????????????˻???????????系??????????????价?系????5骤就?价??寻??????????????????系??????????????????;达???**?????????????就˻?? f(n) = n * f(n-1), ???此??????????????序g??就˻?????????????? -``` -int factorial (int n){ - if(n==1){ - return 1; - } - return n * factorial(n-1); -} -``` -**???????**???????????????????价?系??????????????????就?楣导???????????以???????秏⴯???????????????????~ - -### leetcode???????? - -???????????leetcode?????????????????~ -> ??????桦????????????https://leetcode-cn.com/problems/invert-binary-tree/ - -**?????** 翻转?棵??????????? - -????? -``` - 4 - / \ - 2 7 - / \ / \ -1 3 6 9 -``` -????? -``` - 4 - / \ - 7 2 - / \ / \ -9 6 3 1 -``` - -???以????以?????i???????????? - -**1. ??????????** - -???????????????????????????????????????????翻转?????以?????˻??为?? -``` -//翻转????????? -public TreeNode invertTree(TreeNode root) { -} - -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode(int x) { val = x; } - * } - */ -``` - -**2.寻?????止?>** - -?棵????????????轥???????????????????为null???????????????为??????????????????????此???????止?>就??? -``` -//翻转????????? -public TreeNode invertTree(TreeNode root) { - if(root==null || (root.left ==null && root.right ==null)){ - return root; - } -} -``` - -**3. ??????????价?系?** - -??????????翻转?????????????˻??????为?????????????轥???????????????????????????翻转?????????????????????˻??????为??翻转????????????????以??????????????????????????翻轥?叶???????为止?????????????d??????~ -![](https://imgkr2.cn-bj.ufileos.com/938b0fcf-7ab2-4c8f-833f-382be7f8b46d.jpg?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=9BiTdqNsNnz%252FqynFWb52CMQkMnU%253D&Expires=1602692880) - - -???????翻转??????为4???????就???**翻转?????????????????为2??????????(??????为7?**????就???????**???**???????? -![](https://imgkr2.cn-bj.ufileos.com/381538fe-fe34-4cae-9d1e-b5894ea542b2.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=HK51fa4jYvucnu6r3829BqFWcys%253D&Expires=1602693025) - - -???????????????为2?????????????????????????继续**翻转?????????????????为1?????????????????为3?**??????为?????1???3????**?????????**?????以就???????????????????**???**?????~ - -![](https://imgkr2.cn-bj.ufileos.com/c9195723-d803-4b76-9cb3-bec8192a696f.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=n5Ct31iSBnMmK2HJ7kB0I6ZhEYs%253D&Expires=1602693145) - -?????????????为7??????????????????????????翻转**?????????????????为6?????????????????为9?**??????为?????6???9?????????????????以??????????? - -![](https://imgkr2.cn-bj.ufileos.com/63333c60-747b-45d3-a8eb-dacf0cf36231.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=8NTb2Fj1PBlwVIxwe1InO5YqoWg%253D&Expires=1602693197) - - - -?????????????为2??????????(??????为7???被翻转??????????5骤就**????**?????????????翻转??????任?就?????~ - -![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/afada1b801734cdc899e896b0816b63f~tplv-k3u1fbpfcp-watermark.webp) - -?????**??????系?**就??? -``` -invertTree?root?= invertTree?root.left? + invertTree?root.right?; -``` - -??????容???˻???以?g??? -``` -//翻转????????? -public TreeNode invertTree(TreeNode root) { - if(root==null || (root.left ==null && root.right ==null){ - return root; - } - //翻转?????? - TreeNode left = invertTree(root.left); - //翻转?????? - TreeNode right= invertTree(root.right); -} -``` -????g????????????????就?⿻轥???棵???????????????????交??????????????????? -``` - root.left = right; - root.right = left; -``` - -???此??leetcode??????????????**????e?代???**??? -``` -class Solution { - public TreeNode invertTree(TreeNode root) { - if(root==null || (root.left ==null && root.right ==null)){ - return root; - } - //翻转?????? - TreeNode left = invertTree(root.left); - //翻转?????? - TreeNode right= invertTree(root.right); - //??????交????~ - root.left = right; - root.right = left; - return root; - } -} -``` -???????e?代????leetcode???交???????????~ - - -![](https://imgkr2.cn-bj.ufileos.com/3c9bc7ba-1677-4b8b-a389-e7177fd2b747.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=oNJFxSVWmku%252FMg%252BKlGHop%252BQ%252BxIw%253D&Expires=1602693611) - - -### ?????????????? -- ?????????级太??导???溢???? -- ????????计???导???????? - -#### ???溢???? -- 每?次?????????????????举?????空??????每??????????容??????????????? -- ????????????级太?????就??????????容???????导?????????溢??? -- ????????以??????????????????????类似??????????????????次???????????深度就????深???????????容????????????? - -**g???????** -``` -/** - * ???????溢???? - */ -public class RecursionTest { - - public static void main(String[] args) { - sum(50000); - } - private static int sum(int n) { - if (n <= 1) { - return 1; - } - return sum(n - 1) + n; - } -} -``` -**??????:** -``` -Exception in thread "main" java.lang.StackOverflowError - at recursion.RecursionTest.sum(RecursionTest.java:13) -``` - -????e??????溢?????????????**??????????????**???????????????????????次???????????????????????**??JVM??????空????**??????????????e????????????**????为???????**???~ - -#### ????计???导???????????? -???以?????????????????????跳?????????????次˻跳??1级台?????˻跳??2级台????该?????跳???? n 级???????????跳????? - -?大????菶???????????容??就??以?????g???e??? -``` -class Solution { - public int numWays(int n) { - if (n == 0){ - return 1; - } - if(n <= 2){ - return n; - } - return numWays(n-1) + numWays(n-2); - } -} -``` - -?????????leetcode???交????就?????????????????????? - - -![](https://imgkr2.cn-bj.ufileos.com/47049001-7fae-4c98-8f4c-2e55aca367f3.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=xELiHeOso7vAsXwthfHEIDarVGs%253D&Expires=1602693967) - - -为?????????????????????????????????????????**???????**??????? - -![](https://imgkr2.cn-bj.ufileos.com/9539296a-f5b1-433e-94ba-2e23eddfc409.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=Rzlo2ChPE7UEkCSJhbMNTBbtfaA%253D&Expires=1602694031) - - -- ?计????????? f(10)?就??????计?????????? f(9) ??? f(8) -- ?????计?? f(9)????????????????? f(8) ??? f(7)?以4类楣??? -- ????? f(2) ??? f(1?????????????止?? - -**????????????? = e???????????*???????** -- ????????? = f?n-1?+f?n-2???就??????????????????以???????? **O(1)**? -- ??????? = ???????????????????????????????????? = 2^n-1????以????????**O(2^n)**??? - -???此????????跳???????f?????????????? = O(1) * O(2^n) = O(2^n)?就?????级??????**????n??大?????????e????**??? - -?????????????????????????**大??????计??**???f?8??????两??f?7?????计???3?...???以??????????????????????就???????大?????????计??? - -**??d???????e????????????** - -????????大??????计?????d?????以˻??????计??好??????????????????????????次????????????**???**??????????????就?桦???就好?????没?????????计?????e?˻????????????计???????????????就??**????????f??** - -???以?????**????????????f??**???~ - -??????????????????????map??????**???**??? - -????f(10)?e???**???**????以???????????????? - -**笥???**?f?10?= f(9) + f(8)?f(9) ???f?8??????计???????????????????????举????? - -![](https://imgkr2.cn-bj.ufileos.com/22fe0dc0-136e-4e8d-9b54-7f1ff2a9d066.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=gJl54y4g86XMhK2K1ZbaqmVl94Y%253D&Expires=1602694255) - - -**笥??步??** f(9) = f?8?+ f?7??f?8?= f?7?+ f(6), ???? f(8) 已????????举???????以˻???????f(7),f?6??????计?????????????????~ - -![](https://imgkr2.cn-bj.ufileos.com/f9b26b22-c745-4bad-b14d-d8b2b51075f4.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=RkOd5Zj5Wwqonn63eXfoWqStvx4%253D&Expires=1602694275) - - -**笥??步??** f(8) = f?7?+ f(6),????f(8)?f(7),f?6??????????????????以?˻???????? -![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ec535ab8a0d3401eae5cb041dabac221~tplv-k3u1fbpfcp-watermark.image) - -???以?????????????????????????????????????????????? -![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5b78faafe49b4ee0ab939194459cf386~tplv-k3u1fbpfcp-watermark.image) - -??????????????????????????就?n??e??????????????O(1),????**????????????????????????????????O(n)**??????????????以???????????????????????代????e?????????跳???????~?g????? - -``` -public class Solution { - //????map?????????????? - Map tempMap = new HashMap(); - public int numWays(int n) { - // n = 0 ??1? - if (n == 0) { - return 1; - } - if (n <= 2) { - return n; - } - //????????没??????????????????没?? - if (tempMap.containsKey(n)) { - //????????????????桦???? - return tempMap.get(n); - } else { - // ???没?????没???计????????????计??,并?????????????????map举???1000000007?????????leetcode?????????? - tempMap.put(n, (numWays(n - 1) + numWays(n - 2)) % 1000000007); - return tempMap.get(n); - } - } -} -``` - -?leetcode???交?????????稳??? - -![](https://imgkr2.cn-bj.ufileos.com/8208e494-07e6-467b-96a2-8acf77121737.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=zNVyzVvQaWVQaQmABckQvIVh1XE%253D&Expires=1602694530) - -??叫????????????????????以???????????????????????说?????????????延伸??????????模??大???????????? f(20)????????????h??\?????? f(1) ??? f(2) ????????????????????就叫??????????????? - - -??叫??????????????????????????以?桦????????????????????模?????? f(1) ??? f(2) ?????????楣????以???????? f(20)??就?????????????????跏??????ٸ??????????????????????????????循?TEL????计????? - -??????????????????????? - -### ??????????? -- [???????????i??](https://mp.weixin.qq.com/s/Hew44D8rdXb3pf8mZGk67w) -- [???????????](https://mp.weixin.qq.com/s/1V3aHVonWBEXlNUvK3S28w) - -### 丏溺??????? -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e6b23c704fc94ca09207b779f953cce6~tplv-k3u1fbpfcp-zoom-1.image) -- ????干货???注??????? - From fd830096617fed64645c9bb2d0152fe899d78eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 10:40:38 +0800 Subject: [PATCH 21/52] =?UTF-8?q?=E5=A4=A7=E5=8E=82=E9=9D=A2=E8=AF=95?= =?UTF-8?q?=E7=9C=9F=E6=9B=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 "345244247345216202351235242350257225347234237351242230/README.MD" diff --git "a/345244247345216202351235242350257225347234237351242230/README.MD" "b/345244247345216202351235242350257225347234237351242230/README.MD" new file mode 100644 index 0000000..2fa4767 --- /dev/null +++ "b/345244247345216202351235242350257225347234237351242230/README.MD" @@ -0,0 +1,13 @@ +## 1. ???????? + +??注????????????????9 +??? +- [oppo????16????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498750&idx=1&sn=19fe8b4fff28fe81db14e733053bbc74&chksm=cf2224d7f855adc1d0984980a4e3de31fe33329164a472ca8d8255a8a80b69b2e23850811323&token=2001057130&lang=zh_CN#rd) +- [?????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498316&idx=1&sn=7749b78293b7b2af51eda99844e08a56&chksm=cf222565f855ac7324232e2af459f8b6e6eb5fd5b272c2b29bda08cc579421b6704a0de94b2e&token=2001057130&lang=zh_CN#rd) +- [??菰?????15?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498171&idx=1&sn=f5a7ec25a569822be0f73fbcd413e8ba&chksm=cf222692f855af84fba419166fcd4235c0e78af3a2e1ec4c723a4efb1bd1ad6f8a5b9404c599&token=2001057130&lang=zh_CN#rd) +- [社??????21??????年工?经???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498084&idx=1&sn=96c8148cfeeeb16668ed9e03fa9131cc&chksm=cf22264df855af5b6e81b93738cca28989226a53ec702fcfaa0cc5004dded4208c5ee5ea844a&token=2001057130&lang=zh_CN#rd) +- [?份?TEL??????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497742&idx=1&sn=18765e7356f446a7f2521f45b467d5d3&chksm=cf222727f855ae31dd2029e3219814211336c41d9228d271a583d3691ddadca586529aca9302&token=2001057130&lang=zh_CN#rd) +- [???????????????15????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497256&idx=1&sn=3b799c2d514aa25e85a6faa60d639a0b&chksm=cf222901f855a017b73356b99b830b8800a7a9172fab891c5759d8dd69a270872ea9480c0b7c&token=2001057130&lang=zh_CN#rd) +- [????>????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495342&idx=1&sn=54e1c0c16a6467001524c34818025331&chksm=cf223187f855b89140db5ca429e6efc19d0111abf7f36b78a0ecd73b00fded1ff1e7ba32a6f1&token=2001057130&lang=zh_CN#rd) +- [???????????????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493270&idx=1&sn=1c78a81d6e1bd0f0fd947fe8c3a33e32&chksm=cf2239bff855b0a9627855f20a17799e0506eb7548a409bfa0ee0450328d7519ec70f7b962cc&token=2001057130&lang=zh_CN#rd) +- [???精???????PDF?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd? \ No newline at end of file From 9bdca98a3d18d03575ae7bb379667410efcea7e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 10:52:06 +0800 Subject: [PATCH 22/52] =?UTF-8?q?=E5=88=86=E5=B8=83=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "345210206345270203345274217/README.MD" | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 "345210206345270203345274217/README.MD" diff --git "a/345210206345270203345274217/README.MD" "b/345210206345270203345274217/README.MD" new file mode 100644 index 0000000..1b5f507 --- /dev/null +++ "b/345210206345270203345274217/README.MD" @@ -0,0 +1,12 @@ +## ????? + +??注????????????????9 + +- [?????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498595&idx=1&sn=4e5308930e151a609baa2df820e48a89&chksm=cf22244af855ad5c71822cb33e828ce652c6f34202096a9344922b86dcbc08076d7922acde5f&token=1990771297&lang=zh_CN#rd) +- [???以??????????衏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498625&idx=1&sn=0d7bd9d1b46eeff4c715a6761355e9b0&chksm=cf2224a8f855adbea8931c8e011711f6c70cffeef8ddf8b87729c710eacef11b46eef80fda36&token=1990771297&lang=zh_CN#rd) +- [???????????? 11 ??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498784&idx=1&sn=aad1c00d6eafb0c1f08959612c69959a&chksm=cf222309f855aa1f71ef9cf470bfa72ac73365c401ec7c7d0c3b241a9116c3112f83760793e8&token=1990771297&lang=zh_CN#rd) +- [???????就??o??????式???菵?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498358&idx=1&sn=aa6c7ceb61b73267d68d1b4fb7ccc2ed&chksm=cf22255ff855ac495861d57df276517e89779006267fa8413fe925cc15b0c3e0b0f1b1a5675e&token=1990771297&lang=zh_CN#rd) +- [????主?????????式???任??\????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498121&idx=1&sn=e3d7e4f5297c7b2390b412a9bafc3385&chksm=cf2226a0f855afb669cde8d7f400fb334bd4c75a8c672d1208667387d03d2dfd24884e60b825&token=1990771297&lang=zh_CN#rd) +- [redis???????????8大???记??????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495390&idx=1&sn=87cc1567c709cfa67b43dd8d273bb426&chksm=cf2231f7f855b8e17919f7763469d87c47d9b4c4ad25aba7e6ff60fa33b048bc47a4afd287fc&token=1990771297&lang=zh_CN#rd) +- [??????????式????解?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490468&idx=2&sn=91b8e5dd2ce3db218708b5c736fce700&chksm=cf21c48df8564d9b30164e1dbf9b5ebcc1847a9450d08ee146c98eb53107af475149ad12a748&token=1990771297&lang=zh_CN#rd) +- [??年被??????????????????????大??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488553&idx=2&sn=fa13e9698e59f5a5485d3d3d4b8ef2b1&chksm=cf21cb00f8564216277806780c64e13c48fe32009f588349b3365afa8de97bd8ef192507bd50&token=1990771297&lang=zh_CN#rd) \ No newline at end of file From 8b1da559828aabcdc18a343cd63b1a69eadffe03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 10:58:41 +0800 Subject: [PATCH 23/52] =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=BA=BA=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 "347250213345272217344272272347224237&351235242350257225345273272350256256/README.MD" diff --git "a/347250213345272217344272272347224237&351235242350257225345273272350256256/README.MD" "b/347250213345272217344272272347224237&351235242350257225345273272350256256/README.MD" new file mode 100644 index 0000000..ae9424d --- /dev/null +++ "b/347250213345272217344272272347224237&351235242350257225345273272350256256/README.MD" @@ -0,0 +1,6 @@ +## ?序人?? + +- [?大叱??????夏??????????????干??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493222&idx=1&sn=29eb95b01b54bed2abbcf5a72285b38a&chksm=cf22394ff855b059b29ffb562e22d8ecc048caa743eb5c6257ad474676940ba8d36840f075ed&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?大叱???????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495313&idx=1&sn=7f521db08e84b07177d847c60071d709&chksm=cf2231b8f855b8ae765f2dd584994836c0b74ce0ef761653233c3af04f38b4a1aa1833f7a55a&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????两年????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247489788&idx=1&sn=66efbc1b718915bfd8996b521d317a55&chksm=cf21c7d5f8564ec3928957d3c23959f5cb99d9f9bd2c1bab0dcf1750a6a017c3869189a3651a&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [夏夏???????永??记??~](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487989&idx=2&sn=9eb923d4c8c22bee1a408e4f86983f65&chksm=cf21cedcf85647cac6fe4bfa6d732856fd0335f4fcadad4d1e0dd10702e95905e06c9e38e8e8&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file From a293441db11c089e849ef9d375138339957bd9b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2022ǯ723 11:06:27 +0800 Subject: [PATCH 24/52] Add files via upload --- .../README.MD" | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 "347250213345272217345221230345277205345244207345267245345205267347257207/README.MD" diff --git "a/347250213345272217345221230345277205345244207345267245345205267347257207/README.MD" "b/347250213345272217345221230345277205345244207345267245345205267347257207/README.MD" new file mode 100644 index 0000000..73e3dce --- /dev/null +++ "b/347250213345272217345221230345277205345244207345267245345205267347257207/README.MD" @@ -0,0 +1,8 @@ + +## ?????工??? + +- [???g???????????YYDS](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500478&idx=1&sn=ec674e3eadba9bb87849292f46f84989&chksm=cf221d97f8559481fae8f0e1871ae19499568b3e49980e92018c4a5acdcf743a37da79c2436d&token=1990771297&lang=zh_CN#rd) +- [????????????Git ??令??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488013&idx=1&sn=7011a51a347e3da2cf8f8540b4d9a5d6&chksm=cf21cd24f8564432d74bc13551ebdeae71a71ea31e339c7a8f1f42f181078b5192475d598626&token=1569911403&lang=zh_CN&scene=21#wechat_redirect) +- [MyBatis ???件??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498815&idx=1&sn=737e8f92ff526dac408af7a409f3a3d4&chksm=cf222316f855aa007fe16f7bca0636c552f238deb766bb54c34db7b633c13451fc91a4fe8a3e&token=1990771297&lang=zh_CN#rd) +- [??快???Maven???????????????8????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497470&idx=1&sn=7a3a5bb48f7d3b1a627460b698e7e9a0&chksm=cf2229d7f855a0c1e892c23f7690e6ab1a745040142672b982a3934c8307901d0be03dff3cff&token=1990771297&lang=zh_CN#rd) +- [???为????30+款??工?????????工??????????????500%!](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488041&idx=1&sn=26d55c23ecd439860c4d9865bec61976&chksm=cf21cd00f8564416fe991974d24a51798d925b2e79d62935accf02aa6895c7b02adf48e9e207&token=1990771297&lang=zh_CN#rd) \ No newline at end of file From ef7f333d2355d429e89ed180de4d25da56f748a5 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2022ǯ723 12:13:44 +0800 Subject: [PATCH 25/52] update --- README.md | 38 +++++++++++++++---- .../README.MD" | 8 ++++ .../READEME.MD" | 17 +++++++++ .../README.MD" | 8 ++++ .../README.MD" | 7 ++++ .../README.MD" | 7 ++++ 6 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 "344270255351227264344273266/README.MD" create mode 100644 "345267245344275234346200273347273223/READEME.MD" create mode 100644 "347224237344272247351227256351242230345210206346236220/README.MD" create mode 100644 "347274223345255230Redis346200273347273223/README.MD" create mode 100644 "351253230345271266345217221/README.MD" diff --git a/README.md b/README.md index 7327214..68aacb1 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,40 @@ -?????份??级菵????Java?????+???????+??常工??????????????????????9?????????????????????????大叱????????offer +## ???? -? ??右?????? Star????????ٺ??????干货????? ? +?????份??级菵????Java?????+???????+??常工??????????????????????9??????????????????????大叱????????offer -?????????????9??????家大????????????????????CSDN???主?? +? ??右?????? Star????????ٺ??????干货????谢?????????? ? -- ??????精??100?(https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497536&idx=1&sn=3ac9934f607d79e51457fd01f4c8a4ef&chksm=cf222869f855a17fc30c744e5b7ccdeca407f3b7ddcca46bae1c93b1436ffc6fe417ccb8aef4&token=1990771297&lang=zh_CN#rd) +?????????????9??????家大????**???????????????**?CSDN???主?????????主??以?????容??????????????**?????????9**?欢????注??? + +- [????????精??100?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497536&idx=1&sn=3ac9934f607d79e51457fd01f4c8a4ef&chksm=cf222869f855a17fc30c744e5b7ccdeca407f3b7ddcca46bae1c93b1436ffc6fe417ccb8aef4&token=1990771297&lang=zh_CN#rd) + +## 工?????? + +- [工??????????????????15??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494838&idx=1&sn=cdb15fd346bddf3f8c1c99f0efbd67d8&chksm=cf22339ff855ba891616c79d4f4855e228e34a9fb45088d7acbe421ad511b8d090a90f5b019f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [25?g?????????????+????示??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490148&idx=1&sn=00a181bf74313f751b3ea15ebc303545&chksm=cf21c54df8564c5bc5b4600fce46619f175f7ae557956f449629c470a08e20580feef4ea8d53&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????常????举???????bug?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490662&idx=1&sn=d38a090611af7f64ee3c6a31331d5228&chksm=cf21c34ff8564a59e505e6edf3065a0fc506c6d2c96f492c8d8873cd46dedbe0704e43cb9c2e&token=1990771297&lang=zh_CN#rd) +- [工?????年??????50??g????好???小建菰](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488708&idx=1&sn=6e2e0a740f5d42a59641487a0bf1e3bf&chksm=cf21cbedf85642fbb485fa1c7bf9af21923d8503f2542b6f8283ce79ddc683f7d9e45da83100&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???g??????16???????˻???80%????????bug](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488097&idx=1&sn=eaca1f92ca3ccd9de00dbc4ef3e4029a&chksm=cf21cd48f856445e4cc24c1f8bcf18d1479bad0a37a87a2fb70717d8a4e65dcf7b4d5f83d24f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??常???????21?????踏????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488115&idx=1&sn=bdd4a4ca36bc7ea902106d058e8537fb&chksm=cf21cd5af856444cb36af600705615454b0aaa2b289b97ddb52d594556ac07a1915b73ecce19&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [CAS?????e?并???????????次???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487937&idx=1&sn=206a37bf6d6a7aa1d05674c479ed7a72&chksm=cf21cee8f85647fe7a082049a41c0f640f54976d2cdf4302b24c5517ca42b854eb84b13ece10&token=1990771297&lang=zh_CN#rd) +- [???g?????????????????????认为??????????贴??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487961&idx=1&sn=e646231067968d9f58e6665914293f9a&chksm=cf21cef0f85647e6f3ff2feece004ac3bd979e37fe45103c88d0f299dfe632a5cf6dd547c1d9&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????Java?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487973&idx=1&sn=0f713413098fb579e5f200b829f71e89&chksm=cf21ceccf85647da450765d79bf5943da551c3be950447063b9f8c77c21bf2a39b99387a949b&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????????????e????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487986&idx=1&sn=d681a585ac489703788e3baa48eb9aa3&chksm=cf21cedbf85647cd23bbab9dfec63e6877f83c34efb19bd16075d5d90fea91d3f4a20fc77921&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???????????????签???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488022&idx=1&sn=70484a48173d36006c8db1dfb74ab64d&chksm=cf21cd3ff8564429a1205f6c1d78757faae543111c8461d16c71aaee092fe3e0fed870cc5e0e&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [记??次桦?????????践?????????????????建菰](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488004&idx=1&sn=00840efd9c0bd0a7f172b59eb2ca130f&chksm=cf21cd2df856443bf21d8e09cfe5c8452ecaf82e3c2210fca3b28829ded04defddcf63c0a59b&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488117&idx=1&sn=5d3d0eda0ed45f3f576e211de31ca3a9&chksm=cf21cd5cf856444af1407a94a2abf445265ca7c5f5855cfa1c223cb209e99040c7889621f231&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?>????????践??????模????+????+工??????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488061&idx=1&sn=1d9ab7954b03521ab81ecf033c0e5e50&chksm=cf21cd14f8564402b213f0ef908bbdb0e12fed4b281c5803b8e539cacb1551654194becfb7d6&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????10?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500285&idx=1&sn=7d0723f25d46e858859cfd79acb6fb9d&chksm=cf221ed4f85597c2093f81baa5fdedc65817bf2d23a7951236836b0f54c2335695cbed61cd13&token=1990771297&lang=zh_CN#rd) + +## ???? 500+页?????????? + +- [????????500+页????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd) ## 丏溺??????? -徏鿡?????????????9 +徏鿡??????????**?????????9** -- ???????ٸ??6????好9???˻??注????????????????????维???????????干货???????起6?????~~ +- 小?伴˻??注???????????????????????维???????**????干货????**???起6?????~~ -![image](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) +![????????](https://user-images.githubusercontent.com/20244922/179399354-8a9fd2a8-42ba-4303-9ce5-04891e899e6d.png) diff --git "a/344270255351227264344273266/README.MD" "b/344270255351227264344273266/README.MD" new file mode 100644 index 0000000..74d80b2 --- /dev/null +++ "b/344270255351227264344273266/README.MD" @@ -0,0 +1,8 @@ +## 丱?件 + +- [???????????????????丱?件 Sharding-JDBC ??俶Џ?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499781&idx=1&sn=74bbb25c9347408f1edf7f8c9c82d7cf&chksm=cf221f2cf855963a6549069deeabe93bb6d6e889bcd086668bf6f0e23327fa1ddb31adc6d10c&token=1990771297&lang=zh_CN#rd) +- [???????对??Zookeeper???Eureka???Nacos???Consul???Etcd](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498268&idx=1&sn=7b24b8625fb4ff88d50c9bd55335f478&chksm=cf222535f855ac230dfca629127f93efec606641d7338c29a8d41e7d2016a7f0b6ec28a432a0&token=1990771297&lang=zh_CN#rd) +- [?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497847&idx=1&sn=29a32672b712e7dfadfa36c9902b2ec7&chksm=cf22275ef855ae484fb3f51a5726e9a4bc45222e8fbbd33631d177dc4b5619c36889ea178463&token=1990771297&lang=zh_CN#rd) +- [Kafka??????为??Kafka??"?"?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488717&idx=1&sn=006c65f9a9a5796961c42f3cafc37cb4&chksm=cf21cbe4f85642f2e8ff948f8de8a69508783cee6dafd22512d6a06cd03f7065001bd1d8d87b&token=1990771297&lang=zh_CN#rd) +- [???竏?????????RocketMQ?????????/?????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487949&idx=1&sn=888e0917884b2918a94053e5cd560e00&chksm=cf21cee4f85647f24877791d574f5ef3f979fc9c4c84ca3fd1ea1aa08ab30c1041ad3aaa5650&token=1990771297&lang=zh_CN#rd) +- [ZooKeeper?????????????顶???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488047&idx=1&sn=4913c7e1c3b8835f7512d8dc6b845727&chksm=cf21cd06f8564410cce6121230256facb1ab3b5a9ed35579896f428d84bdea7b86836109d575&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file diff --git "a/345267245344275234346200273347273223/READEME.MD" "b/345267245344275234346200273347273223/READEME.MD" new file mode 100644 index 0000000..6c258b9 --- /dev/null +++ "b/345267245344275234346200273347273223/READEME.MD" @@ -0,0 +1,17 @@ +## 工?????? + +- [工??????????????????15??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494838&idx=1&sn=cdb15fd346bddf3f8c1c99f0efbd67d8&chksm=cf22339ff855ba891616c79d4f4855e228e34a9fb45088d7acbe421ad511b8d090a90f5b019f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [25?g?????????????+????示??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490148&idx=1&sn=00a181bf74313f751b3ea15ebc303545&chksm=cf21c54df8564c5bc5b4600fce46619f175f7ae557956f449629c470a08e20580feef4ea8d53&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????常????举???????bug?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490662&idx=1&sn=d38a090611af7f64ee3c6a31331d5228&chksm=cf21c34ff8564a59e505e6edf3065a0fc506c6d2c96f492c8d8873cd46dedbe0704e43cb9c2e&token=1990771297&lang=zh_CN#rd) +- [工?????年??????50??g????好???小建菰](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488708&idx=1&sn=6e2e0a740f5d42a59641487a0bf1e3bf&chksm=cf21cbedf85642fbb485fa1c7bf9af21923d8503f2542b6f8283ce79ddc683f7d9e45da83100&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???g??????16???????˻???80%????????bug](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488097&idx=1&sn=eaca1f92ca3ccd9de00dbc4ef3e4029a&chksm=cf21cd48f856445e4cc24c1f8bcf18d1479bad0a37a87a2fb70717d8a4e65dcf7b4d5f83d24f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??常???????21?????踏????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488115&idx=1&sn=bdd4a4ca36bc7ea902106d058e8537fb&chksm=cf21cd5af856444cb36af600705615454b0aaa2b289b97ddb52d594556ac07a1915b73ecce19&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [CAS?????e?并???????????次???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487937&idx=1&sn=206a37bf6d6a7aa1d05674c479ed7a72&chksm=cf21cee8f85647fe7a082049a41c0f640f54976d2cdf4302b24c5517ca42b854eb84b13ece10&token=1990771297&lang=zh_CN#rd) +- [???g?????????????????????认为??????????贴??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487961&idx=1&sn=e646231067968d9f58e6665914293f9a&chksm=cf21cef0f85647e6f3ff2feece004ac3bd979e37fe45103c88d0f299dfe632a5cf6dd547c1d9&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????Java?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487973&idx=1&sn=0f713413098fb579e5f200b829f71e89&chksm=cf21ceccf85647da450765d79bf5943da551c3be950447063b9f8c77c21bf2a39b99387a949b&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????????????e????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487986&idx=1&sn=d681a585ac489703788e3baa48eb9aa3&chksm=cf21cedbf85647cd23bbab9dfec63e6877f83c34efb19bd16075d5d90fea91d3f4a20fc77921&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???????????????签???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488022&idx=1&sn=70484a48173d36006c8db1dfb74ab64d&chksm=cf21cd3ff8564429a1205f6c1d78757faae543111c8461d16c71aaee092fe3e0fed870cc5e0e&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [记??次桦?????????践?????????????????建菰](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488004&idx=1&sn=00840efd9c0bd0a7f172b59eb2ca130f&chksm=cf21cd2df856443bf21d8e09cfe5c8452ecaf82e3c2210fca3b28829ded04defddcf63c0a59b&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488117&idx=1&sn=5d3d0eda0ed45f3f576e211de31ca3a9&chksm=cf21cd5cf856444af1407a94a2abf445265ca7c5f5855cfa1c223cb209e99040c7889621f231&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?>????????践??????模????+????+工??????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488061&idx=1&sn=1d9ab7954b03521ab81ecf033c0e5e50&chksm=cf21cd14f8564402b213f0ef908bbdb0e12fed4b281c5803b8e539cacb1551654194becfb7d6&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??????????????10?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500285&idx=1&sn=7d0723f25d46e858859cfd79acb6fb9d&chksm=cf221ed4f85597c2093f81baa5fdedc65817bf2d23a7951236836b0f54c2335695cbed61cd13&token=1990771297&lang=zh_CN#rd) \ No newline at end of file diff --git "a/347224237344272247351227256351242230345210206346236220/README.MD" "b/347224237344272247351227256351242230345210206346236220/README.MD" new file mode 100644 index 0000000..15772be --- /dev/null +++ "b/347224237344272247351227256351242230345210206346236220/README.MD" @@ -0,0 +1,8 @@ +## ???产????????? + +- [??????????????????????e????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487986&idx=1&sn=d681a585ac489703788e3baa48eb9aa3&chksm=cf21cedbf85647cd23bbab9dfec63e6877f83c34efb19bd16075d5d90fea91d3f4a20fc77921&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???产??????????delete in???菵?走索???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495170&idx=1&sn=ce914de3abdb0d887e286b680b25111f&chksm=cf22312bf855b83d31a00da110626747df8e69fca1bc310642c56e39d663b006a8105f9fb1e1&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [???????????????????Mysql死??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487979&idx=1&sn=588c83d77a8851f3b3c18cd68ed9c454&chksm=cf21cec2f85647d4a77cc239ae9a4cfd31bb8832be3d98540a08ea8b4a1f46b38cf736210a02&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [线?????????????次线?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487992&idx=1&sn=733335f2f69d743712915abc99f83b1d&chksm=cf21ced1f85647c7ab8c5d8bc4e8206b04acb5fd4feb94b8d088a782ed458b82aab69dba82aa&token=1990771297&lang=zh_CN#rd) +- [??????MySQL???菵???12??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499624&idx=1&sn=561b9cb7fe831ca7cb2d9fd65691e85e&chksm=cf222041f855a957ac50c0a53baaec6d26be32427259b2974450620f33a8c834419fe535e83d&token=1990771297&lang=zh_CN#rd) +- [线???????????????帮???????????????线?????诏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497444&idx=1&sn=1b2cc8b4685413149e46c814e468c6e6&chksm=cf2229cdf855a0db5f2da881d27c69f11c69480552985baa2a08cbe4d5a48bad7fb31a78dd5a&token=1990771297&lang=zh_CN#rd) \ No newline at end of file diff --git "a/347274223345255230Redis346200273347273223/README.MD" "b/347274223345255230Redis346200273347273223/README.MD" new file mode 100644 index 0000000..996dc81 --- /dev/null +++ "b/347274223345255230Redis346200273347273223/README.MD" @@ -0,0 +1,7 @@ +## ?? + +- [大??????????Redis为????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490736&idx=1&sn=95377e729b27f0afefbaa5f20239fc9d&chksm=cf21c399f8564a8ff5239fbaa86d616a48086b47b3bb03c8ccc1d3cc066e41c75e16638c3fc8&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [??????????Redis?MySQL????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490243&idx=1&sn=ff11c3aab9ada3b16d7f2b57c846d567&chksm=cf21c5eaf8564cfc59e3d0d56fd02b0f5513015005f498381be4d12db462442a49aabe4159ef&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [使??Redis???须??????21???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488325&idx=1&sn=6d9bbe5bf2f2f2904755de5c786fb21b&chksm=cf21cc6cf856457a9d23b3e25ec48107a582e709f05964dfdb5ba77e9a239d8307334c485fdf&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?????????Redis???????????g`使??姿??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488142&idx=1&sn=79a304efae7a814b6f71bbbc53810c0c&chksm=cf21cda7f85644b11ff80323defb90193bc1780b45c1c6081f00da85d665fd9eb32cc934b5cf&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [2W???20???Redis???????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494124&idx=1&sn=c185f7d999d5f006608d05707a8a7eea&chksm=cf2236c5f855bfd329c6e2ee27f23f8131ebcd312960190a10f1a819d67f07a21a08ad17f263&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file diff --git "a/351253230345271266345217221/README.MD" "b/351253230345271266345217221/README.MD" new file mode 100644 index 0000000..0ce39a5 --- /dev/null +++ "b/351253230345271266345217221/README.MD" @@ -0,0 +1,7 @@ +## ?并?? +- [??????????Redis?MySQL????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490243&idx=1&sn=ff11c3aab9ada3b16d7f2b57c846d567&chksm=cf21c5eaf8564cfc59e3d0d56fd02b0f5513015005f498381be4d12db462442a49aabe4159ef&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [Redis主???????????? Cluster???群?????竏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498254&idx=1&sn=6489360c3b226df9811e66cb40ec7656&chksm=cf222527f855ac3112628bcec7730064fee3fdbe869fbd0a7410c22766a0c036a7e5c1a69fa0&token=1990771297&lang=zh_CN#rd) +- [?????????????MySQL???主??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497982&idx=1&sn=bb589329cceb5462fc41f66ec63dbf56&chksm=cf2227d7f855aec16dd4d3b3425c0401850eeaf2c9cdc82e82722d38a00c24ee9ccfa3353774&token=1990771297&lang=zh_CN#rd) +- [????????设??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497427&idx=1&sn=2ed160c9917ad989eee1ac60d6122855&chksm=cf2229faf855a0ecf5eb34c7335acdf6420426490ee99fc2b602d54ff4ffcecfdab24eeab0a3&token=1990771297&lang=zh_CN#rd) +- [??????????????????11???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497361&idx=1&sn=a0a2b0f92804921ba3d31b6236f275c2&chksm=cf2229b8f855a0aec650f4e0c3f105aa08e52fabbc54807dd37fefc4873749698b2b1445b59f&token=1990771297&lang=zh_CN#rd) +- [??????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493227&idx=1&sn=10e5064d7d224c69dce400e90cd44de6&chksm=cf223942f855b0541ada22a312e0d4ffbc99df463678247a0dede3ef16eb81e3344a4a54ceaf&token=1990771297&lang=zh_CN#rd) \ No newline at end of file From 6622f7fc024bda2bdc0f14fca6bb0e8cabba3561 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2022ǯ723 12:21:47 +0800 Subject: [PATCH 26/52] update --- .../README.MD" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/345244247345216202351235242350257225347234237351242230/README.MD" "b/345244247345216202351235242350257225347234237351242230/README.MD" index 2fa4767..32264de 100644 --- "a/345244247345216202351235242350257225347234237351242230/README.MD" +++ "b/345244247345216202351235242350257225347234237351242230/README.MD" @@ -10,4 +10,4 @@ - [???????????????15????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497256&idx=1&sn=3b799c2d514aa25e85a6faa60d639a0b&chksm=cf222901f855a017b73356b99b830b8800a7a9172fab891c5759d8dd69a270872ea9480c0b7c&token=2001057130&lang=zh_CN#rd) - [????>????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495342&idx=1&sn=54e1c0c16a6467001524c34818025331&chksm=cf223187f855b89140db5ca429e6efc19d0111abf7f36b78a0ecd73b00fded1ff1e7ba32a6f1&token=2001057130&lang=zh_CN#rd) - [???????????????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493270&idx=1&sn=1c78a81d6e1bd0f0fd947fe8c3a33e32&chksm=cf2239bff855b0a9627855f20a17799e0506eb7548a409bfa0ee0450328d7519ec70f7b962cc&token=2001057130&lang=zh_CN#rd) -- [???精???????PDF?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd? \ No newline at end of file +- [???精???????PDF????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd? \ No newline at end of file From 990ab54b5f96691580ee9f6efd832f830d9fb10d Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2022ǯ723 12:23:57 +0800 Subject: [PATCH 27/52] update --- .../README.MD" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/345244247345216202351235242350257225347234237351242230/README.MD" "b/345244247345216202351235242350257225347234237351242230/README.MD" index 32264de..04f4506 100644 --- "a/345244247345216202351235242350257225347234237351242230/README.MD" +++ "b/345244247345216202351235242350257225347234237351242230/README.MD" @@ -10,4 +10,4 @@ - [???????????????15????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497256&idx=1&sn=3b799c2d514aa25e85a6faa60d639a0b&chksm=cf222901f855a017b73356b99b830b8800a7a9172fab891c5759d8dd69a270872ea9480c0b7c&token=2001057130&lang=zh_CN#rd) - [????>????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495342&idx=1&sn=54e1c0c16a6467001524c34818025331&chksm=cf223187f855b89140db5ca429e6efc19d0111abf7f36b78a0ecd73b00fded1ff1e7ba32a6f1&token=2001057130&lang=zh_CN#rd) - [???????????????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493270&idx=1&sn=1c78a81d6e1bd0f0fd947fe8c3a33e32&chksm=cf2239bff855b0a9627855f20a17799e0506eb7548a409bfa0ee0450328d7519ec70f7b962cc&token=2001057130&lang=zh_CN#rd) -- [???精???????PDF????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd? \ No newline at end of file +- [???精???????PDF????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499943&idx=1&sn=fe869c0a97a306e42830336fe74e17a6&chksm=cf221f8ef8559698781709bfbccbb85087286e48434905fb18bec3a3ec0af7329c2a1632c230&token=1990771297&lang=zh_CN#rd) \ No newline at end of file From 25b5939239822ba0dd3f0a306e0aaa10d190884e Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: Mon, 1 Aug 2022 09:14:34 +0800 Subject: [PATCH 28/52] ThreadLocal --- .../README.MD" | 3 ++- .../README.MD.bak" | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 "Java345237272347241200345255246344271240/README.MD.bak" diff --git "a/Java345237272347241200345255246344271240/README.MD" "b/Java345237272347241200345255246344271240/README.MD" index 0a1609f..a038f88 100644 --- "a/Java345237272347241200345255246344271240/README.MD" +++ "b/Java345237272347241200345255246344271240/README.MD" @@ -18,4 +18,5 @@ - [?????????乱???????????????产???????????e?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487962&idx=1&sn=7424e843c80b228283fc08d4d24cc4bb&chksm=cf21cef3f85647e5a9c92d280624ad2564e885561a8b64cbf6722459f7c13da7421765321aa9&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [??Java??????????????践????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487959&idx=1&sn=778114d611f18b0f307a3f3ab6cd9117&chksm=cf21cefef85647e84b77c0e46620e91cf5ff079785b58a7dc66e5ed7419e21e0da9180699617&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [Java?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487946&idx=1&sn=57a86e1d2fe1a9ecf00594a0bb6baf5f&chksm=cf21cee3f85647f5cf2ba728cc0838923140130a18ad117e248cf9843460614fc855d556968a&token=162724582&lang=zh_CN&scene=21#wechat_redirect) -- [Java????????????????常????linux??令](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487954&idx=1&sn=6c04ff4edfcfea52a82795bcb9ed8efd&chksm=cf21cefbf85647ed8df72a23307315be5d1b3d4974c128f111bfdaa84da37cf7b49ff65c1112&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file +- [Java????????????????常????linux??令](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487954&idx=1&sn=6c04ff4edfcfea52a82795bcb9ed8efd&chksm=cf21cefbf85647ed8df72a23307315be5d1b3d4974c128f111bfdaa84da37cf7b49ff65c1112&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [ThreadLocal???????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500784&idx=1&sn=6519d0e092be4ed9d6f4da8d90deef2c&chksm=cf221cd9f85595cf9123043241e92a19ca9c212aa8527cfb2aeb9a2472c6bdab9045cf40f22f&token=349136600&lang=zh_CN#rd) \ No newline at end of file diff --git "a/Java345237272347241200345255246344271240/README.MD.bak" "b/Java345237272347241200345255246344271240/README.MD.bak" new file mode 100644 index 0000000..4ba4024 --- /dev/null +++ "b/Java345237272347241200345255246344271240/README.MD.bak" @@ -0,0 +1,21 @@ +## Java???????????中? +??? +????????????????9 +??? +- [????读??线??????工?????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488078&idx=1&sn=0a7cef472002f6582fd2354fba83706a&chksm=cf21cd67f85644716263c3a80cead9b7bb36d9677f6f8b06d0602077ece70fcafa9d20c1cffb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Synchronizedf???????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487942&idx=1&sn=bbc68d1b9da23bf6474378e310b1ef1b&chksm=cf21ceeff85647f9ad7a08226849fcba3f9481387d13b17a5787fb94027647de81c349f9e390&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?步????????CompletableFuture?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490456&idx=1&sn=95836324db57673a4d7aea4fb233c0d2&chksm=cf21c4b1f8564da72dc7b39279362bcf965b1374540f3b339413d138599f7de59a5f977e3b0e&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??常???????21?????踏????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488115&idx=1&sn=bdd4a4ca36bc7ea902106d058e8537fb&chksm=cf21cd5af856444cb36af600705615454b0aaa2b289b97ddb52d594556ac07a1915b73ecce19&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??Java?????????????????请??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488066&idx=1&sn=44b5a90be1b69d7938dbcf516d85f041&chksm=cf21cd6bf856447d869278386250f59a926881375df848e54f86a21682bdab50f9e09ca56fbd&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????JDK 5-15???????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488058&idx=1&sn=aab4d0dc9020cb62710086474ca90baf&chksm=cf21cd13f8564405040593daa45c62aec218e13f5ff42d679c59f768dd4fcc53ddcf34e0a454&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????????????Git ??令??????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488013&idx=1&sn=7011a51a347e3da2cf8f8540b4d9a5d6&chksm=cf21cd24f8564432d74bc13551ebdeae71a71ea31e339c7a8f1f42f181078b5192475d598626&token=162724582&ang=zh_CN&scene=21#wechat_redirect) +- [?????Java?????????????jstack??令f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487990&idx=1&sn=b5b3c565392f39e5ac517696603b2ed9&chksm=cf21cedff85647c960407dce77fe04d08e51f8c7332310ccacd925be5567c187aa761dd1d1c8&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487985&idx=1&sn=ead28c6c8d81b98e59603b848d250b30&chksm=cf21ced8f85647ce336f19016c7ff1936b21c81066815c8f28b830098716111548edb9767b21&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487980&idx=1&sn=2a9ce519f87a1ffe1511022e6724208e&chksm=cf21cec5f85647d357c79860171fc1799ef3c44a2bdd0716e8437e31708a17d9000b4224bd36&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [????if-elseg??????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487970&idx=1&sn=c296bb03419adf93955c6d0f27e56b29&chksm=cf21cecbf85647dd0ef5160559bc0d524a4be004a28bc5d2770a43409e3b090123c0930cf047&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487964&idx=1&sn=24d7228cc10afc98c52dbf35da61a7b9&chksm=cf21cef5f85647e3d2b3f1e126cdc46d9e889d2e30c09716e0aea016beee3ca6d4c321cf60ae&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java??????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487963&idx=1&sn=a0b49cd49a3dd51b6736c9ffa0a5997a&chksm=cf21cef2f85647e49a4bdb43f27583f03fb9ec4719767512dc084edd05675599c3bec44251fb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?????????乱???????????????产???????????e?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487962&idx=1&sn=7424e843c80b228283fc08d4d24cc4bb&chksm=cf21cef3f85647e5a9c92d280624ad2564e885561a8b64cbf6722459f7c13da7421765321aa9&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [??Java??????????????践????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487959&idx=1&sn=778114d611f18b0f307a3f3ab6cd9117&chksm=cf21cefef85647e84b77c0e46620e91cf5ff079785b58a7dc66e5ed7419e21e0da9180699617&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487946&idx=1&sn=57a86e1d2fe1a9ecf00594a0bb6baf5f&chksm=cf21cee3f85647f5cf2ba728cc0838923140130a18ad117e248cf9843460614fc855d556968a&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [Java????????????????常????linux??令](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487954&idx=1&sn=6c04ff4edfcfea52a82795bcb9ed8efd&chksm=cf21cefbf85647ed8df72a23307315be5d1b3d4974c128f111bfdaa84da37cf7b49ff65c1112&token=162724582&lang=zh_CN&scene=21#wechat_redirect) \ No newline at end of file From c4ee666f89f31d45051ecd95b96a907fc4d4d840 Mon Sep 17 00:00:00 2001 From: whx123 <327658337@qq.com> Date: 2022ǯ822 08:07:36 +0800 Subject: [PATCH 29/52] =?UTF-8?q?=E5=A4=9A=E7=BA=BF=E7=A8=8B=E9=9D=A2?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.MD" | 3 +- .../README.MD.bak" | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 "Java351235242350257225351242230351233206347273223345217267/README.MD.bak" diff --git "a/Java351235242350257225351242230351233206347273223345217267/README.MD" "b/Java351235242350257225351242230351233206347273223345217267/README.MD" index 78fbb48..7397d39 100644 --- "a/Java351235242350257225351242230351233206347273223345217267/README.MD" +++ "b/Java351235242350257225351242230351233206347273223345217267/README.MD" @@ -28,4 +28,5 @@ - [ZooKeeper?????????????顶???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488047&idx=1&sn=4913c7e1c3b8835f7512d8dc6b845727&chksm=cf21cd06f8564410cce6121230256facb1ab3b5a9ed35579896f428d84bdea7b86836109d575&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [50???Java??????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488007&idx=1&sn=c5c16c8ec916c791e776216f3177c7e2&chksm=cf21cd2ef85644382a985e9fed1956d6ee60c86ce69e65f31f775318435fdb86bf368e26edf2&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [100???MySQL?????????????f???????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488000&idx=1&sn=1c38db7fd110bbcc1ffb2d72a56aaf25&chksm=cf21cd29f856443f25a3fe98ae8e888faceef9bee45df045969b2cffb105363dcc2a4480bb74&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) -- [Spring ????63???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497672&idx=1&sn=6ff0350e23d014b29a47bdec79af9ef5&chksm=cf2228e1f855a1f70fa78d9bd85c53dfbe154c1325aa1e203e4c918132c430d51bb68e961eda&token=2001057130&lang=zh_CN#rd) \ No newline at end of file +- [Spring ????63???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497672&idx=1&sn=6ff0350e23d014b29a47bdec79af9ef5&chksm=cf2228e1f855a1f70fa78d9bd85c53dfbe154c1325aa1e203e4c918132c430d51bb68e961eda&token=2001057130&lang=zh_CN#rd) +- [?线??50????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247501446&idx=1&sn=3d83f3c1035c963c1fda3f77ab750e71&chksm=cf2219aff85590b9ba054dc33956a5cafe1beaa77b231dc4dc0cf891be3e16ef367f6b2ac4ed&token=245109219&lang=zh_CN#rd) \ No newline at end of file diff --git "a/Java351235242350257225351242230351233206347273223345217267/README.MD.bak" "b/Java351235242350257225351242230351233206347273223345217267/README.MD.bak" new file mode 100644 index 0000000..cfb8d9d --- /dev/null +++ "b/Java351235242350257225351242230351233206347273223345217267/README.MD.bak" @@ -0,0 +1,31 @@ +## 1. ???????? + +??注????????????????9 +??? +- [oppo????16????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498750&idx=1&sn=19fe8b4fff28fe81db14e733053bbc74&chksm=cf2224d7f855adc1d0984980a4e3de31fe33329164a472ca8d8255a8a80b69b2e23850811323&token=2001057130&lang=zh_CN#rd) +- [?????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498316&idx=1&sn=7749b78293b7b2af51eda99844e08a56&chksm=cf222565f855ac7324232e2af459f8b6e6eb5fd5b272c2b29bda08cc579421b6704a0de94b2e&token=2001057130&lang=zh_CN#rd) +- [??菰?????15?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498171&idx=1&sn=f5a7ec25a569822be0f73fbcd413e8ba&chksm=cf222692f855af84fba419166fcd4235c0e78af3a2e1ec4c723a4efb1bd1ad6f8a5b9404c599&token=2001057130&lang=zh_CN#rd) +- [社??????21??????年工?经???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498084&idx=1&sn=96c8148cfeeeb16668ed9e03fa9131cc&chksm=cf22264df855af5b6e81b93738cca28989226a53ec702fcfaa0cc5004dded4208c5ee5ea844a&token=2001057130&lang=zh_CN#rd) +- [?份?TEL??????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497742&idx=1&sn=18765e7356f446a7f2521f45b467d5d3&chksm=cf222727f855ae31dd2029e3219814211336c41d9228d271a583d3691ddadca586529aca9302&token=2001057130&lang=zh_CN#rd) +- [???????????????15????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497256&idx=1&sn=3b799c2d514aa25e85a6faa60d639a0b&chksm=cf222901f855a017b73356b99b830b8800a7a9172fab891c5759d8dd69a270872ea9480c0b7c&token=2001057130&lang=zh_CN#rd) +- [????>????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495342&idx=1&sn=54e1c0c16a6467001524c34818025331&chksm=cf223187f855b89140db5ca429e6efc19d0111abf7f36b78a0ecd73b00fded1ff1e7ba32a6f1&token=2001057130&lang=zh_CN#rd) +- [???????????????????????????????f??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247493270&idx=1&sn=1c78a81d6e1bd0f0fd947fe8c3a33e32&chksm=cf2239bff855b0a9627855f20a17799e0506eb7548a409bfa0ee0450328d7519ec70f7b962cc&token=2001057130&lang=zh_CN#rd) +??? +## 2. ??????????? +??? +- [Redis主???????????? Cluster???群?????竏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498254&idx=1&sn=6489360c3b226df9811e66cb40ec7656&chksm=cf222527f855ac3112628bcec7730064fee3fdbe869fbd0a7410c22766a0c036a7e5c1a69fa0&token=2001057130&lang=zh_CN#rd) +- [???以??????????衏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247498625&idx=1&sn=0d7bd9d1b46eeff4c715a6761355e9b0&chksm=cf2224a8f855adbea8931c8e011711f6c70cffeef8ddf8b87729c710eacef11b46eef80fda36&token=2001057130&lang=zh_CN#rd) +- [?????????????MySQL???主??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497982&idx=1&sn=bb589329cceb5462fc41f66ec63dbf56&chksm=cf2227d7f855aec16dd4d3b3425c0401850eeaf2c9cdc82e82722d38a00c24ee9ccfa3353774&token=2001057130&lang=zh_CN#rd) +- [?????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497847&idx=1&sn=29a32672b712e7dfadfa36c9902b2ec7&chksm=cf22275ef855ae484fb3f51a5726e9a4bc45222e8fbbd33631d177dc4b5619c36889ea178463&token=2001057130&lang=zh_CN#rd) +- [???????设??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497427&idx=1&sn=2ed160c9917ad989eee1ac60d6122855&chksm=cf2229faf855a0ecf5eb34c7335acdf6420426490ee99fc2b602d54ff4ffcecfdab24eeab0a3&token=2001057130&lang=zh_CN#rd) +- [???????就??o????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496788&idx=1&sn=f65ddd10d16d8376efa0037762153932&chksm=cf222b7df855a26bad76249e7b77e28da3097b226f9165d79f5031516d9c345827fca901559c&token=2001057130&lang=zh_CN#rd) +- [???????就??o??IO模???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247496448&idx=1&sn=cd502f850290a25949dd4a11ac55a039&chksm=cf222c29f855a53f094bde2868900fa252b07385e73564e9ee9f0510cb4e74387d9d23ab67e6&token=2001057130&lang=zh_CN#rd) +- [???????就??o??MVCC???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247495277&idx=1&sn=a1812febb4246f824ce54d778f672025&chksm=cf223144f855b8528ad6cce707dc3a1b4d387817bd751dfab4f79dda90c6640f9763d25f3f33&token=2001057130&lang=zh_CN#rd) +- [2W???20???Redis???????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494124&idx=1&sn=c185f7d999d5f006608d05707a8a7eea&chksm=cf2236c5f855bfd329c6e2ee27f23f8131ebcd312960190a10f1a819d67f07a21a08ad17f263&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [?????????Redis???????????g`使??姿??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488142&idx=1&sn=79a304efae7a814b6f71bbbc53810c0c&chksm=cf21cda7f85644b11ff80323defb90193bc1780b45c1c6081f00da85d665fd9eb32cc934b5cf&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [???????TCP??讏????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490868&idx=1&sn=96889bfe6a97f9200fa2d682cf2f5d89&chksm=cf21c21df8564b0b0757df584560a69340b1775fe1c70b867439565969ec3aed19c442ff4eeb&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [2W??梳??50????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247492832&idx=1&sn=601fa1c340a313bc0f74bb75cdb6a95a&chksm=cf223bc9f855b2dfb8d0e74f3360e2edfe25c3a728fe17e9e80b6022340994fd9d9e1ca83ca8&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [ZooKeeper?????????????顶???????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488047&idx=1&sn=4913c7e1c3b8835f7512d8dc6b845727&chksm=cf21cd06f8564410cce6121230256facb1ab3b5a9ed35579896f428d84bdea7b86836109d575&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [50???Java??????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488007&idx=1&sn=c5c16c8ec916c791e776216f3177c7e2&chksm=cf21cd2ef85644382a985e9fed1956d6ee60c86ce69e65f31f775318435fdb86bf368e26edf2&token=162724582&lang=zh_CN&scene=21#wechat_redirect) +- [100???MySQL?????????????f???????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488000&idx=1&sn=1c38db7fd110bbcc1ffb2d72a56aaf25&chksm=cf21cd29f856443f25a3fe98ae8e888faceef9bee45df045969b2cffb105363dcc2a4480bb74&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) +- [Spring ????63???](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497672&idx=1&sn=6ff0350e23d014b29a47bdec79af9ef5&chksm=cf2228e1f855a1f70fa78d9bd85c53dfbe154c1325aa1e203e4c918132c430d51bb68e961eda&token=2001057130&lang=zh_CN#rd) \ No newline at end of file From 5f8568677c29c4e9eed376abc99d1aebbc0c5e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ528 00:09:01 +0800 Subject: [PATCH 30/52] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ????模?? --- .../README.md" | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git "a/345220216347253257346200235347273264347257207/README.md" "b/345220216347253257346200235347273264347257207/README.md" index c23117d..afd9e7d 100644 --- "a/345220216347253257346200235347273264347257207/README.md" +++ "b/345220216347253257346200235347273264347257207/README.md" @@ -1,9 +1,10 @@ -## ˼άƪ?? - -ں?ݵСк - -- [˼?ƪ?ƺýӿڵ36?](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499388&idx=1&sn=49a22120a3238e13ad7c3d3b73d9e453&chksm=cf222155f855a8434026b2c460d963c406186578c2527ca8f2bb829bbe849d87a2392a525a9b&scene=178&cur_album_id=2396778860463161350#rd) -- [˼άƪ?ְֽдһеģ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499504&idx=1&sn=bb62226e6cffeb1859efb0100c796050&chksm=cf2221d9f855a8cf23f75cb51c1a407578fb0f279e96ddae74b5b8c84f2f5dc71762425b17cb&scene=178&cur_album_id=2396778860463161350#rd) -- [˼άƪ?ӦģʽŻ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499524&idx=1&sn=cb4cc48a3e8d9a54b0ebc4c7ad517f14&chksm=cf22202df855a93b37327856ee88b0bf5f6ed7da67964438fc2cf747666260d5026dd62d4a17&scene=178&cur_album_id=2396778860463161350#rd) -- [˼άƪ:ͳһУ顢쳣](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499708&idx=1&sn=808979c495acd9344732d147c0ad40d3&chksm=cf222095f855a983f31d5f6abf401fa3b5967f8839c6775d35cefc5cc6244fb4135563ff1090&scene=178&cur_album_id=2396778860463161350#rd) -- [˼άƪ:γһ۲ģ](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500159&idx=1&sn=a5328372e580b22c939a5b3084aef164&chksm=cf221e56f85597401e8c99b8dd1bc1af97fcf69207ceaa04c5c26e028ac47d1658b79ae32291&scene=178&cur_album_id=2396778860463161350#rd) +## ???竏??维????????中? + +????????????????9 + +- [???竏???????设?好?????36??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499388&idx=1&sn=49a22120a3238e13ad7c3d3b73d9e453&chksm=cf222155f855a8434026b2c460d963c406186578c2527ca8f2bb829bbe849d87a2392a525a9b&scene=178&cur_album_id=2396778860463161350#rd) +- [???竏??维??????????????????????????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499504&idx=1&sn=bb62226e6cffeb1859efb0100c796050&chksm=cf2221d9f855a8cf23f75cb51c1a407578fb0f279e96ddae74b5b8c84f2f5dc71762425b17cb&scene=178&cur_album_id=2396778860463161350#rd) +- [???竏??维?????????计模式????g??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499524&idx=1&sn=cb4cc48a3e8d9a54b0ebc4c7ad517f14&chksm=cf22202df855a93b37327856ee88b0bf5f6ed7da67964438fc2cf747666260d5026dd62d4a17&scene=178&cur_album_id=2396778860463161350#rd) +- [???竏??维??:??????????????常????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499708&idx=1&sn=808979c495acd9344732d147c0ad40d3&chksm=cf222095f855a983f31d5f6abf401fa3b5967f8839c6775d35cefc5cc6244fb4135563ff1090&scene=178&cur_album_id=2396778860463161350#rd) +- [???竏??维??:?????????????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500159&idx=1&sn=a5328372e580b22c939a5b3084aef164&chksm=cf221e56f85597401e8c99b8dd1bc1af97fcf69207ceaa04c5c26e028ac47d1658b79ae32291&scene=178&cur_album_id=2396778860463161350#rd) +- - [???竏??维??:???竏??维????????????g????????????????????????模??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506942&idx=1&sn=ae14ed5cc179f73ea0b2f37c73ad8da4&chksm=c1e02672f697af645943ea8ee53b7cef6257ebbc21d2b77058994e98bdb1e107ad313e29e8c3&token=134957671&lang=zh_CN#rd) From 69157df1112e21f5c4ad39512d5caacd3fb40f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ528 00:09:20 +0800 Subject: [PATCH 31/52] Update README.md --- .../README.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/345220216347253257346200235347273264347257207/README.md" "b/345220216347253257346200235347273264347257207/README.md" index afd9e7d..7f6092a 100644 --- "a/345220216347253257346200235347273264347257207/README.md" +++ "b/345220216347253257346200235347273264347257207/README.md" @@ -7,4 +7,4 @@ - [???竏??维?????????计模式????g??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499524&idx=1&sn=cb4cc48a3e8d9a54b0ebc4c7ad517f14&chksm=cf22202df855a93b37327856ee88b0bf5f6ed7da67964438fc2cf747666260d5026dd62d4a17&scene=178&cur_album_id=2396778860463161350#rd) - [???竏??维??:??????????????常????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499708&idx=1&sn=808979c495acd9344732d147c0ad40d3&chksm=cf222095f855a983f31d5f6abf401fa3b5967f8839c6775d35cefc5cc6244fb4135563ff1090&scene=178&cur_album_id=2396778860463161350#rd) - [???竏??维??:?????????????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500159&idx=1&sn=a5328372e580b22c939a5b3084aef164&chksm=cf221e56f85597401e8c99b8dd1bc1af97fcf69207ceaa04c5c26e028ac47d1658b79ae32291&scene=178&cur_album_id=2396778860463161350#rd) -- - [???竏??维??:???竏??维????????????g????????????????????????模??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506942&idx=1&sn=ae14ed5cc179f73ea0b2f37c73ad8da4&chksm=c1e02672f697af645943ea8ee53b7cef6257ebbc21d2b77058994e98bdb1e107ad313e29e8c3&token=134957671&lang=zh_CN#rd) +- [???竏??维??:???竏??维????????????g????????????????????????模??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506942&idx=1&sn=ae14ed5cc179f73ea0b2f37c73ad8da4&chksm=c1e02672f697af645943ea8ee53b7cef6257ebbc21d2b77058994e98bdb1e107ad313e29e8c3&token=134957671&lang=zh_CN#rd) From cc34588ff185f81499ed16886ba12ab2f45a4200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:10:08 +0800 Subject: [PATCH 32/52] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E6=80=9D=E8=80=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350256241346226271346241210346200235350200203" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "350256276350256241346226271346241210346200235350200203" diff --git "a/350256276350256241346226271346241210346200235350200203" "b/350256276350256241346226271346241210346200235350200203" new file mode 100644 index 0000000..8b13789 --- /dev/null +++ "b/350256276350256241346226271346241210346200235350200203" @@ -0,0 +1 @@ + From b7dc04bece928bfc858d1d27b729192f804dbb47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:15:46 +0800 Subject: [PATCH 33/52] =?UTF-8?q?Delete=20=E8=AE=BE=E8=AE=A1=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E6=80=9D=E8=80=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350256241346226271346241210346200235350200203" | 1 - 1 file changed, 1 deletion(-) delete mode 100644 "350256276350256241346226271346241210346200235350200203" diff --git "a/350256276350256241346226271346241210346200235350200203" "b/350256276350256241346226271346241210346200235350200203" deleted file mode 100644 index 8b13789..0000000 --- "a/350256276350256241346226271346241210346200235350200203" +++ /dev/null @@ -1 +0,0 @@ - From 80ca854a4f4d0abd607a20707ba37cba1568129c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:16:54 +0800 Subject: [PATCH 34/52] =?UTF-8?q?Create=20=E5=B8=B8=E8=A7=81=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E8=AE=BE=E8=AE=A1.txt=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...226271346241210350256276350256241.txt343200202" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" diff --git "a/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" "b/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" new file mode 100644 index 0000000..8b13789 --- /dev/null +++ "b/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" @@ -0,0 +1 @@ + From 2c5c0061a37d5c49c5f9a8e87be81c2923f4b90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:19:40 +0800 Subject: [PATCH 35/52] =?UTF-8?q?Update=20=E5=B8=B8=E8=A7=81=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E8=AE=BE=E8=AE=A1.txt=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...26271346241210350256276350256241.txt343200202" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" "b/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" index 8b13789..4d183d2 100644 --- "a/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" +++ "b/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" @@ -1 +1,4 @@ + + +- [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) From 7f2a4de82c2cd78b3d6150ff7c8c59f6c5b108c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:21:54 +0800 Subject: [PATCH 36/52] =?UTF-8?q?Delete=20=E6=96=B9=E6=A1=88=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=20directory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6271346241210350256276350256241.txt343200202" | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 "346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" diff --git "a/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" "b/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" deleted file mode 100644 index 4d183d2..0000000 --- "a/346226271346241210350256276350256241/345270270350247201346226271346241210350256276350256241.txt343200202" +++ /dev/null @@ -1,4 +0,0 @@ - - - -- [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) From f1c359865a5e9480b397af07f38f62d8fa17de0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:22:13 +0800 Subject: [PATCH 37/52] Create README.MD --- "346226271346241210350256276350256241/README.MD" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "346226271346241210350256276350256241/README.MD" diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" new file mode 100644 index 0000000..8b13789 --- /dev/null +++ "b/346226271346241210350256276350256241/README.MD" @@ -0,0 +1 @@ + From 5a53f80abc864e3527562970649d82c7c902f509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:23:23 +0800 Subject: [PATCH 38/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index 8b13789..e38139f 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -1 +1 @@ - +- [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) From 9670d5b8da9c69aa753a034245e1c065240e4791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:25:51 +0800 Subject: [PATCH 39/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 1 + 1 file changed, 1 insertion(+) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index e38139f..10dc3ab 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -1 +1,2 @@ - [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) +- [????????????????设????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507937&idx=1&sn=33fd37f28675ce756e5d048b99254fcb&chksm=c1e0226df697ab7b4907fb2815c8dd2d195ea04c03a2f8fd0697c9a15a81fc639e5c5f7dab1b&token=337310304&lang=zh_CN#rd) From 04837de5a8a5e35fd32b0679bbb9e4d2d3e07d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:32:30 +0800 Subject: [PATCH 40/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index 10dc3ab..27d53c0 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -1,2 +1,4 @@ - [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) - [????????????????设????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507937&idx=1&sn=33fd37f28675ce756e5d048b99254fcb&chksm=c1e0226df697ab7b4907fb2815c8dd2d195ea04c03a2f8fd0697c9a15a81fc639e5c5f7dab1b&token=337310304&lang=zh_CN#rd) +- [????????????JWT ??????认??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508057&idx=1&sn=06b6fee69c63afbe7ebd2f81a3627341&chksm=c1e05dd5f697d4c32e38bcb58c2ecba8115ea7f94a17bc197bcb7b042a18ef07fef0f0e03878&token=337310304&lang=zh_CN#rd) + From 8b3d7e11446fb5ed0dd82dbca8205e460b231fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:33:23 +0800 Subject: [PATCH 41/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 1 + 1 file changed, 1 insertion(+) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index 27d53c0..8965fd6 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -1,4 +1,5 @@ - [??????任??\????????????????维度?](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508890&idx=1&sn=919b8a794eb4902d958ae13d1f424737&chksm=c1e05e16f697d700ee9f79e087279de6312222b8e45887d976a572b01599f1177b358ade265b&token=337310304&lang=zh_CN#rd) - [????????????????设????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507937&idx=1&sn=33fd37f28675ce756e5d048b99254fcb&chksm=c1e0226df697ab7b4907fb2815c8dd2d195ea04c03a2f8fd0697c9a15a81fc639e5c5f7dab1b&token=337310304&lang=zh_CN#rd) - [????????????JWT ??????认??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508057&idx=1&sn=06b6fee69c63afbe7ebd2f81a3627341&chksm=c1e05dd5f697d4c32e38bcb58c2ecba8115ea7f94a17bc197bcb7b042a18ef07fef0f0e03878&token=337310304&lang=zh_CN#rd) +- [?并??系??设???15??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508062&idx=1&sn=71e9647479ea71e8660d6ba48616c122&chksm=c1e05dd2f697d4c45ffd09e07fd40770e3d11591fa2b53161cd38da908cd55e41a38d5192605&token=337310304&lang=zh_CN#rd) From 76d9cdf4ce60e66d89a210cd9c2a12dd56dd5792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ529 08:35:36 +0800 Subject: [PATCH 42/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index 8965fd6..70a1b3a 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -2,4 +2,6 @@ - [????????????????设????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507937&idx=1&sn=33fd37f28675ce756e5d048b99254fcb&chksm=c1e0226df697ab7b4907fb2815c8dd2d195ea04c03a2f8fd0697c9a15a81fc639e5c5f7dab1b&token=337310304&lang=zh_CN#rd) - [????????????JWT ??????认??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508057&idx=1&sn=06b6fee69c63afbe7ebd2f81a3627341&chksm=c1e05dd5f697d4c32e38bcb58c2ecba8115ea7f94a17bc197bcb7b042a18ef07fef0f0e03878&token=337310304&lang=zh_CN#rd) - [?并??系??设???15??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508062&idx=1&sn=71e9647479ea71e8660d6ba48616c122&chksm=c1e05dd2f697d4c45ffd09e07fd40770e3d11591fa2b53161cd38da908cd55e41a38d5192605&token=337310304&lang=zh_CN#rd) +- [?????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506434&idx=1&sn=c6ae1ec19558626897295bbe41304b62&chksm=c1e0278ef697ae989b14f4746d1049be976d1d5744e4f9c7ec6e17d006f206edcc1c47a3e862&token=337310304&lang=zh_CN#rd) + From 8987b8a933e624d12601b03ef7ea4ed0dd033d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:21:54 +0800 Subject: [PATCH 43/52] Update README.MD --- "346226271346241210350256276350256241/README.MD" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/346226271346241210350256276350256241/README.MD" "b/346226271346241210350256276350256241/README.MD" index 70a1b3a..e986b15 100644 --- "a/346226271346241210350256276350256241/README.MD" +++ "b/346226271346241210350256276350256241/README.MD" @@ -3,5 +3,7 @@ - [????????????JWT ??????认??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508057&idx=1&sn=06b6fee69c63afbe7ebd2f81a3627341&chksm=c1e05dd5f697d4c32e38bcb58c2ecba8115ea7f94a17bc197bcb7b042a18ef07fef0f0e03878&token=337310304&lang=zh_CN#rd) - [?并??系??设???15??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508062&idx=1&sn=71e9647479ea71e8660d6ba48616c122&chksm=c1e05dd2f697d4c45ffd09e07fd40770e3d11591fa2b53161cd38da908cd55e41a38d5192605&token=337310304&lang=zh_CN#rd) - [?????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506434&idx=1&sn=c6ae1ec19558626897295bbe41304b62&chksm=c1e0278ef697ae989b14f4746d1049be976d1d5744e4f9c7ec6e17d006f206edcc1c47a3e862&token=337310304&lang=zh_CN#rd) +- [并????????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508208&idx=1&sn=ac92523e33b478ad83560471338742f4&chksm=c1e05d7cf697d46aba95dc6661a8acbea0c894e44a793d054648b552a73b404aa3344d8a4826&token=337310304&lang=zh_CN#rd) + From 5ef506199d2e514207aad873870e5832f1798730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:25:21 +0800 Subject: [PATCH 44/52] Update README.MD --- .../README.MD" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/347224237344272247351227256351242230345210206346236220/README.MD" "b/347224237344272247351227256351242230345210206346236220/README.MD" index 15772be..9d21f55 100644 --- "a/347224237344272247351227256351242230345210206346236220/README.MD" +++ "b/347224237344272247351227256351242230345210206346236220/README.MD" @@ -5,4 +5,5 @@ - [???????????????????Mysql死??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487979&idx=1&sn=588c83d77a8851f3b3c18cd68ed9c454&chksm=cf21cec2f85647d4a77cc239ae9a4cfd31bb8832be3d98540a08ea8b4a1f46b38cf736210a02&token=1495321435&lang=zh_CN&scene=21#wechat_redirect) - [线?????????????次线?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247487992&idx=1&sn=733335f2f69d743712915abc99f83b1d&chksm=cf21ced1f85647c7ab8c5d8bc4e8206b04acb5fd4feb94b8d088a782ed458b82aab69dba82aa&token=1990771297&lang=zh_CN#rd) - [??????MySQL???菵???12??????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247499624&idx=1&sn=561b9cb7fe831ca7cb2d9fd65691e85e&chksm=cf222041f855a957ac50c0a53baaec6d26be32427259b2974450620f33a8c834419fe535e83d&token=1990771297&lang=zh_CN#rd) -- [线???????????????帮???????????????线?????诏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497444&idx=1&sn=1b2cc8b4685413149e46c814e468c6e6&chksm=cf2229cdf855a0db5f2da881d27c69f11c69480552985baa2a08cbe4d5a48bad7fb31a78dd5a&token=1990771297&lang=zh_CN#rd) \ No newline at end of file +- [线???????????????帮???????????????线?????诏??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247497444&idx=1&sn=1b2cc8b4685413149e46c814e468c6e6&chksm=cf2229cdf855a0db5f2da881d27c69f11c69480552985baa2a08cbe4d5a48bad7fb31a78dd5a&token=1990771297&lang=zh_CN#rd) +- [??????死?????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507770&idx=1&sn=b84b20aca057b34d511a501ff91941b5&chksm=c1e022b6f697aba05248128cb82f93aed341b1cc80e6d568c7150a4ffa6775692c7c9fa423a3&token=337310304&lang=zh_CN#rd) From 69abd3c8599a75e1feabbf349355c813ae4f9d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:27:39 +0800 Subject: [PATCH 45/52] Create README.md --- .../README.md" | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 "Mysql345237272347241200345255246344271240/README.md" diff --git "a/Mysql345237272347241200345255246344271240/README.md" "b/Mysql345237272347241200345255246344271240/README.md" new file mode 100644 index 0000000..d3eee8f --- /dev/null +++ "b/Mysql345237272347241200345255246344271240/README.md" @@ -0,0 +1,2 @@ +- [?????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506434&idx=1&sn=c6ae1ec19558626897295bbe41304b62&chksm=c1e0278ef697ae989b14f4746d1049be976d1d5744e4f9c7ec6e17d006f206edcc1c47a3e862&token=337310304&lang=zh_CN#rd) +- [并????????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508208&idx=1&sn=ac92523e33b478ad83560471338742f4&chksm=c1e05d7cf697d46aba95dc6661a8acbea0c894e44a793d054648b552a73b404aa3344d8a4826&token=337310304&lang=zh_CN#rd) From ee23c93ece67df1feff7094c8c9a93c123fae1ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:28:13 +0800 Subject: [PATCH 46/52] Update README.md --- .../README.md" | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git "a/Mysql345237272347241200345255246344271240/README.md" "b/Mysql345237272347241200345255246344271240/README.md" index d3eee8f..0ae9a4e 100644 --- "a/Mysql345237272347241200345255246344271240/README.md" +++ "b/Mysql345237272347241200345255246344271240/README.md" @@ -1,2 +1 @@ -- [?????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506434&idx=1&sn=c6ae1ec19558626897295bbe41304b62&chksm=c1e0278ef697ae989b14f4746d1049be976d1d5744e4f9c7ec6e17d006f206edcc1c47a3e862&token=337310304&lang=zh_CN#rd) -- [并????????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247508208&idx=1&sn=ac92523e33b478ad83560471338742f4&chksm=c1e05d7cf697d46aba95dc6661a8acbea0c894e44a793d054648b552a73b404aa3344d8a4826&token=337310304&lang=zh_CN#rd) +- [??????select for update?????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506728&idx=1&sn=5526ee3984e971d4c3b251c2ad76d658&chksm=c1e026a4f697afb28224d5ce0ecca7432879b357cd6433834c66d94c72a1935ba13e2e3e274e&token=337310304&lang=zh_CN#rd) From 20cc761fb304d23de53a5931a8cb341eed35a337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:29:45 +0800 Subject: [PATCH 47/52] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 68aacb1..54d00a0 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ - [??????????????????????????????????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488117&idx=1&sn=5d3d0eda0ed45f3f576e211de31ca3a9&chksm=cf21cd5cf856444af1407a94a2abf445265ca7c5f5855cfa1c223cb209e99040c7889621f231&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [?>????????践??????模????+????+工??????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488061&idx=1&sn=1d9ab7954b03521ab81ecf033c0e5e50&chksm=cf21cd14f8564402b213f0ef908bbdb0e12fed4b281c5803b8e539cacb1551654194becfb7d6&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [??????????????10?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500285&idx=1&sn=7d0723f25d46e858859cfd79acb6fb9d&chksm=cf221ed4f85597c2093f81baa5fdedc65817bf2d23a7951236836b0f54c2335695cbed61cd13&token=1990771297&lang=zh_CN#rd) +- [?????????18????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506674&idx=1&sn=8b2914d9aafa334029495b029b69d0b6&chksm=c1e0277ef697ae68e8c2bffe4bd7d9849be3165ef1a20286538f6a7569a6ba0879d517d55b87&token=337310304&lang=zh_CN#rd) ## ???? 500+页?????????? From 4a6a3f14c718ae0a49b5b1806ec05c745461aa31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:30:42 +0800 Subject: [PATCH 48/52] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 54d00a0..33db52b 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ - [?>????????践??????模????+????+工??????模??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247488061&idx=1&sn=1d9ab7954b03521ab81ecf033c0e5e50&chksm=cf21cd14f8564402b213f0ef908bbdb0e12fed4b281c5803b8e539cacb1551654194becfb7d6&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [??????????????10?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500285&idx=1&sn=7d0723f25d46e858859cfd79acb6fb9d&chksm=cf221ed4f85597c2093f81baa5fdedc65817bf2d23a7951236836b0f54c2335695cbed61cd13&token=1990771297&lang=zh_CN#rd) - [?????????18????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506674&idx=1&sn=8b2914d9aafa334029495b029b69d0b6&chksm=c1e0277ef697ae68e8c2bffe4bd7d9849be3165ef1a20286538f6a7569a6ba0879d517d55b87&token=337310304&lang=zh_CN#rd) +- [??????工??举常?????Lambda??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506654&idx=1&sn=4835e9f486e643765d4ad3b3fc93e079&chksm=c1e02752f697ae442f62fc122d7604f4b01979f6d1665df414bb499fd8ba211335ebc503c368&token=337310304&lang=zh_CN#rd) ## ???? 500+页?????????? From 041003dfa55172cb7adadf7731dd130f7419792c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:31:49 +0800 Subject: [PATCH 49/52] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33db52b..42d5e5d 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ - [??????????????10?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247500285&idx=1&sn=7d0723f25d46e858859cfd79acb6fb9d&chksm=cf221ed4f85597c2093f81baa5fdedc65817bf2d23a7951236836b0f54c2335695cbed61cd13&token=1990771297&lang=zh_CN#rd) - [?????????18????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506674&idx=1&sn=8b2914d9aafa334029495b029b69d0b6&chksm=c1e0277ef697ae68e8c2bffe4bd7d9849be3165ef1a20286538f6a7569a6ba0879d517d55b87&token=337310304&lang=zh_CN#rd) - [??????工??举常?????Lambda??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506654&idx=1&sn=4835e9f486e643765d4ad3b3fc93e079&chksm=c1e02752f697ae442f62fc122d7604f4b01979f6d1665df414bb499fd8ba211335ebc503c368&token=337310304&lang=zh_CN#rd) +- [21?MySQL?计??经???????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506621&idx=1&sn=afca898cb461827054d706a92f9b9250&chksm=c1e02731f697ae27a83e5637ee2184d1e26e5090caeaa58121d3cf5afab7d4d5832cac6d171a&token=337310304&lang=zh_CN#rd) ## ???? 500+页?????????? From a0a2cfb1858dce4bd4869829efd29a6c58fa9cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ530 08:34:19 +0800 Subject: [PATCH 50/52] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42d5e5d..abf80d6 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ - [?????????18????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506674&idx=1&sn=8b2914d9aafa334029495b029b69d0b6&chksm=c1e0277ef697ae68e8c2bffe4bd7d9849be3165ef1a20286538f6a7569a6ba0879d517d55b87&token=337310304&lang=zh_CN#rd) - [??????工??举常?????Lambda??](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506654&idx=1&sn=4835e9f486e643765d4ad3b3fc93e079&chksm=c1e02752f697ae442f62fc122d7604f4b01979f6d1665df414bb499fd8ba211335ebc503c368&token=337310304&lang=zh_CN#rd) - [21?MySQL?计??经???????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506621&idx=1&sn=afca898cb461827054d706a92f9b9250&chksm=c1e02731f697ae27a83e5637ee2184d1e26e5090caeaa58121d3cf5afab7d4d5832cac6d171a&token=337310304&lang=zh_CN#rd) +- [??????????????????????????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506023&idx=1&sn=b96dde436c1c9fe4bda745ca5ca1b170&source=41#wechat_redirect) ## ???? 500+页?????????? From bff37f7eb2f9c5ba90eddcf14f524d2f2a280a56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: Sat, 1 Jun 2024 17:23:09 +0800 Subject: [PATCH 51/52] =?UTF-8?q?=E6=AD=BB=E9=94=81=E6=80=9D=E8=B7=AF?= =?UTF-8?q?=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/Mysql345237272347241200345255246344271240/README.md" "b/Mysql345237272347241200345255246344271240/README.md" index 0ae9a4e..f335927 100644 --- "a/Mysql345237272347241200345255246344271240/README.md" +++ "b/Mysql345237272347241200345255246344271240/README.md" @@ -1 +1,2 @@ - [??????select for update?????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506728&idx=1&sn=5526ee3984e971d4c3b251c2ad76d658&chksm=c1e026a4f697afb28224d5ce0ecca7432879b357cd6433834c66d94c72a1935ba13e2e3e274e&token=337310304&lang=zh_CN#rd) +- [??????死?????????????](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247507770&idx=1&sn=b84b20aca057b34d511a501ff91941b5&chksm=c1e022b6f697aba05248128cb82f93aed341b1cc80e6d568c7150a4ffa6775692c7c9fa423a3&token=1822874069&lang=zh_CN#rd) From c46280c44013c05ee50a6c04cfcbdabaef943c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8D=A1=E7=94=B0=E8=9E=BA=E7=9A=84=E5=B0=8F=E7=94=B7?= =?UTF-8?q?=E5=AD=A9?= <327658337@qq.com> Date: 2024ǯ1215 10:59:31 +0800 Subject: [PATCH 52/52] =?UTF-8?q?=E6=96=B0=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index abf80d6..7018310 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ ## 工?????? +- [??????????主??延?????9??????以??e????](https://mp.weixin.qq.com/s/aT7YjsTrM_dhDbddr8TSjg?token=528541177&lang=zh_CN) +- [????项???????????????????????????????](https://mp.weixin.qq.com/s/UVHMeFDO4NYTnSwHZc9f1A?token=528541177&lang=zh_CN) - [工??????????????????15??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247494838&idx=1&sn=cdb15fd346bddf3f8c1c99f0efbd67d8&chksm=cf22339ff855ba891616c79d4f4855e228e34a9fb45088d7acbe421ad511b8d090a90f5b019f&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [25?g?????????????+????示??](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490148&idx=1&sn=00a181bf74313f751b3ea15ebc303545&chksm=cf21c54df8564c5bc5b4600fce46619f175f7ae557956f449629c470a08e20580feef4ea8d53&token=162724582&lang=zh_CN&scene=21#wechat_redirect) - [????????常????举???????bug?????](https://mp.weixin.qq.com/s?__biz=Mzg3NzU5NTIwNg==&mid=2247490662&idx=1&sn=d38a090611af7f64ee3c6a31331d5228&chksm=cf21c34ff8564a59e505e6edf3065a0fc506c6d2c96f492c8d8873cd46dedbe0704e43cb9c2e&token=1990771297&lang=zh_CN#rd)

AltStyle ˤäѴ줿ڡ (->ꥸʥ) /