diff --git a/.DS_Store b/.DS_Store index 7b358d3..714766f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e7e8552 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ + +JVM/虚拟机执行子系统/.DS_Store +Utils/jdk8新特性/stream/.DS_Store +Utils/jdk8新特性/lambda/lambda_demo/lambda_demo.iml +Utils/jdk8新特性/lambda/lambda_demo/.idea/workspace.xml +Utils/jdk8新特性/.DS_Store +JVM/虚拟机执行子系统/.DS_Store +Utils/.DS_Store +Utils/jdk8新特性/lambda/lambda_demo/.idea/$CACHE_FILE$ +*.class +Algorithm/LeetCode/leetcode/.idea/workspace.xml +Algorithm/LeetCode/leetcode/.idea/workspace.xml +SourceCode/.DS_Store +SourceCode/mybatis/mybatis怎么加载进spring的/.DS_Store +SourceCode/mybatis/mybatis怎么加载进spring的/img/.DS_Store +SourceCode/TreeMap/.DS_Store +spring/ioc/.DS_Store +spring/aop/JDK和CGlib动态代理/img/.DS_Store +spring/aop/JDK和CGlib动态代理/.DS_Store +spring/ioc/bean的初始化/.DS_Store +spring/.DS_Store +spring/aop/.DS_Store +spring/.DS_Store diff --git a/Algorithm/.DS_Store b/Algorithm/.DS_Store index c9651a1..5b96121 100644 Binary files a/Algorithm/.DS_Store and b/Algorithm/.DS_Store differ diff --git a/Algorithm/README.md b/Algorithm/README.md new file mode 100644 index 0000000..2adb555 --- /dev/null +++ b/Algorithm/README.md @@ -0,0 +1,74 @@ +# 前言 + +大家应该都知道算法的重要性,不管是大厂小厂都非常重视,因为这个不仅考察你的逻辑能力,还有对数据结构的了解程度,还有各个集合类是否熟练 + +这一部分就是 算法的章节。 + +主要是 **剑指offer** 和 **LeetCode**上面的算法题进行整理 + +**剑指offer因为是C语言版,这里改成Java版本** + + + +这两个主要是之前自己刷题的时候写下来的,然后顺便传到GitHub上,对你们可能也有些帮助 + + + +# 先看哪个 + +**针对不同时间,侧重点也会不同** + +- 如果你时间多(离面试还有3月以上) + - 刷Leetcode +- 如果马上就要校招、社招了。刷剑指Offer。 + + + +# 格式 + +![](img/Xnip2019-11-06_22-42-30.jpg) + +## 类名 + +- 题号+类名 + +## 文档注释 + +- **主类最上面是整个问题的描述**以及我对这个题目的**审题**和**解题思路** +- 里面的静态方法是各个**不同的解题的方法**。会有**解题思路**+**时间空间复杂度** +- 也会有我对这个**现有题目进行拓展**的一些想法和**解题思路**,比如下图所示 + +针对该题目,进行一些发散性思考。(不一定是最优的,但是思考很重要) + +![](img/Xnip2019-11-06_22-49-50.jpg) + +# 剑指Offer + +很多公司,非大厂(大厂自己会改题)都从这个里面找算法题,你会看到很多校招的算法题90%都是在这本书里,所以如果你时间不多,可以突击刷这个 + + + +# LeetCode + +分为简单和中等,因为大厂的算法一般也就是中等难度,很多算法都是在中等(算法岗除外) + +每个题都是通过了测试,但是代码的风格质量可能不是最优的 + +总共就一个项目,项目分类按照包分类,分为 + +- 简单 + - 数组 + - 链表 + - 哈希 + - 二叉树 + - 等.. +- 中等 + +因为题目不可能是孤立的(比如一个题可能同时要用到数组和hash),所以只是大致分了下,我用什么标签搜索的就放进了哪个包 + +每一个类就是一个题目,每个类中的注释都会有 + +- 题目描述 +- 示例 +- 思路 +- 代码 \ No newline at end of file diff --git a/Algorithm/img/Xnip2019-11-06_22-42-30.jpg b/Algorithm/img/Xnip2019-11-06_22-42-30.jpg new file mode 100644 index 0000000..6c0983f Binary files /dev/null and b/Algorithm/img/Xnip2019-11-06_22-42-30.jpg differ diff --git a/Algorithm/img/Xnip2019-11-06_22-49-50.jpg b/Algorithm/img/Xnip2019-11-06_22-49-50.jpg new file mode 100644 index 0000000..47a5d7a Binary files /dev/null and b/Algorithm/img/Xnip2019-11-06_22-49-50.jpg differ diff --git a/Algorithm/java/KMP/.idea/workspace.xml b/Algorithm/java/KMP/.idea/workspace.xml deleted file mode 100644 index a94b281..0000000 --- a/Algorithm/java/KMP/.idea/workspace.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1556280699431 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.8 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Algorithm/java/LeetCode/leetcode/LeetCode.iml b/Algorithm/java/LeetCode/leetcode/LeetCode.iml deleted file mode 100644 index c90834f..0000000 --- a/Algorithm/java/LeetCode/leetcode/LeetCode.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Algorithm/java/LeetCode/leetcode/out/production/LeetCode/easy/array/_121_BestTimeToBuyAndSellStock.class b/Algorithm/java/LeetCode/leetcode/out/production/LeetCode/easy/array/_121_BestTimeToBuyAndSellStock.class deleted file mode 100644 index 52e27e9..0000000 Binary files a/Algorithm/java/LeetCode/leetcode/out/production/LeetCode/easy/array/_121_BestTimeToBuyAndSellStock.class and /dev/null differ diff --git a/Algorithm/java/LeetCode/leetcode/src/easy/array/_121_BestTimeToBuyAndSellStock.java b/Algorithm/java/LeetCode/leetcode/src/easy/array/_121_BestTimeToBuyAndSellStock.java deleted file mode 100644 index 2b241d6..0000000 --- a/Algorithm/java/LeetCode/leetcode/src/easy/array/_121_BestTimeToBuyAndSellStock.java +++ /dev/null @@ -1,70 +0,0 @@ -package easy.array; - -/** - *描述 : 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 - * 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 - * 注意你不能在买入股票前卖出股票。 - * - *示例1: 输入: [7,1,5,3,6,4] - * 输出: 5 - * 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 - * 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。 - * - *示例2 输入: [7,6,4,3,1] - * 输出: 0 - * 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 - */ - -public class _121_BestTimeToBuyAndSellStock { - - /** - * - * 直接暴力求解,遍历两次数组,求出最优解 - */ - - public static int violence(int[] prices){ - if(prices == null || prices.length ==0){ - return 0; - } - int maxProfit = 0; - for (int i = 0; i < prices.length; i++) { - for (int j = i+1; j < prices.length; j++) { - if(prices[j]-prices[i] >maxProfit){ - maxProfit = prices[j]-prices[i]; - } - - } - } - return maxProfit; - } - - - /** - * 动态规划: - * 1.定义一个从最开始到当前位置的最小值 - * 2.计算今天减去最小值的值,也就是当天的利润 - * 3.比较当天的利润和之前的最大利润 - */ - public static int dp(int[] prices){ - if(prices == null || prices.length == 0) - return 0; - - int mixProfit = Integer.MAX_VALUE; - int maxProfit = 0; - - for (int i = 0; i < prices.length; i++) { - //找到最小值 - mixProfit = Math.min(mixProfit,prices[i]); - //比较当天的利润和最大利润 - maxProfit = Math.max(maxProfit,(prices[i]-mixProfit)); - - } - return maxProfit; - - } - - public static void main(String[] args) { - int a[] ={7,6,4,3,1}; - System.out.println(violence(a) == dp(a)); - } -} diff --git a/Algorithm/java/LeetCode/leetcode/src/easy/array/_122_BestTimeToBuyAndSellStock2.java b/Algorithm/java/LeetCode/leetcode/src/easy/array/_122_BestTimeToBuyAndSellStock2.java deleted file mode 100644 index b67c493..0000000 --- a/Algorithm/java/LeetCode/leetcode/src/easy/array/_122_BestTimeToBuyAndSellStock2.java +++ /dev/null @@ -1,43 +0,0 @@ -package easy.array; - -/** - * 描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 - * 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 - * 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 - * - * 示例1: 输入: [7,1,5,3,6,4] - * 输出: 7 - * 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 - * 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 - * 示例2: 输入: [1,2,3,4,5] - * 输出: 4 - * 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 - * 注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 - * 因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 - * - * 思路:使用两个变量 一个valley表示当天天数中最低价, - * 一个peek表示当前所有的天数中的最高价 - * 因为我们可以买卖股票且是不用付手续费的,也就是我们可以卖了这一只股票,然后再把它买回来 - * 所以上面示例2中,5-1和 (2-1)+(3-2)+(4-3)+(5-4)的效果是一样的,所以顶峰就找递增的,底就找递减的 - * - */ -public class _122_BestTimeToBuyAndSellStock2 { - public int maxProfit(int[] prices) { - if(prices.length == 0 || prices == null) - return 0; - int valley = prices[0],peek = prices[0]; - int i =0; - int maxProfit = 0; - while(i < prices.length-1){ - while(i=prices[i+1]) - i++; - valley = prices[i]; - while(i - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/count1InNum/.idea/workspace.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/count1InNum/.idea/workspace.xml" deleted file mode 100644 index 27ab849..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/count1InNum/.idea/workspace.xml" +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - true - true - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1549599588335 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.8 - - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/countPow.iml" "b/Algorithm/java/\345\211\221\346\214\207offer/countPow/countPow.iml" deleted file mode 100644 index c90834f..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/countPow.iml" +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/out/production/countPow/Main.class" "b/Algorithm/java/\345\211\221\346\214\207offer/countPow/out/production/countPow/Main.class" deleted file mode 100644 index e3515c6..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/out/production/countPow/Main.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/src/Main.java" "b/Algorithm/java/\345\211\221\346\214\207offer/countPow/src/Main.java" deleted file mode 100644 index fcb868c..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/countPow/src/Main.java" +++ /dev/null @@ -1,28 +0,0 @@ -/** - * 计算一个数的乘方 - */ - -public class Main { - - public static void main(String[] args) { - System.out.println(solution(3,3)); - - } - - - public static int solution(int base,int exponent){ - - int result=0; - if(exponent==0) - return 1; - if (exponent==1) - return base; - - result=solution(base,exponent>>1); - result*=result; - if(exponent%2==1){ - result*=base; - } - return result; - } -} diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/compiler.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/compiler.xml" deleted file mode 100644 index 217af47..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/compiler.xml" +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/description.html" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/description.html" deleted file mode 100644 index db5f129..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/description.html" +++ /dev/null @@ -1 +0,0 @@ -Simple Java application that includes a class with main() method \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/encodings.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/encodings.xml" deleted file mode 100644 index e206d70..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/encodings.xml" +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/misc.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/misc.xml" deleted file mode 100644 index de8f7c7..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/misc.xml" +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/modules.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/modules.xml" deleted file mode 100644 index 59c3b94..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/modules.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/workspace.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/workspace.xml" deleted file mode 100644 index f88ac4f..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/workspace.xml" +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1552104752438 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.8 - - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingleton.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingleton.class" deleted file mode 100644 index 462be04..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingleton.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingletonStatic.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingletonStatic.class" deleted file mode 100644 index 62b796a..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/HungerSingletonStatic.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingleton.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingleton.class" deleted file mode 100644 index 0c0548f..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingleton.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingletonSecurity.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingletonSecurity.class" deleted file mode 100644 index 1335642..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/LazySingletonSecurity.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Main.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Main.class" deleted file mode 100644 index 79199e8..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Main.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Person.class" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Person.class" deleted file mode 100644 index b4d77c6..0000000 Binary files "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/out/production/singletonDemo/Person.class" and /dev/null differ diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/singletonDemo.iml" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/singletonDemo.iml" deleted file mode 100644 index c90834f..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/singletonDemo.iml" +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/HungerSingleton.java" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/HungerSingleton.java" deleted file mode 100644 index 6c9a885..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/HungerSingleton.java" +++ /dev/null @@ -1,35 +0,0 @@ -/** - * 饿汉式,线程安全 - * 缺点:浪费内存资源 - */ - -public class HungerSingleton { - - // 构造方法私有 - private HungerSingleton(){ - - } - - private final static HungerSingleton instance = new HungerSingleton(); - - // 对外提供方法 - public static HungerSingleton getInstance(){ - return instance; - } -} - -class HungerSingletonStatic{ - - private static HungerSingletonStatic instance; - private HungerSingletonStatic(){ - - } - - static { - instance = new HungerSingletonStatic(); - } - - public static HungerSingletonStatic getInstance() { - return instance; - } -} diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/LazySingleton.java" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/LazySingleton.java" deleted file mode 100644 index 718ce71..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/LazySingleton.java" +++ /dev/null @@ -1,42 +0,0 @@ -/** - * 懒汉式: - * 优点:用到的时候才添加 - * 缺点:线程不安全,当两个线程同时调用的时候,会创建两个实例 - */ - -public class LazySingleton { - private static LazySingleton instance; - private LazySingleton(){ - - } - - public static LazySingleton getInstance() { - if (instance == null) { - instance = new LazySingleton(); - } - return instance; - } -} - - -/** - * 懒汉式 - * 双重锁确保线程安全,同时又提升了性能 - */ -class LazySingletonSecurity{ - private static LazySingletonSecurity instance1; - private LazySingletonSecurity(){ - - } - - public static LazySingletonSecurity getInstance1() { - if (instance1 == null) { - synchronized (LazySingletonSecurity.class){ - if (instance1 == null) { - instance1 = new LazySingletonSecurity(); - } - } - } - return instance1; - } -} \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Main.java" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Main.java" deleted file mode 100644 index 3e6121c..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Main.java" +++ /dev/null @@ -1,11 +0,0 @@ -public class Main { - public static void main(String[] args) { - - Person p = new Person("张三", 19); - String s="sdaf "; - System.out.println(p.toString()); - System.out.println(s); - - } -} - diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Person.java" "b/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Person.java" deleted file mode 100644 index ff7a0c7..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/singletonDemo/src/Person.java" +++ /dev/null @@ -1,34 +0,0 @@ -public class Person { - private String name; - private int age; - - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - public Person(String name, int age) { - - this.name = name; - this.age = age; - } - - public Person() { - - } -} - - diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/compiler.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/compiler.xml" deleted file mode 100644 index a1757ae..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/compiler.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/misc.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/misc.xml" deleted file mode 100644 index fa53a49..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/symmertricalTree/.idea/misc.xml" +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/compiler.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/compiler.xml" deleted file mode 100644 index a1757ae..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/compiler.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/misc.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/misc.xml" deleted file mode 100644 index fa53a49..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/treeToList/.idea/misc.xml" +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/compiler.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/compiler.xml" deleted file mode 100644 index a1757ae..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/compiler.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/misc.xml" "b/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/misc.xml" deleted file mode 100644 index fa53a49..0000000 --- "a/Algorithm/java/\345\211\221\346\214\207offer/verifySquenceOfBST/.idea/misc.xml" +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/compiler.xml" "b/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/compiler.xml" deleted file mode 100644 index a1757ae..0000000 --- "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/compiler.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/misc.xml" "b/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/misc.xml" deleted file mode 100644 index fa53a49..0000000 --- "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/misc.xml" +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/modules.xml" "b/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/modules.xml" deleted file mode 100644 index cdfa7d1..0000000 --- "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/modules.xml" +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/workspace.xml" "b/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/workspace.xml" deleted file mode 100644 index cb91897..0000000 --- "a/Algorithm/java/\346\236\201\345\256\242\346\227\266\351\227\264-\345\267\246\347\245\236\347\256\227\346\263\225/sort/.idea/workspace.xml" +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - true - true - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + 1579134050324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/lambda_demo.iml" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/lambda_demo.iml" new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/lambda_demo.iml" @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/pom.xml" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/pom.xml" new file mode 100644 index 0000000..0a0c1f7 --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/pom.xml" @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.example + lambda_demo + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-parent + 2.1.5.RELEASE + + + + + + org.projectlombok + lombok + 1.18.10 + provided + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + + + + com.alibaba + fastjson + 1.2.4 + + + + + \ No newline at end of file diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/Student.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/Student.java" new file mode 100644 index 0000000..c62b23f --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/Student.java" @@ -0,0 +1,26 @@ +package com.leosanqing; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @Author: leosanqing + * @Date: 2020/1/17 上午7:54 + * @Package: com.leosanqing + * @Description: 学生类 + */ +@Data +@AllArgsConstructor +public class Student { + private String name; + private int age; + private String sex; + /** + * 课程 + */ + private String subject; + private int height; + private int weight; + private String teacher; + +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/cart/Sku.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/cart/Sku.java" new file mode 100644 index 0000000..6add2dc --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/cart/Sku.java" @@ -0,0 +1,20 @@ +package com.leosanqing.cart; + +import com.leosanqing.enums.CategoryEnum; +import lombok.Data; + +/** + * @Author: leosanqing + * @Date: 2020/1/16 上午8:23 + * @Package: com.leosanqing.cart + * @Description: 购物车商品规格对象 + */ +@Data +public class Sku { + private Integer skuId; + private String name; + private Double price; + private Integer totalNum; + private Double totalPrice; + private Enum category; +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/enums/CategoryEnum.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/enums/CategoryEnum.java" new file mode 100644 index 0000000..0527718 --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/enums/CategoryEnum.java" @@ -0,0 +1,26 @@ +package com.leosanqing.enums; + +import lombok.Getter; + +/** + * @Author: leosanqing + * @Date: 2020/1/16 上午8:26 + * @Package: com.leosanqing.cart + * @Description: 分类枚举 + */ +public enum CategoryEnum { + FOOD(10,"食品"), + CLOTHING(20,"衣服"), + BOOK(30,"图书"), + ELECTRONIC(40,"电子"), + + + ; + private int code; + private String name; + + CategoryEnum(int code,String name){ + this.code = code; + this.name = name; + } +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/AgePredicate.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/AgePredicate.java" new file mode 100644 index 0000000..9a5509f --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/AgePredicate.java" @@ -0,0 +1,16 @@ +package com.leosanqing.predicate; + +import com.leosanqing.Student; + +/** + * @Author: leosanqing + * @Date: 2020/1/19 下午11:49 + * @Package: com.leosanqing.predicate + * @Description: 根据年龄过滤 + */ +public class AgePredicate implements StudentPredicate { + @Override + public boolean filter(Student student) { + return student.getAge() > 20; + } +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/StudentPredicate.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/StudentPredicate.java" new file mode 100644 index 0000000..436a26a --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/StudentPredicate.java" @@ -0,0 +1,13 @@ +package com.leosanqing.predicate; + +import com.leosanqing.Student; + +/** + * @Author: leosanqing + * @Date: 2020/1/19 下午11:41 + * @Package: com.leosanqing.service + * @Description: 学生条件接口 + */ +public interface StudentPredicate { + boolean filter(Student student); +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/TeacherPredicate.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/TeacherPredicate.java" new file mode 100644 index 0000000..b80f5d2 --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/predicate/TeacherPredicate.java" @@ -0,0 +1,16 @@ +package com.leosanqing.predicate; + +import com.leosanqing.Student; + +/** + * @Author: leosanqing + * @Date: 2020/1/19 下午11:51 + * @Package: com.leosanqing.predicate + * @Description: 根据老师过滤 + */ +public class TeacherPredicate implements StudentPredicate{ + @Override + public boolean filter(Student student) { + return "如来".equals(student.getTeacher()); + } +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/service/StudentService.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/service/StudentService.java" new file mode 100644 index 0000000..4b8aabe --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/main/java/com/leosanqing/service/StudentService.java" @@ -0,0 +1,121 @@ +package com.leosanqing.service; + +import com.leosanqing.Student; +import com.leosanqing.predicate.StudentPredicate; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: leosanqing + * @Date: 2020/1/17 上午7:58 + * @Package: com.leosanqing.service + * @Description: 学生服务类 + */ +public class StudentService { + private static List studentList = new ArrayList() { + { + add(new Student("张三丰", 20, "男", "体育", + 180, 75, "太上老君")); + add(new Student("张无忌", 18, "男", "语文", + 178, 73, "文曲星")); + add(new Student("赵敏", 17, "女", "数学", + 170, 50, "太白金星")); + add(new Student("金毛狮王", 25, "男", "体育", + 176, 80, "太白金星")); + add(new Student("周芷若", 16, "女", "语文", + 168, 48, "太上老君")); + add(new Student("张三", 21, "男", "英语", + 172, 65, "如来")); + add(new Student("赵勇", 26, "男", "体育", + 188, 80, "太上老君")); + + + } + }; + + + public static List getStudentList() { + return studentList; + } + + /** + * 版本一 + * 找出女学生 + * + * @return + */ + public static List getFemaleStudent(List studentList) { + List students = new ArrayList<>(); + for (Student student : studentList) { + if ("女".equals(student.getSex())) { + students.add(student); + } + } + return students; + } + + /** + * 版本二 + *

+ * 根据输入性别查找学生 + * + * @param studentList + * @param sex + * @return + */ + public static List getStudentBySex(List studentList, String sex) { + List students = new ArrayList<>(); + for (Student student : studentList) { + if (sex.equals(student.getSex())) { + students.add(student); + } + } + return students; + } + + /** + * 版本三 + *

+ * 根据输入的年龄或者老师查找。true表示使用年龄,false表示使用老师这个参数 + * + * @param studentList + * @param age + * @return + */ + public static List getStudentByAgeOrTeacher(List studentList, int age, + String teacher, boolean ageOrTeacher) { + List students = new ArrayList<>(); + for (Student student : studentList) { + if ((ageOrTeacher && student.getAge() > age) + || !ageOrTeacher && teacher.equals(student.getTeacher()) + ) { + + students.add(student); + } + } + return students; + } + + + /** + * 版本四 + * + * 使用多态完成,使用策略者模式 + * @param studentList + * @param predicate + * @return + */ + public static List filterStudent(List studentList, StudentPredicate predicate) { + List students = new ArrayList<>(); + for (Student student : studentList) { + if(predicate.filter(student)){ + students.add(student); + } + } + return students; + } + + + +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/test/java/lambda/VersionTest.java" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/test/java/lambda/VersionTest.java" new file mode 100644 index 0000000..ef7a36b --- /dev/null +++ "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/src/test/java/lambda/VersionTest.java" @@ -0,0 +1,108 @@ +package lambda; + +import com.alibaba.fastjson.JSON; +import com.leosanqing.Student; +import com.leosanqing.predicate.AgePredicate; +import com.leosanqing.predicate.StudentPredicate; +import com.leosanqing.predicate.TeacherPredicate; +import com.leosanqing.service.StudentService; +import org.junit.Test; + +import java.util.List; + +/** + * @Author: leosanqing + * @Date: 2020/1/17 上午8:20 + * @Package: lambda + * @Description: 版本测试 + */ + +public class VersionTest { + + + /** + * 第一版 + * + * 根据性别查找 + */ + @Test + public void getFemaleStudent(){ + final List studentList = StudentService.getStudentList(); + + final List femaleStudents = StudentService.getFemaleStudent(studentList); + + System.out.println(JSON.toJSONString(femaleStudents,true)); + + } + + + /** + * 第二版 根据输入性别查找 + */ + @Test + public void getStudentBySex(){ + final List studentList = StudentService.getStudentList(); + + final List femaleStudents = StudentService.getStudentBySex(studentList,"男"); + + System.out.println(JSON.toJSONString(femaleStudents,true)); + + } + + /** + * 版本三: 根据两个参数判断查找 + */ + @Test + public void getStudentByAgeOrTeacher(){ + final List studentList = StudentService.getStudentList(); + + final List studentByAgeOrTeacher = StudentService.getStudentByAgeOrTeacher(studentList, 20, null, true); + System.out.println(JSON.toJSONString(studentByAgeOrTeacher,true)); + + + } + + /** + * 版本四,使用接口,策略者模式 + */ + @Test + public void filterStudent(){ + final List studentList = StudentService.getStudentList(); + + final TeacherPredicate teacherPredicate = new TeacherPredicate(); + + final List students = StudentService.filterStudent(studentList,teacherPredicate); + System.out.println(JSON.toJSONString(students,true)); + + } + + + /** + * 版本五,使用匿名内部类 + */ + @Test + public void AnonymousInnerClass(){ + final List studentList = StudentService.getStudentList(); + final List students = StudentService.filterStudent(studentList, new StudentPredicate() { + @Override + public boolean filter(Student student) { + return "如来".equals(student.getTeacher()); + } + }); + System.out.println(JSON.toJSONString(students,true)); + + } + + + /** + * 版本五,使用lambda + */ + @Test + public void lambda(){ + final List studentList = StudentService.getStudentList(); + final List students = StudentService.filterStudent(studentList, student -> "如来".equals(student.getTeacher())); + System.out.println(JSON.toJSONString(students,true)); + + } + +} diff --git "a/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/target/.DS_Store" "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/target/.DS_Store" new file mode 100644 index 0000000..5008ddf Binary files /dev/null and "b/Utils/jdk8\346\226\260\347\211\271\346\200\247/stream/lambda_demo/target/.DS_Store" differ diff --git a/banner-demo/.idea/$CACHE_FILE$ b/banner-demo/.idea/$CACHE_FILE$ new file mode 100644 index 0000000..6cb8985 --- /dev/null +++ b/banner-demo/.idea/$CACHE_FILE$ @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/banner-demo/.idea/.gitignore b/banner-demo/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/banner-demo/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/banner-demo/.idea/compiler.xml b/banner-demo/.idea/compiler.xml new file mode 100644 index 0000000..845b656 --- /dev/null +++ b/banner-demo/.idea/compiler.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/banner-demo/.idea/inspectionProfiles/Project_Default.xml b/banner-demo/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/banner-demo/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/banner-demo/.idea/jarRepositories.xml b/banner-demo/.idea/jarRepositories.xml new file mode 100644 index 0000000..35a2ecc --- /dev/null +++ b/banner-demo/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/banner-demo/.idea/misc.xml b/banner-demo/.idea/misc.xml new file mode 100644 index 0000000..3ccb27b --- /dev/null +++ b/banner-demo/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/vcs.xml" b/banner-demo/.idea/vcs.xml similarity index 64% rename from "Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/vcs.xml" rename to banner-demo/.idea/vcs.xml index def6a6a..6c0b863 100644 --- "a/Algorithm/java/\345\211\221\346\214\207offer/fibonacci/.idea/vcs.xml" +++ b/banner-demo/.idea/vcs.xml @@ -1,7 +1,6 @@ - + - - + \ No newline at end of file diff --git a/banner-demo/pom.xml b/banner-demo/pom.xml new file mode 100644 index 0000000..6a4f851 --- /dev/null +++ b/banner-demo/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + org.example + banner-demo + 1.0-SNAPSHOT + + + + + org.springframework.boot + spring-boot-starter-web + 2.1.4.RELEASE + + + \ No newline at end of file diff --git a/banner-demo/src/main/java/com/leosanqing/demo/BannerDemo.java b/banner-demo/src/main/java/com/leosanqing/demo/BannerDemo.java new file mode 100644 index 0000000..70daefb --- /dev/null +++ b/banner-demo/src/main/java/com/leosanqing/demo/BannerDemo.java @@ -0,0 +1,18 @@ +package com.leosanqing.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author: rtliu + * @Date: 2020/6/28 上午10:17 + * @Package: com.leosanqing.demo + * @Description: + * @Version: + */ +@SpringBootApplication +public class BannerDemo { + public static void main(String[] args) { + SpringApplication.run(BannerDemo.class,args); + } +} diff --git a/banner-demo/src/main/resources/application.yml b/banner-demo/src/main/resources/application.yml new file mode 100644 index 0000000..51c551f --- /dev/null +++ b/banner-demo/src/main/resources/application.yml @@ -0,0 +1,7 @@ +server: + port: 10011 + +spring: + banner: + image: + location: banner1.png \ No newline at end of file diff --git a/banner-demo/src/main/resources/banner.gif b/banner-demo/src/main/resources/banner.gif new file mode 100644 index 0000000..7a9a632 Binary files /dev/null and b/banner-demo/src/main/resources/banner.gif differ diff --git a/banner-demo/src/main/resources/banner.jpg b/banner-demo/src/main/resources/banner.jpg new file mode 100644 index 0000000..79089d7 Binary files /dev/null and b/banner-demo/src/main/resources/banner.jpg differ diff --git a/banner-demo/src/main/resources/banner.txt b/banner-demo/src/main/resources/banner.txt new file mode 100644 index 0000000..d85ea96 --- /dev/null +++ b/banner-demo/src/main/resources/banner.txt @@ -0,0 +1,19 @@ + + .::::. + .::::::::. + ::::::::::: + ':::::::::::.. + :::::::::::::::' + ':::::::::::. + .::::::::::::::' + .:::::::::::... + ::::::::::::::'' + .:::. '::::::::'':::: + .::::::::. ':::::' ':::: + .::::':::::::. ::::: '::::. + .:::::' ':::::::::. ::::: ':::. + .:::::' ':::::::::.::::: '::. + .::::'' ':::::::::::::: '::. + .::'' ':::::::::::: :::... + ..:::: ':::::::::' .:' '''' + ..''''':' ':::::.' diff --git a/banner-demo/src/main/resources/banner1.png b/banner-demo/src/main/resources/banner1.png new file mode 100644 index 0000000..3ef38ff Binary files /dev/null and b/banner-demo/src/main/resources/banner1.png differ diff --git a/banner-demo/target/classes/application.yml b/banner-demo/target/classes/application.yml new file mode 100644 index 0000000..51c551f --- /dev/null +++ b/banner-demo/target/classes/application.yml @@ -0,0 +1,7 @@ +server: + port: 10011 + +spring: + banner: + image: + location: banner1.png \ No newline at end of file diff --git a/banner-demo/target/classes/banner.gif b/banner-demo/target/classes/banner.gif new file mode 100644 index 0000000..7a9a632 Binary files /dev/null and b/banner-demo/target/classes/banner.gif differ diff --git a/banner-demo/target/classes/banner.jpg b/banner-demo/target/classes/banner.jpg new file mode 100644 index 0000000..79089d7 Binary files /dev/null and b/banner-demo/target/classes/banner.jpg differ diff --git a/banner-demo/target/classes/banner.txt b/banner-demo/target/classes/banner.txt new file mode 100644 index 0000000..d85ea96 --- /dev/null +++ b/banner-demo/target/classes/banner.txt @@ -0,0 +1,19 @@ + + .::::. + .::::::::. + ::::::::::: + ':::::::::::.. + :::::::::::::::' + ':::::::::::. + .::::::::::::::' + .:::::::::::... + ::::::::::::::'' + .:::. '::::::::'':::: + .::::::::. ':::::' ':::: + .::::':::::::. ::::: '::::. + .:::::' ':::::::::. ::::: ':::. + .:::::' ':::::::::.::::: '::. + .::::'' ':::::::::::::: '::. + .::'' ':::::::::::: :::... + ..:::: ':::::::::' .:' '''' + ..''''':' ':::::.' diff --git a/banner-demo/target/classes/banner1.png b/banner-demo/target/classes/banner1.png new file mode 100644 index 0000000..3ef38ff Binary files /dev/null and b/banner-demo/target/classes/banner1.png differ diff --git a/books/README.md b/books/README.md index 715a459..a3eafd2 100644 --- a/books/README.md +++ b/books/README.md @@ -1,17 +1,21 @@ -前言 +# 前言 技术书籍是参考的别人的推荐,我自己也有很多没看。不过基本都是非常经典的书籍,如果你没有思路不知道选哪本来看,不如参考我的书单。 程序猿不能只限于技术,还要有广度,这些非技术类的都是非常好的书,我基本都看过的,所以你可以从我的每本书后面的简介选择感兴趣的来看。如果不知道哪些好,**我直接推荐你看吴军老师的书籍**,**至今他是我最最喜欢的作者**。 -**吴军老师**的书每本都非常吸引人,我看他的书基本都是一天都在那里看(浪潮之巅,三天读完,文明之光四本,四天看了三本半,数学之美,三天看完) + 如果想了解我们学计算机的为啥要学数学还有电路电子,我是学Java,py方向的为啥还要学C语言,计网,操作系统。我真心推荐你们看下这三本书,他们都非常非常有趣且不失深度的讲了为什么,而不只是很多书讲,是什么 - 数学之美 + - 码农翻身 + - 穿越计算机的迷雾 + + # 资源链接 **非技术**书籍我已经下载好(部分),百度云 @@ -94,6 +98,17 @@ - Mysql技术内幕 - 高性能Mysql +## 消息队列 + +- kafka + - 深入理解Kafka:核心设计与实践原理 + +## 容器 + +- Docker + - docker入门与实战 + - 第一个本 Docker书 + ## Redis - redis实战 @@ -119,44 +134,86 @@ ## 科普类 -- 穿越计算机迷雾(了解计算机怎么产生的,用到了啥技术) -- 上帝掷骰子吗 -- 码农翻身 +- 物理世界的数学奇迹(1.21更,数学是怎么影响物理的,物理又是怎么推进数学的。两者在交叉融合之后,又产生了多少神奇的理论。作为物理中目前非常非常热门的弦论,数学表达怎么发展的。) +- 改变世界的方程(1.21更,这本书非常非常nice,通过人物模拟对话的形式向我们展示了 爱因斯坦是怎么发展 牛顿的经典物理的,为啥会有光速不变性,爱因斯坦是怎么将时空统一的,相对论又是怎么兼容牛顿物理的。为啥爱因斯坦的方程能指导制造原子弹,是否有可能造出比氢弹威力更大的反物质弹) +- 数学大师(1.21更, 数学作为所有科学学科的基础,他由哪些数学大佬发展成这样的,你可能知道牛顿,莱布尼兹,高斯,黎曼。但还有很多你不知道的大佬们,我们享受科学带来的种种福利,应当了解哪些人对我们对我们的生活做出了巨大贡献) +- 人类简史(8.17更,我们人类如何从动物中脱颖而出成为地球的霸主,我们经历了三次革命——认知、农业、科学。每次都带来了哪些变革) +- 穿越计算机迷雾(了解计算机怎么产生的,用到了啥技术,如何) +- 上帝掷骰子吗(物理科学史话,不需要有什么物理基础就能看懂的激动人心的物理发展史,从牛顿的经典物理到爱因斯坦相对论再到现代的量子物理) +- 基因传(生物学科,讲述基因的发展历程及基因的作用,看过后至少不会对转基因,基因工程有偏见,大多宣传天然,妖魔转基因的都是收割智商税的) +- 码农翻身(用故事讲计算机的各种知识) - 从一到无穷大(生动形象的科普了很多很多我们不理解的东西,比如假如思维空间的物体在三维空间怎么呈现,怎么统一时间空间。[可以看下我的这个读后感](https://mp.weixin.qq.com/s?__biz=MzU0ODgzNjQ2MQ==&mid=2247483941&idx=1&sn=bf5a2fec08aea0733c75b5805090a2de&chksm=fbb84727cccfce31db3fed67971fe2760db6138c1d4ba204a4c041827584e57e1d13ae360b24&token=391583946&lang=zh_CN#rd)) +- 菊与刀(解读日本人的矛盾的性格的本质,别再被各种武士道啥的误导了,那个是评论家的片面解读) + +## 理财投资 -## 理财 +- 小狗钱钱(通过简单且生动具体的事,讲述如何理财) -- 小狗钱钱第一本(第一本是理财基础和一些道理,如果不是给初中前小孩子看,不建议看第二本) - 穷爸爸富爸爸(学校可不会教你怎么赚钱怎么创业,学校学不到的东西) -## 吴军老师的书籍(强烈安利,任何一本都是好书) +- 韭菜的自我修养(很小的一本书,很简单的道理,但是很实用) + +- 漫步华尔街 + +- 股市进阶之道 + +- 投资最重要的事 + + + +## 吴军老师的书籍(强烈安利) [可以看下这篇吴军老师的分享](https://pic1cdn.luojilab.com/html/poster/picRmko00X4v9FjoRE4Mkvy.html?ts=1556514071182&from=timeline&isappinstalled=0) -- 浪潮之巅(你所不知道的科技公司的兴衰) -- 硅谷之谜(浪潮之巅续,主要讲硅谷地区的公司) -- 文明之光(理科男角度的历史) +- 全球科技通识(什么是科学,什么是技术?什么又是科技,中国为啥一直缺乏科学思维,为啥工业革命之后科技发展的这么快,围绕人类发展的两条主线,能量与信息讲述全球科技的发展历程) +- 浪潮之巅(讲述上个世纪开始的互联网浪潮下的各大互联网公司的兴衰史,要了解互联网公司发展历史的千万不要错过) +- 硅谷之谜(浪潮之巅续,硅谷为何只在美国硅谷,其他地方模仿总学不来) +- 文明之光(从科技文明角度描述历史的发展,不是老套的人文英雄,帝王八卦,权术博弈,当时大四拿到书的两天基本是除了吃饭睡觉一直在看,真的很有趣) - 态度 - 大学之路(终生学习) -- 数学之美(我觉得更可以说是程序员该了解的数学) -- 全球科技通识(什么是科学,什么是技术?什么又是科技,中国(也可以说东方)为啥一直缺乏科学思维,为啥工业革命之后科技发展的这么快) +- 数学之美(讲述计算机中用到了哪些数学知识。很多人被书名中的数学所劝退,其实这本书并不需要太多数学知识,更多的是讲数学的作用,发展以及在计算机中的应用。当时看完觉得真的是相见恨晚,如果早点看,可能就不会对数学那么排斥,大学中的高数现代离散概率论一定要好好学) ## 提升思维和学习方法 - 如何阅读一本书(读书的四个层次以及不同类型书的阅读方法) + +- 少有人走的路(这本书前半段讲述家庭教育重要性,父母对孩子教育的影响非常深刻。很多父母都是巨婴,生了孩子不养,不如不生。(我最痛恨的就是那种生而不养的父母,真的让我恶心。可以看看电影【何以为家】,看的真虐心) + + 孩子心理性格有问题,基本都是家长的锅,学习不好也基本都是家长的锅。但是家长根本不会反思,全部甩给老师,要么甩给游戏、早恋等等。) + +- 认知天性(如何学习,为什么别人看似比你用的时间短,掌握的却比你好,重复就一定有用吗) + +- 稀缺(我们是如何陷入贫穷和忙碌的。用行为经济学为你解答疑惑) + - 原则(人生箴言,不过25岁之前或者人生阅历不够的应该看不懂,至少我现在看不懂) -- 异类(一万小时定理出处,大神之所以为大神的原因) -- 乌合之众(解读大众心理和提高自己的思维) + +- 异类(一万小时定理出处,稻田文化麦田文化,机遇比自身能力更重要,大神之所以为大神的原因) + +- 自学是门手艺(不会自学的人没有未来,别一上来就说自己不会。以Python为例,讲述如何自学技能) + +- 把时间当朋友(不要把时间当敌人,不管你怎么做,时间还是那样(对普通人来说还是绝对时空观)) + +- 乌合之众(解读大众心理) + - 娱乐至死(娱乐的危害) -- 深度工作(怎么提高工作效率) -- 学习之道(没怎么看懂,不过是一本畅销书,而且作者是个真正的大神) + +- 深度工作(怎么提高工作效率,放下手机,暂时承受孤独) + +- 学习之道(美国畅销书,讲述作者如何在棋艺和其他方面成为大师) + - 人性的弱点 -- 黑客与画家 + +- 黑客与画家(这个是2001年左右的书,里面很多对于互联网方面的洞见,过去将近20年了,你会直呼准) + +## 企业相关 + +- 奈飞文化手册(21世纪就要用21世纪的管理方法,还在使用20世纪的管理方法,是让人受不了的) +- 美国陷阱(公司高管因为公司和国家争端被迫入狱,讲述美国为了搞垮对手如何使用卑劣的手段强制让竞争对手认罚) ## 更好的生活 - 薛兆丰的经济学(不要把经济和金融搞混淆,用经济学思维指导行为可以做出更好的选择,也可以解释大部分现象,比如娱乐至死和乌合之众里面的一些东西) -- 具体生活(不过需要有一定资本,哈哈) +- 具体生活(怎么体验生活,不过需要有一定资本,哈哈) ## 产品相关 @@ -167,44 +224,72 @@ - 硅谷产品(作者是fb的产品经理) - 启示录-打造用户喜爱的产品 - 增长黑客 +- 侘寂(非常非常个性的一本书,书的设计也非常符合我的口味。讲述设计界的美学词汇) ## 名人传 -- 乔布斯传(推荐看英文版,只要上过高中做过阅读,基本无障碍) -- 特斯拉传(思维超前的发明家) -- 从孤独中醒来:微信之父张小龙(纯粹也能成功) +- 乔布斯传(推荐看英文版,只要上过高中做过阅读,基本无障碍.乔布斯在全世界封神,理念被互联网推崇。但他性格方面,尤其是对员工方面,不要太苛刻。 + + 苹果跟微软的那些事,乔布斯被踢出公司,跟斯卡利结怨,到后来被请回公司力挽狂澜,一举把濒临破产的苹果公司推向市值及创造力最高的公司) + +- 特斯拉传(严重被低估的工程师,思维超前的发明家) + +- 《硅谷钢铁侠:埃隆·马斯克的冒险人生》([如何看待年轻人崇拜马斯克](http://mp.weixin.qq.com/s?__biz=MzU0ODgzNjQ2MQ==&mid=100000457&idx=1&sn=24732e225c8ba6d63a11857d7802a136&chksm=7bb847cb4ccfcedddc771d51c2ddbd68816f06c075dfe09c8511f1e539e35c4571d943e1b2f4#rd)) + +- 从孤独中醒来:微信之父张小龙(纯粹也能成功,继乔布斯之后的极简主义代表。中国最牛产品经理。) + +- 只是为了好玩(linux 之父林纳斯自传) + +- 腾讯传(腾讯是如何从通信软件变成现在的巨无霸,在各个战役中,腾讯如何应对。最终,为什么会有中国最早的产品经理马化腾和最牛产品经理 张小龙) + +- 浮生六记("余忆童稚时,能张目对日,明察秋毫"。还记得以前语文书中的这篇文章吗?但是我觉得他最经典的是第一记,描述他与妻子间的爱情。虽没有什么海枯石烂,乃敢与君绝的惊天动地,也没有琼瑶式的狗血剧情。但从文字间能看到平淡但是令人向往的夫妻生活,让我一个没有结婚的,对此甚是羡慕) ## 科幻书籍 -- 基地(一共15本,哈里·谢顿通过心理学史预言帝国灭亡,并预言1000年之后建立新的帝国,[如果要看详细的可以参考我的这篇文章](http://mp.weixin.qq.com/s?__biz=MzU0ODgzNjQ2MQ==&mid=100000271&idx=1&sn=e113e57b123ef919d634c4cd84656933&chksm=7bb8470d4ccfce1bd93ef4571d06c839b7ed25b3c955ae300d8e97532bcbf07f1c67bcb202b0#rd)) +- 基地(超级超级好看的科幻巨著,一共15本。科幻小说巨佬,阿西莫夫的代表作,虽然你感受不到三体那种惊艳的物理知识,毕竟他很有年代了,但你能感受到构建出来的非常非常宏大的科幻世界架构 + + 哈里·谢顿通过心理学史预言帝国灭亡,并预言1000年之后建立新的帝国,他预留了两批人来建立新帝国,一个是明的,一个是暗的。如果有偏差就由另一批人来修正,最后两批人斗智斗勇[如果要看详细的可以参考我的这篇文章](http://mp.weixin.qq.com/s?__biz=MzU0ODgzNjQ2MQ==&mid=100000271&idx=1&sn=e113e57b123ef919d634c4cd84656933&chksm=7bb8470d4ccfce1bd93ef4571d06c839b7ed25b3c955ae300d8e97532bcbf07f1c67bcb202b0#rd)) + - 与罗摩相会(罗摩人好事成三,作者是真正的科幻大佬) + - 三体(丛林法则,水滴) +- 永恒的终结(基地前传,永恒国度的人试图通过时光机来改变各个历史,防止人们走向毁灭,最终永恒国度又是如何瓦解,为什么瓦解) + +- 童年的终结(比人类更高文明的超主,也只是更高文明的奴隶附庸。最终人类是如何进化,人类是如何灭绝。有另外一个名称,最后一个地球人) + ## 治愈 -- 解忧杂货铺(一封封穿越时空的信件,非常治愈的) -- 海街日记 +- 解忧杂货铺(东野圭吾的治愈系小说,讲述三个品行不太好的人,偷东西后被迫藏到一个杂货铺中,但这个杂货铺在某一天时有穿越时空的能力,他们能收到很多年前的人写的信。他们三个就进行回信,帮助他人的同时,也引导自己的心回归。最终还有因果轮回,这个悬念就留给大家自己探索吧) +- 海街日记(心情不好的时候看这个确实很治愈。只是简单的画出了四姐妹平时的生活,却能唤起自己内心最柔软的地方) +- 小王子(西方阅读率仅次于圣经的作品) ## 文学小说 -- 1984(老大哥在看着你,构想出几十年后的斯大林专制下的俄国,警醒世人不要让这种情况发生) -- 罗生门 +- 动物庄园 (8.15更,《1984》作者乔治·奥威尔的另一本神作,比1984更讽刺,里面的预言基本都实现,虽然是讽刺苏联,但上面可是不敢看,因为跟他们一模一样啊,想想被禁也是理所应当) +- 1984(老大哥在看着你,构想出几十年后的斯大林专制下的俄国,警醒世人不要让这种情况发生,但实际情况是预言成真,并且中国也同样) +- 人间失格 - 浮生六记(浮生若梦,为欢几何。读第一篇就把我吸引到了,原来 爱情是这样的) - -## 其他 - -- +- 罗生门(用很多短篇小说剖析人性) +- 了不起的盖茨比(穷屌丝想回到过去,以为自己有钱就能得到爱) - 白夜行(我的新年愿望:能在白天行走,共生的两个小孩,最后结局是咋样的) - 嫌疑人X的献身(宅男的爱受得起不?) - 月亮与六便士(满地都是六便士,他却抬头看见了月光) -- 1984(假象斯大林专制统治下的几十年) +- 麦田里的守望者(虽然满篇的脏话,但是却表达了我们青春期的时候的叛逆的心理) +- 追风筝的人(少爷阿米尔与佣人(但更偏向是奴隶那种)的儿子哈桑是情同手足的好基友。哈桑更是每次在他有危机困难的时候毫不犹豫的甚至愿意付出生命的帮助他。当有一天,哈桑去追风筝(这个是他们的一个活动),被其他人欺负的时候,阿米尔却没有站出来解救哈桑。哈桑被伤害了,但是没有怪罪阿米尔,也没有告诉别人。阿米尔一直很愧疚,后来战争一些原因导致哈桑死了(也是因为在维护阿米尔),他了解到哈桑有个儿子还被抓了,他这回像哈桑以前那样,勇敢站出来解救他儿子。而且还得知了很多真相....) +- 三岛由纪夫的作品 -## 好书,但大学前不推荐看的(很容易变丧) +## 历史相关 -- 人间失格(逃避现实,一步步失去人格) -- 三岛由纪夫的作品 -- 百年孤独 -- 最初的爱情,最后的仪式 +- 跌荡一百年、激荡三十年、激荡十年(吴晓波,从商人或者社会经济的角度分析我们国家从清末到2018年的变革。纵观全局可以看到 官商模式基本从未改变,科技在进步,历史仍在轮回。可以看到清末官商如何试图拯救清朝;抗日战争时期中国商人发挥的作用;不可说的十年之中,商人如何挣扎生存;从改革开放之后,经济制度如何改变,中国如何腾飞) + +- 企鹅欧洲史 + +- 第二次世界大战回忆录(临危受命的丘吉尔讲述二战) + + + + diff --git a/designPattern/.idea/inspectionProfiles/Project_Default.xml b/designPattern/.idea/inspectionProfiles/Project_Default.xml index 27444f0..12b05d5 100644 --- a/designPattern/.idea/inspectionProfiles/Project_Default.xml +++ b/designPattern/.idea/inspectionProfiles/Project_Default.xml @@ -30,7 +30,7 @@