From d57aefe4bbc7e6b447f2ac0a021947ba7554362c Mon Sep 17 00:00:00 2001
From: jxnu-liguobin <568845948@qq.com>
Date: Wed, 15 Aug 2018 23:30:31 +0800
Subject: [PATCH 001/123] =?UTF-8?q?=E4=BD=BF=E7=94=A8IDEA=E9=87=8D?=
=?UTF-8?q?=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 6 +
README.md | 35 +
pom.xml | 96 +
src/cn/edu/jxnu/aio/AIOEchoServer.java | 73 +
.../edu/jxnu/classloader/PathClassLoader.java | 31 +
src/cn/edu/jxnu/concurrent/1.png | Bin 0 -> 30710 bytes
src/cn/edu/jxnu/concurrent/2.jpg | Bin 0 -> 44403 bytes
src/cn/edu/jxnu/concurrent/3.png | Bin 0 -> 92858 bytes
src/cn/edu/jxnu/concurrent/4.png | Bin 0 -> 34948 bytes
src/cn/edu/jxnu/concurrent/5.png | Bin 0 -> 52839 bytes
src/cn/edu/jxnu/concurrent/6.jpg | Bin 0 -> 59390 bytes
src/cn/edu/jxnu/concurrent/7.png | Bin 0 -> 129249 bytes
src/cn/edu/jxnu/concurrent/8.png | Bin 0 -> 86849 bytes
src/cn/edu/jxnu/concurrent/AQS.md | 724 ++
.../jxnu/concurrent/InterruptedException.java | 31 +
.../jxnu/concurrent/InterruptedThread.java | 29 +
src/cn/edu/jxnu/concurrent/MyThread.java | 21 +
.../edu/jxnu/concurrent/MyThreadBrother.java | 21 +
src/cn/edu/jxnu/concurrent/MyThreadInfo.java | 21 +
.../edu/jxnu/concurrent/ThreadSafeStop.java | 46 +
.../edu/jxnu/concurrent/ThreadStateDemo.java | 42 +
src/cn/edu/jxnu/concurrent/package-info.java | 19 +
.../\345\244\232\347\272\277\347\250\213.md" | 369 +
.../designpattern/AbstractFactoryMethod.java | 29 +
src/cn/edu/jxnu/designpattern/Adapter.java | 55 +
.../jxnu/designpattern/BuilderPattern.java | 122 +
src/cn/edu/jxnu/designpattern/Composite.java | 53 +
src/cn/edu/jxnu/designpattern/Decorator.java | 27 +
.../edu/jxnu/designpattern/FactoryMethod.java | 42 +
.../jxnu/designpattern/FlyweightFactory.java | 68 +
src/cn/edu/jxnu/designpattern/Mediator.java | 54 +
src/cn/edu/jxnu/designpattern/Memento.java | 91 +
src/cn/edu/jxnu/designpattern/Observer.java | 77 +
src/cn/edu/jxnu/designpattern/Prototype.java | 45 +
src/cn/edu/jxnu/designpattern/Proxy.java | 69 +
.../designpattern/ResponsibilityChain.java | 66 +
.../designpattern/Singleton_ThreadSafe.java | 33 +
.../designpattern/Singleton_UnThreadSafe.java | 28 +
.../jxnu/designpattern/Singleton_others.java | 66 +
src/cn/edu/jxnu/designpattern/Strategy.java | 58 +
.../jxnu/designpattern/TemplateMethod.java | 93 +
.../jxnu/designpattern/adapter/Adaptee.java | 7 +
.../jxnu/designpattern/adapter/Adapter.java | 11 +
.../jxnu/designpattern/adapter/DemoTest.java | 13 +
.../adapter/TargetInterface.java | 6 +
.../adapter/objectadapter/Adapter.java | 17 +
.../adapter/objectadapter/DemoTest.java | 15 +
.../objectadapter/TargetInterface.java | 6 +
.../\351\200\202\351\205\215\345\231\250.jpg" | Bin 0 -> 17109 bytes
.../designpattern/decorator/Component.java | 5 +
.../decorator/ConcreteComponent.java | 10 +
.../decorator/ConcreteDecorator.java | 30 +
.../designpattern/decorator/Decorator.java | 18 +
.../decorator/TestDecorator.java | 13 +
...\350\243\205\351\245\260\345\231\250.jpeg" | Bin 0 -> 33148 bytes
.../strategy/ChildUnder150CM.java | 57 +
.../jxnu/designpattern/strategy/Context.java | 30 +
.../strategy/ElderMoreThen60YearsOld.java | 48 +
.../edu/jxnu/designpattern/strategy/Main.jpg | Bin 0 -> 120657 bytes
.../strategy/PeopleComeTimeMoreThenThree.java | 48 +
.../jxnu/designpattern/strategy/Strategy.java | 29 +
.../jxnu/designpattern/strategy/Student.java | 44 +
.../designpattern/strategy/package-info.java | 1 +
.../strategy/\347\255\226\347\225\245.jpg" | Bin 0 -> 26646 bytes
.../designpattern/visitor/ClientTest.java | 31 +
.../visitor/ConcreteElement.java | 19 +
.../visitor/ConcreteElement2.java | 19 +
.../visitor/ConcreteVisitor.java | 19 +
.../designpattern/visitor/ElementNode.java | 11 +
.../designpattern/visitor/ObjectStruture.java | 30 +
.../jxnu/designpattern/visitor/Visitor.java | 15 +
.../\350\256\277\351\227\256\350\200\205.png" | Bin 0 -> 75683 bytes
.../\344\270\255\344\273\213\350\200\205.jpg" | Bin 0 -> 32846 bytes
.../\344\272\253\345\205\203.jpg" | Bin 0 -> 69208 bytes
.../\344\273\243\347\220\206.jpg" | Bin 0 -> 14819 bytes
.../\345\216\237\345\236\213.png" | Bin 0 -> 62500 bytes
...5\346\243\200\346\237\245\347\202\271.png" | Bin 0 -> 32120 bytes
...5\345\216\202\346\226\271\346\263\225.png" | Bin 0 -> 8214 bytes
.../\345\273\272\351\200\240\350\200\205.gif" | Bin 0 -> 11805 bytes
...\350\261\241\345\267\245\345\216\202.jpeg" | Bin 0 -> 116066 bytes
...1\345\244\207\345\277\230\345\275\225.png" | Bin 0 -> 25895 bytes
.../\347\273\204\345\220\210.jpeg" | Bin 0 -> 27790 bytes
.../\350\247\202\345\257\237\350\200\205.png" | Bin 0 -> 13024 bytes
...6\350\256\241\345\216\237\345\210\231.txt" | 63 +
...\350\256\241\345\216\237\345\210\231.docx" | Bin 0 -> 26647 bytes
.../\350\264\243\344\273\273\351\223\276.png" | Bin 0 -> 21650 bytes
...1\345\244\207\345\277\230\345\275\225.png" | Bin 0 -> 33214 bytes
src/cn/edu/jxnu/encode/BASE.java | 52 +
src/cn/edu/jxnu/encode/BASE64.java | 30 +
.../jvm/classloader/ClassLoaderInfoT.java | 13 +
.../edu/jxnu/jvm/classloader/FloatInJvm.java | 12 +
src/cn/edu/jxnu/jvm/classloader/InitMain.java | 23 +
.../jxnu/jvm/classloader/IntegerInJvm.java | 21 +
.../edu/jxnu/jvm/classloader/JvmXmxArgs.java | 15 +
.../edu/jxnu/jvm/classloader/LocalVarGC.java | 48 +
.../edu/jxnu/jvm/classloader/StackDeep.java | 30 +
src/cn/edu/jxnu/jvm/classloader/StringCL.java | 29 +
.../jxnu/jvm/classloader/UseFinalField.java | 19 +
.../jxnu/jvm/classloader/package-info.java | 18 +
.../jxnu/lambda/CompletableFutureDemo.java | 52 +
.../jxnu/lambda/CompletableFutureDemo2.java | 61 +
.../jxnu/lambda/CompletableFutureDemo3.java | 39 +
src/cn/edu/jxnu/lambda/IAnimal.java | 10 +
src/cn/edu/jxnu/lambda/Ihorse.java | 15 +
src/cn/edu/jxnu/lambda/Lambda.java | 257 +
src/cn/edu/jxnu/lambda/Lambda2.java | 149 +
src/cn/edu/jxnu/lambda/LongAdderDemo.java | 164 +
src/cn/edu/jxnu/lambda/Mule.java | 24 +
src/cn/edu/jxnu/lambda/NonFunc.java | 12 +
src/cn/edu/jxnu/lambda/StampedLockDemo1.java | 94 +
src/cn/edu/jxnu/leetcode/BFS.java | 73 +
src/cn/edu/jxnu/leetcode/BinarySearch.java | 30 +
src/cn/edu/jxnu/leetcode/Leetcode122.java | 28 +
src/cn/edu/jxnu/leetcode/Leetcode130_DFS.java | 68 +
.../leetcode/Leetcode131_Backtracking.java | 86 +
src/cn/edu/jxnu/leetcode/Leetcode141.java | 24 +
src/cn/edu/jxnu/leetcode/Leetcode167.java | 26 +
.../leetcode/Leetcode17_Backtracking.java | 109 +
src/cn/edu/jxnu/leetcode/Leetcode200_DFS.java | 49 +
.../leetcode/Leetcode216_Backtracking.java | 79 +
src/cn/edu/jxnu/leetcode/Leetcode241.java | 74 +
src/cn/edu/jxnu/leetcode/Leetcode257_DFS.java | 44 +
src/cn/edu/jxnu/leetcode/Leetcode345.java | 43 +
.../edu/jxnu/leetcode/Leetcode347_Sort.java | 46 +
.../leetcode/Leetcode37_Backtracking.java | 78 +
src/cn/edu/jxnu/leetcode/Leetcode392.java | 18 +
.../leetcode/Leetcode40_Backtracking.java | 71 +
src/cn/edu/jxnu/leetcode/Leetcode417_DFS.java | 90 +
src/cn/edu/jxnu/leetcode/Leetcode441.java | 47 +
.../edu/jxnu/leetcode/Leetcode451_Sort.java | 57 +
src/cn/edu/jxnu/leetcode/Leetcode452.java | 44 +
src/cn/edu/jxnu/leetcode/Leetcode455.java | 55 +
.../leetcode/Leetcode46_Backtracking.java | 60 +
.../leetcode/Leetcode47_Backtracking.java | 78 +
src/cn/edu/jxnu/leetcode/Leetcode524.java | 34 +
src/cn/edu/jxnu/leetcode/Leetcode540.java | 24 +
src/cn/edu/jxnu/leetcode/Leetcode605.java | 47 +
src/cn/edu/jxnu/leetcode/Leetcode633.java | 23 +
src/cn/edu/jxnu/leetcode/Leetcode665.java | 39 +
src/cn/edu/jxnu/leetcode/Leetcode680.java | 34 +
src/cn/edu/jxnu/leetcode/Leetcode69.java | 28 +
src/cn/edu/jxnu/leetcode/Leetcode695_DFS.java | 60 +
src/cn/edu/jxnu/leetcode/Leetcode763.java | 59 +
.../leetcode/Leetcode77_Backtracking.java | 78 +
.../leetcode/Leetcode78_Backtracking.java | 62 +
.../leetcode/Leetcode79_Backtracking.java | 83 +
src/cn/edu/jxnu/leetcode/Leetcode88.java | 25 +
.../leetcode/Leetcode90_Backtracking.java | 61 +
src/cn/edu/jxnu/leetcode/Leetcode93_DFS.java | 55 +
.../edu/jxnu/leetcode/Leetcode_128_Hash.java | 89 +
.../leetcode/Leetcode_155_DataStructure.java | 51 +
.../edu/jxnu/leetcode/Leetcode_168_Math.java | 34 +
.../edu/jxnu/leetcode/Leetcode_169_Math.java | 52 +
.../edu/jxnu/leetcode/Leetcode_172_Math.java | 28 +
src/cn/edu/jxnu/leetcode/Leetcode_1_Hash.java | 54 +
.../edu/jxnu/leetcode/Leetcode_204_Math.java | 48 +
.../jxnu/leetcode/Leetcode_205_String.java | 80 +
.../leetcode/Leetcode_20_DataStructure.java | 88 +
.../edu/jxnu/leetcode/Leetcode_217_Hash.java | 24 +
.../leetcode/Leetcode_225_DataStructure.java | 48 +
.../leetcode/Leetcode_232_DataStructure.java | 53 +
.../edu/jxnu/leetcode/Leetcode_238_Math.java | 45 +
.../jxnu/leetcode/Leetcode_242_String.java | 39 +
.../leetcode/Leetcode_283_ArrayMatrix.java | 28 +
.../jxnu/leetcode/Leetcode_290_String.java | 91 +
.../jxnu/leetcode/Leetcode_303_Interval.java | 35 +
.../edu/jxnu/leetcode/Leetcode_326_Math.java | 33 +
.../edu/jxnu/leetcode/Leetcode_367_Math.java | 37 +
.../edu/jxnu/leetcode/Leetcode_405_Math.java | 38 +
.../jxnu/leetcode/Leetcode_409_String.java | 39 +
.../jxnu/leetcode/Leetcode_413_Interval.java | 39 +
.../edu/jxnu/leetcode/Leetcode_415_Math.java | 27 +
.../edu/jxnu/leetcode/Leetcode_448_Array.java | 48 +
.../edu/jxnu/leetcode/Leetcode_462_Math.java | 102 +
.../edu/jxnu/leetcode/Leetcode_485_Array.java | 22 +
.../leetcode/Leetcode_503_DataStructure.java | 38 +
.../edu/jxnu/leetcode/Leetcode_504_Math.java | 35 +
.../jxnu/leetcode/Leetcode_53_Interval.java | 37 +
.../jxnu/leetcode/Leetcode_566_Matrix.java | 63 +
.../edu/jxnu/leetcode/Leetcode_583_LCS.java | 40 +
.../edu/jxnu/leetcode/Leetcode_594_Hash.java | 33 +
.../edu/jxnu/leetcode/Leetcode_628_Math.java | 105 +
.../edu/jxnu/leetcode/Leetcode_645_Array.java | 43 +
.../jxnu/leetcode/Leetcode_647_String.java | 44 +
.../edu/jxnu/leetcode/Leetcode_67_Math.java | 31 +
.../jxnu/leetcode/Leetcode_696_String.java | 95 +
src/cn/edu/jxnu/leetcode/Leetcode_72_LCS.java | 60 +
.../leetcode/Leetcode_739_DataStructure.java | 35 +
.../edu/jxnu/leetcode/Leetcode_9_String.java | 56 +
.../edu/jxnu/leetcode/Leetocde215_Sort.java | 89 +
src/cn/edu/jxnu/leetcode/ListNode.java | 49 +
.../edu/jxnu/leetcode/ListNodeConstants.java | 86 +
src/cn/edu/jxnu/leetcode/Test.scala | 6 +
src/cn/edu/jxnu/leetcode/TreeNode.java | 19 +
src/cn/edu/jxnu/leetcode/dp/Knapsack_Dp.java | 86 +
.../edu/jxnu/leetcode/dp/Leetcode_121_Dp.java | 32 +
.../edu/jxnu/leetcode/dp/Leetcode_123_Dp.java | 47 +
.../edu/jxnu/leetcode/dp/Leetcode_139_Dp.java | 36 +
.../edu/jxnu/leetcode/dp/Leetcode_188_Dp.java | 37 +
.../edu/jxnu/leetcode/dp/Leetcode_198_Dp.java | 80 +
.../edu/jxnu/leetcode/dp/Leetcode_279_Dp.java | 67 +
.../edu/jxnu/leetcode/dp/Leetcode_300_Dp.java | 113 +
.../edu/jxnu/leetcode/dp/Leetcode_322_Dp.java | 52 +
.../edu/jxnu/leetcode/dp/Leetcode_343_Dp.java | 27 +
.../edu/jxnu/leetcode/dp/Leetcode_376_Dp.java | 98 +
.../edu/jxnu/leetcode/dp/Leetcode_377_Dp.java | 42 +
.../edu/jxnu/leetcode/dp/Leetcode_416_Dp.java | 42 +
.../edu/jxnu/leetcode/dp/Leetcode_474_Dp.java | 44 +
.../edu/jxnu/leetcode/dp/Leetcode_494_Dp.java | 85 +
.../edu/jxnu/leetcode/dp/Leetcode_646_Dp.java | 58 +
.../edu/jxnu/leetcode/dp/Leetcode_650_Dp.java | 56 +
.../edu/jxnu/leetcode/dp/Leetcode_70_Dp.java | 47 +
.../edu/jxnu/leetcode/dp/Leetcode_91_Dp.java | 54 +
.../edu/jxnu/leetcode/dp/LengthOfLCS_Dp.java | 50 +
src/cn/edu/jxnu/leetcode/dp/package-info.java | 5 +
src/cn/edu/jxnu/leetcode/scala/DFS.scala | 95 +
.../leetcode/scala/Leetcode_101_Tree.scala | 34 +
.../leetcode/scala/Leetcode_104_Tree.scala | 18 +
.../leetcode/scala/Leetcode_110_Tree.scala | 34 +
.../leetcode/scala/Leetcode_111_Tree.scala | 25 +
.../leetcode/scala/Leetcode_112_Tree.scala | 32 +
.../scala/Leetcode_160_ListNode.scala | 45 +
.../scala/Leetcode_206_ListNode.scala | 49 +
.../leetcode/scala/Leetcode_21_ListNode.scala | 50 +
.../leetcode/scala/Leetcode_226_Tree.scala | 23 +
.../leetcode/scala/Leetcode_240_Array.scala | 49 +
.../leetcode/scala/Leetcode_287_Array .scala | 75 +
.../leetcode/scala/Leetcode_337_Tree.scala | 34 +
.../leetcode/scala/Leetcode_378_Array.scala | 48 +
.../scala/Leetcode_378_Array_Queue.scala | 49 +
.../leetcode/scala/Leetcode_404_Tree.scala | 35 +
.../leetcode/scala/Leetcode_437_Tree.scala | 48 +
.../leetcode/scala/Leetcode_543_Tree.scala | 39 +
.../leetcode/scala/Leetcode_565_Array.scala | 71 +
.../leetcode/scala/Leetcode_572_Tree.scala | 61 +
.../leetcode/scala/Leetcode_617_Tree.scala | 38 +
.../leetcode/scala/Leetcode_637_Tree.scala | 36 +
.../leetcode/scala/Leetcode_667_Array.scala | 41 +
.../leetcode/scala/Leetcode_671_Tree.scala | 28 +
.../leetcode/scala/Leetcode_697_Array.scala | 52 +
.../leetcode/scala/Leetcode_766_Array.scala | 52 +
.../leetcode/scala/Leetcode_769_Array.scala | 33 +
.../leetcode/scala/Leetcode_83_ListNode.scala | 42 +
.../jxnu/leetcode/scala/ScalaLoopOps.scala | 66 +
.../leetcode/scala/SecondLargeNumbers.scala | 21 +
.../jxnu/leetcode/scala/dp/ClimbStairs.scala | 28 +
.../jxnu/leetcode/scala/dp/CoinChange.scala | 29 +
.../jxnu/leetcode/scala/dp/MaxProfit.scala | 29 +
.../edu/jxnu/leetcode/scala/dp/NumArray.scala | 27 +
.../jxnu/leetcode/scala/dp/package-info.java | 7 +
.../edu/jxnu/leetcode/scala/package-info.java | 10 +
.../leetcode/\350\257\264\346\230\216.java" | 5 +
src/cn/edu/jxnu/nio/HeavySocketClient.java | 75 +
.../edu/jxnu/nio/MultiThreadEchoServer.java | 79 +
.../jxnu/nio/MultiThreadNIOEchoClient.java | 107 +
.../jxnu/nio/MultiThreadNIOEchoServer.java | 241 +
src/cn/edu/jxnu/nio/NIODemo1.java | 96 +
src/cn/edu/jxnu/nio/NIODemo2.java | 48 +
src/cn/edu/jxnu/nio/NIODemo3.java | 31 +
src/cn/edu/jxnu/nio/NIODemo4.java | 54 +
src/cn/edu/jxnu/nio/NIODemo5.java | 66 +
src/cn/edu/jxnu/nio/TestBlockingNIO.java | 89 +
src/cn/edu/jxnu/nio/TestBlockingNIO2.java | 74 +
src/cn/edu/jxnu/nio/TestNonBlockingNIO.java | 123 +
src/cn/edu/jxnu/nio/TestNonBlockingNIO2.java | 71 +
src/cn/edu/jxnu/nio/TestPipe.java | 34 +
src/cn/edu/jxnu/other/.gitignore | 0
src/cn/edu/jxnu/other/Base.java | 37 +
src/cn/edu/jxnu/other/Demo.js | 148 +
src/cn/edu/jxnu/other/DynamicProxy.java | 72 +
src/cn/edu/jxnu/other/GenericsTest.java | 22 +
src/cn/edu/jxnu/other/GesturePassword.java | 53 +
src/cn/edu/jxnu/other/JqueryNotes.js | 109 +
src/cn/edu/jxnu/other/LRU.java | 117 +
src/cn/edu/jxnu/other/MD5Tool.java | 42 +
src/cn/edu/jxnu/other/MobUrlConfigVo.java | 33 +
src/cn/edu/jxnu/other/MuchThreadDown.java | 180 +
src/cn/edu/jxnu/other/MyClient.java | 70 +
src/cn/edu/jxnu/other/MyServer.java | 65 +
src/cn/edu/jxnu/other/MyThead.java | 17 +
src/cn/edu/jxnu/other/One.java | 13 +
src/cn/edu/jxnu/other/Ques0105.java | 36 +
src/cn/edu/jxnu/other/RandMath.java | 71 +
src/cn/edu/jxnu/other/SHA1.java | 124 +
src/cn/edu/jxnu/other/Test.java | 32 +
src/cn/edu/jxnu/other/TestExec.java | 10 +
src/cn/edu/jxnu/other/TestInstanceOf.java | 28 +
src/cn/edu/jxnu/other/TestStaticVar.java | 20 +
src/cn/edu/jxnu/other/TestgetConfigInfo.java | 26 +
.../jxnu/other/\346\216\245\345\217\243.png" | Bin 0 -> 20570 bytes
.../jxnu/practice/AddMinFunctionForStack.java | 74 +
.../practice/AddMinFunctionForStack2.java | 43 +
.../practice/AddMinFunctionForStack3.java | 61 +
.../practice/AddMinFunctionForStack4.java | 35 +
.../jxnu/practice/BinaryRepresentation.java | 65 +
src/cn/edu/jxnu/practice/Brackets.java | 39 +
.../practice/CalculateStringDistance.java | 75 +
src/cn/edu/jxnu/practice/CharSort.java | 39 +
.../edu/jxnu/practice/ConvertBSTToList.java | 170 +
.../edu/jxnu/practice/DeleteDuplication.java | 39 +
.../DifferentNumberOfBinaryBits.scala | 26 +
.../DifferentNumberOfBinaryBits_Java.java | 19 +
src/cn/edu/jxnu/practice/DigitOccurrence.java | 45 +
src/cn/edu/jxnu/practice/Duplicate.java | 68 +
src/cn/edu/jxnu/practice/EntryNodeOfLoop.java | 44 +
src/cn/edu/jxnu/practice/FibonacciDemo.java | 80 +
src/cn/edu/jxnu/practice/FibonacciDemo2.java | 25 +
src/cn/edu/jxnu/practice/FibonacciDemo3.java | 88 +
src/cn/edu/jxnu/practice/Find.java | 68 +
src/cn/edu/jxnu/practice/FindFirstCommon.java | 88 +
.../practice/FindGreatestSumOfSubArray.java | 50 +
src/cn/edu/jxnu/practice/FindKthToTail.java | 79 +
src/cn/edu/jxnu/practice/FindNumbers.java | 67 +
.../edu/jxnu/practice/FindNumsAppearOnce.java | 57 +
src/cn/edu/jxnu/practice/FindPath.java | 73 +
src/cn/edu/jxnu/practice/FindSequence.java | 76 +
src/cn/edu/jxnu/practice/FindTheNumber.java | 84 +
.../edu/jxnu/practice/FirstAppearingOnce.java | 36 +
src/cn/edu/jxnu/practice/Get20Integers.java | 42 +
src/cn/edu/jxnu/practice/GetGcd.java | 70 +
src/cn/edu/jxnu/practice/GetLeastNumbers.java | 127 +
src/cn/edu/jxnu/practice/GetMaxDistance.java | 55 +
.../edu/jxnu/practice/GetMaximumDistance.java | 95 +
.../edu/jxnu/practice/GetMedianInStream.java | 75 +
src/cn/edu/jxnu/practice/GetNextNode.java | 30 +
src/cn/edu/jxnu/practice/GetNumberOfK.java | 118 +
src/cn/edu/jxnu/practice/GetUglyNumber.java | 41 +
src/cn/edu/jxnu/practice/HasPathInMatrix.java | 56 +
.../jxnu/practice/IsBalanced_Solution.java | 35 +
src/cn/edu/jxnu/practice/IsContinuous.java | 51 +
src/cn/edu/jxnu/practice/IsHasSubtree.java | 92 +
src/cn/edu/jxnu/practice/IsNumeric.java | 55 +
.../edu/jxnu/practice/IsPopOrderForStack.java | 30 +
src/cn/edu/jxnu/practice/IsSymmetrical.java | 70 +
src/cn/edu/jxnu/practice/IsThePowerOf2.java | 40 +
src/cn/edu/jxnu/practice/KthNode.java | 37 +
src/cn/edu/jxnu/practice/LIS.java | 59 +
src/cn/edu/jxnu/practice/LastRemaining.java | 43 +
src/cn/edu/jxnu/practice/LeftRotate.java | 60 +
.../edu/jxnu/practice/LinkedHashMapDemo1.java | 47 +
src/cn/edu/jxnu/practice/ListNode.java | 15 +
.../jxnu/practice/LocationOf1FromRight.java | 30 +
src/cn/edu/jxnu/practice/Main0.java | 74 +
src/cn/edu/jxnu/practice/Main1.java | 69 +
src/cn/edu/jxnu/practice/Main10.java | 41 +
src/cn/edu/jxnu/practice/Main11.java | 72 +
src/cn/edu/jxnu/practice/Main12.java | 70 +
src/cn/edu/jxnu/practice/Main13.java | 94 +
src/cn/edu/jxnu/practice/Main14.java | 43 +
src/cn/edu/jxnu/practice/Main15.java | 52 +
src/cn/edu/jxnu/practice/Main16.java | 35 +
src/cn/edu/jxnu/practice/Main2.java | 55 +
src/cn/edu/jxnu/practice/Main3.java | 82 +
src/cn/edu/jxnu/practice/Main4.java | 86 +
src/cn/edu/jxnu/practice/Main5.java | 81 +
src/cn/edu/jxnu/practice/Main6.java | 82 +
src/cn/edu/jxnu/practice/Main7.java | 107 +
src/cn/edu/jxnu/practice/Main8.java | 30 +
src/cn/edu/jxnu/practice/Main9.java | 209 +
src/cn/edu/jxnu/practice/Match.java | 50 +
src/cn/edu/jxnu/practice/MaxInWindowSize.java | 50 +
.../jxnu/practice/MaximumProductSubarray.java | 79 +
src/cn/edu/jxnu/practice/MergeLinkList.java | 106 +
src/cn/edu/jxnu/practice/MoreThanHalfNum.java | 64 +
src/cn/edu/jxnu/practice/Multiply.java | 34 +
src/cn/edu/jxnu/practice/NumberOf0.java | 46 +
src/cn/edu/jxnu/practice/NumberOf1.java | 66 +
.../jxnu/practice/NumberOf1Between1AndN.java | 105 +
src/cn/edu/jxnu/practice/O1checkPowerOf2.java | 17 +
src/cn/edu/jxnu/practice/PalindromeArray.java | 61 +
.../edu/jxnu/practice/PermutationString.java | 92 +
src/cn/edu/jxnu/practice/PowerTest.java | 53 +
.../practice/PringTreeFromTopToBottom.java | 77 +
src/cn/edu/jxnu/practice/PrintMatrix.java | 158 +
src/cn/edu/jxnu/practice/PrintMinNumber.java | 41 +
.../edu/jxnu/practice/PrintTreeByLevel.java | 55 +
src/cn/edu/jxnu/practice/PrintTreeLikeZ.java | 51 +
src/cn/edu/jxnu/practice/PublicTreePrint.java | 58 +
src/cn/edu/jxnu/practice/RandomListDemo.java | 99 +
src/cn/edu/jxnu/practice/RandomListNode.java | 11 +
src/cn/edu/jxnu/practice/ReOrderArray.java | 113 +
.../edu/jxnu/practice/RebuildBinaryTree.java | 99 +
src/cn/edu/jxnu/practice/ReplaceSpace.java | 39 +
.../edu/jxnu/practice/ReverseLinkedList.java | 97 +
.../jxnu/practice/ReverseReadLinkedList.java | 80 +
src/cn/edu/jxnu/practice/ReverseSentence.java | 59 +
src/cn/edu/jxnu/practice/RightShift.java | 90 +
.../edu/jxnu/practice/SearchMinInArray.java | 76 +
.../edu/jxnu/practice/SecondLargeNumbers.java | 39 +
src/cn/edu/jxnu/practice/SerializeTree.java | 49 +
.../jxnu/practice/SlidingWindowMedian.java | 79 +
src/cn/edu/jxnu/practice/SortDemo.java | 108 +
src/cn/edu/jxnu/practice/SpeciallyAdd.java | 27 +
src/cn/edu/jxnu/practice/SquarePattern.java | 59 +
src/cn/edu/jxnu/practice/StrToInt.java | 33 +
.../edu/jxnu/practice/StringDisplacement.java | 90 +
src/cn/edu/jxnu/practice/Sum.java | 25 +
src/cn/edu/jxnu/practice/Test1.java | 70 +
src/cn/edu/jxnu/practice/ToMirror.java | 25 +
.../edu/jxnu/practice/TrappingRainWater.java | 58 +
src/cn/edu/jxnu/practice/TreeLinkNode.java | 12 +
src/cn/edu/jxnu/practice/TreeNode.java | 18 +
src/cn/edu/jxnu/practice/UniquePaths.java | 46 +
src/cn/edu/jxnu/practice/UpdateBits.java | 27 +
.../jxnu/practice/UseTwoStack2BeQueue.java | 52 +
.../edu/jxnu/practice/VerifySquenceOfBST.java | 44 +
src/cn/edu/jxnu/practice/picture/0.jpg | Bin 0 -> 78745 bytes
src/cn/edu/jxnu/practice/picture/1.jpg | Bin 0 -> 58771 bytes
src/cn/edu/jxnu/practice/picture/2.jpg | Bin 0 -> 44955 bytes
src/cn/edu/jxnu/practice/picture/3.jpg | Bin 0 -> 72471 bytes
...5\347\224\250\346\250\241\345\236\213.png" | Bin 0 -> 65335 bytes
.../edu/jxnu/practice/picture/Memcached.jpg | Bin 0 -> 19035 bytes
...6\350\256\241\346\250\241\345\274\217.jpg" | Bin 0 -> 242737 bytes
...6\350\256\241\346\250\241\345\274\217.png" | Bin 0 -> 43305 bytes
src/cn/edu/jxnu/practice/picture/Slab.png | Bin 0 -> 42098 bytes
...7\345\221\275\345\221\250\346\234\237.png" | Bin 0 -> 24894 bytes
...5\347\275\256\345\216\237\347\220\206.png" | Bin 0 -> 146619 bytes
.../SpringMVC\346\265\201\347\250\213.png" | Bin 0 -> 93716 bytes
src/cn/edu/jxnu/practice/picture/TCP.JPG | Bin 0 -> 50927 bytes
src/cn/edu/jxnu/practice/picture/cookie.png | Bin 0 -> 50427 bytes
.../edu/jxnu/practice/picture/git rebase.png | Bin 0 -> 214688 bytes
...0\345\202\250\346\250\241\345\236\213.png" | Bin 0 -> 15360 bytes
src/cn/edu/jxnu/practice/picture/hash.png | Bin 0 -> 60097 bytes
.../picture/rpc\346\241\206\346\236\266.png" | Bin 0 -> 66245 bytes
.../servlet\347\273\247\346\211\277.png" | Bin 0 -> 91653 bytes
src/cn/edu/jxnu/practice/picture/tcp.jpeg | Bin 0 -> 71061 bytes
src/cn/edu/jxnu/practice/picture/windows.gif | Bin 0 -> 110407 bytes
...1\346\254\241\346\217\241\346\211\213.jpg" | Bin 0 -> 41265 bytes
...5\344\272\214\345\217\211\346\240\221.png" | Bin 0 -> 11800 bytes
...3\345\212\241\351\232\224\347\246\273.png" | Bin 0 -> 5762 bytes
...345\212\250IO\346\250\241\345\236\213.png" | Bin 0 -> 61763 bytes
...2\346\216\222\347\264\242\345\274\225.jpg" | Bin 0 -> 21485 bytes
.../picture/\345\211\215\347\274\200.png" | Bin 0 -> 19137 bytes
...4\347\224\250\345\234\272\346\231\257.png" | Bin 0 -> 95044 bytes
.../\345\244\215\346\235\202\345\272\246.png" | Bin 0 -> 21275 bytes
...5\345\231\250\346\250\241\345\274\217.jpg" | Bin 0 -> 24488 bytes
.../\345\271\263\350\241\241\346\240\221.jpg" | Bin 0 -> 205818 bytes
...3\350\241\241\350\260\203\346\225\264.png" | Bin 0 -> 51530 bytes
...-\345\206\262\347\252\201\345\237\237.png" | Bin 0 -> 50070 bytes
...346\255\245IO\346\250\241\345\236\213.png" | Bin 0 -> 51189 bytes
...4\345\244\215\346\235\202\345\272\246.png" | Bin 0 -> 411842 bytes
...0\346\237\245\346\211\276\346\240\221.gif" | Bin 0 -> 62370 bytes
...0\350\275\275\346\265\201\347\250\213.png" | Bin 0 -> 30007 bytes
.../\347\272\277\347\250\213\346\261\240.jpg" | Bin 0 -> 42239 bytes
...7\347\250\213\347\212\266\346\200\201.jpg" | Bin 0 -> 59390 bytes
...1\347\273\234\345\215\217\350\256\256.png" | Bin 0 -> 50255 bytes
...\347\273\234\345\215\217\350\256\2562.png" | Bin 0 -> 25418 bytes
...0\345\231\250\346\250\241\345\274\217.png" | Bin 0 -> 10751 bytes
...1\347\273\234\345\244\247\345\205\250.jpg" | Bin 0 -> 780055 bytes
...6\350\200\205\346\250\241\345\274\217.png" | Bin 0 -> 28104 bytes
.../picture/\350\277\233\347\250\213.png" | Bin 0 -> 141607 bytes
...5\345\231\250\346\250\241\345\274\217.jpg" | Bin 0 -> 22205 bytes
.../\351\207\215\346\216\222\345\272\217.png" | Bin 0 -> 11391 bytes
...347\232\204IO\346\250\241\345\236\213.png" | Bin 0 -> 47493 bytes
...345\241\236IO\346\250\241\345\236\213.png" | Bin 0 -> 73209 bytes
src/cn/edu/jxnu/proxy/CommonProxy.java | 42 +
src/cn/edu/jxnu/proxy/HandlerInvocation.java | 35 +
src/cn/edu/jxnu/proxy/Interceptor.java | 10 +
src/cn/edu/jxnu/proxy/LoggerInterceptor.java | 11 +
src/cn/edu/jxnu/proxy/MyBusiness.java | 7 +
src/cn/edu/jxnu/proxy/MyBusinessImpl.java | 11 +
src/cn/edu/jxnu/proxy/proxy.txt | 48 +
src/cn/edu/jxnu/questions/Git.md | 174 +
src/cn/edu/jxnu/questions/MQ.md | 282 +
src/cn/edu/jxnu/questions/MySQL.md | 549 ++
src/cn/edu/jxnu/questions/OS.md | 421 ++
...44\270\216Tls\346\246\202\350\277\260.txt" | 145 +
src/cn/edu/jxnu/questions/jmm.md | 224 +
...0\351\235\242\345\211\226\346\236\220.pdf" | Bin 0 -> 951851 bytes
src/cn/edu/jxnu/questions/network.md | 923 +++
src/cn/edu/jxnu/questions/package-info.java | 9 +
src/cn/edu/jxnu/questions/redis.md | 194 +
src/cn/edu/jxnu/questions/spring.txt | 76 +
src/cn/edu/jxnu/questions/subject.txt | 135 +
src/cn/edu/jxnu/redis/RedisDemo1.java | 234 +
src/cn/edu/jxnu/redis/RedisDemo2.java | 504 ++
src/cn/edu/jxnu/redis/RedisDemo4.java | 222 +
src/cn/edu/jxnu/redis/RedisDemo5.java | 674 ++
src/cn/edu/jxnu/redis/RedisDemo6.java | 931 +++
src/cn/edu/jxnu/redis/RedisDemo7.java | 964 +++
src/cn/edu/jxnu/redis/RedisDemo8.java | 558 ++
src/cn/edu/jxnu/redis/RedisDemo9.java | 482 ++
src/cn/edu/jxnu/reflect/DumpMethods.java | 54 +
src/cn/edu/jxnu/reflect/ReflectTest.java | 74 +
src/cn/edu/jxnu/reflect/asm/ASM.md | 189 +
src/cn/edu/jxnu/reflect/asm/Adapt.java | 176 +
src/cn/edu/jxnu/reflect/asm/Annotations.java | 99 +
src/cn/edu/jxnu/reflect/asm/ArraySet.java | 66 +
src/cn/edu/jxnu/reflect/asm/BFCompiler.java | 167 +
.../edu/jxnu/reflect/asm/BFCompilerTest.java | 148 +
...3\346\236\220\350\277\207\347\250\213.gif" | Bin 0 -> 262113 bytes
src/cn/edu/jxnu/reflect/asm/Compile.java | 267 +
.../jxnu/reflect/asm/DependencyVisitor.java | 329 +
src/cn/edu/jxnu/reflect/asm/Example.class | Bin 0 -> 338 bytes
src/cn/edu/jxnu/reflect/asm/Expression.java | 20 +
src/cn/edu/jxnu/reflect/asm/Helloworld.java | 102 +
src/cn/edu/jxnu/reflect/asm/IndyCompile.java | 329 +
src/cn/edu/jxnu/reflect/asm/Jbfc.java | 58 +
src/cn/edu/jxnu/reflect/asm/NotNull.java | 9 +
src/cn/edu/jxnu/reflect/asm/RT.java | 279 +
src/cn/edu/jxnu/reflect/asm/User.java | 36 +
src/cn/edu/jxnu/reflect/asm/package-info.java | 34 +
src/cn/edu/jxnu/socket/ClientDemo.java | 29 +
src/cn/edu/jxnu/socket/ServerSocketDemo.java | 29 +
src/cn/edu/jxnu/sort/BubbleSort.java | 70 +
src/cn/edu/jxnu/sort/BucketSort.java | 86 +
src/cn/edu/jxnu/sort/Constant.java | 47 +
src/cn/edu/jxnu/sort/CountSort.java | 65 +
src/cn/edu/jxnu/sort/HeapSort.java | 91 +
src/cn/edu/jxnu/sort/InsertionSort.java | 31 +
src/cn/edu/jxnu/sort/MergeSort.java | 58 +
src/cn/edu/jxnu/sort/QuickSort.java | 83 +
src/cn/edu/jxnu/sort/SelectSort.java | 59 +
src/cn/edu/jxnu/sort/ShellSort.java | 35 +
src/cn/edu/jxnu/sourcecode/ArrayList.js | 1415 ++++
.../edu/jxnu/sourcecode/ConcurrentHashMap.js | 6075 +++++++++++++++++
src/cn/edu/jxnu/sourcecode/HashMap.js | 2432 +++++++
src/cn/edu/jxnu/sourcecode/HashTable.js | 1308 ++++
.../jxnu/sourcecode/LinkedBlockingQueue.js | 903 +++
src/cn/edu/jxnu/sourcecode/LinkedList.js | 1298 ++++
src/cn/edu/jxnu/sourcecode/Object.js | 105 +
src/cn/edu/jxnu/sourcecode/Runtime.js | 274 +
src/cn/edu/jxnu/sourcecode/ThreadLocal.js | 539 ++
src/cn/edu/jxnu/sourcecode/package-info.java | 11 +
src/cn/edu/jxnu/sql/ConnectionDriver.java | 41 +
src/cn/edu/jxnu/sql/ConnectionPool.java | 58 +
src/cn/edu/jxnu/sql/ConnectionPoolTest.java | 107 +
...6\345\212\251\346\226\207\346\241\243.pdf" | Bin 0 -> 14289412 bytes
...350\203\275\344\274\230\345\214\226.xmind" | Bin 0 -> 661635 bytes
...6\346\236\204\350\256\276\350\256\241.pdf" | Bin 0 -> 2816131 bytes
...5\345\217\245\347\247\257\347\264\257.txt" | 400 ++
...7\347\250\213\347\256\200\344\273\213.jpg" | Bin 0 -> 98455 bytes
.../jxnu/sql/\347\254\224\350\256\260.xls" | Bin 0 -> 487936 bytes
533 files changed, 47101 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 pom.xml
create mode 100644 src/cn/edu/jxnu/aio/AIOEchoServer.java
create mode 100644 src/cn/edu/jxnu/classloader/PathClassLoader.java
create mode 100644 src/cn/edu/jxnu/concurrent/1.png
create mode 100644 src/cn/edu/jxnu/concurrent/2.jpg
create mode 100644 src/cn/edu/jxnu/concurrent/3.png
create mode 100644 src/cn/edu/jxnu/concurrent/4.png
create mode 100644 src/cn/edu/jxnu/concurrent/5.png
create mode 100644 src/cn/edu/jxnu/concurrent/6.jpg
create mode 100644 src/cn/edu/jxnu/concurrent/7.png
create mode 100644 src/cn/edu/jxnu/concurrent/8.png
create mode 100644 src/cn/edu/jxnu/concurrent/AQS.md
create mode 100644 src/cn/edu/jxnu/concurrent/InterruptedException.java
create mode 100644 src/cn/edu/jxnu/concurrent/InterruptedThread.java
create mode 100644 src/cn/edu/jxnu/concurrent/MyThread.java
create mode 100644 src/cn/edu/jxnu/concurrent/MyThreadBrother.java
create mode 100644 src/cn/edu/jxnu/concurrent/MyThreadInfo.java
create mode 100644 src/cn/edu/jxnu/concurrent/ThreadSafeStop.java
create mode 100644 src/cn/edu/jxnu/concurrent/ThreadStateDemo.java
create mode 100644 src/cn/edu/jxnu/concurrent/package-info.java
create mode 100644 "src/cn/edu/jxnu/concurrent/\345\244\232\347\272\277\347\250\213.md"
create mode 100644 src/cn/edu/jxnu/designpattern/AbstractFactoryMethod.java
create mode 100644 src/cn/edu/jxnu/designpattern/Adapter.java
create mode 100644 src/cn/edu/jxnu/designpattern/BuilderPattern.java
create mode 100644 src/cn/edu/jxnu/designpattern/Composite.java
create mode 100644 src/cn/edu/jxnu/designpattern/Decorator.java
create mode 100644 src/cn/edu/jxnu/designpattern/FactoryMethod.java
create mode 100644 src/cn/edu/jxnu/designpattern/FlyweightFactory.java
create mode 100644 src/cn/edu/jxnu/designpattern/Mediator.java
create mode 100644 src/cn/edu/jxnu/designpattern/Memento.java
create mode 100644 src/cn/edu/jxnu/designpattern/Observer.java
create mode 100644 src/cn/edu/jxnu/designpattern/Prototype.java
create mode 100644 src/cn/edu/jxnu/designpattern/Proxy.java
create mode 100644 src/cn/edu/jxnu/designpattern/ResponsibilityChain.java
create mode 100644 src/cn/edu/jxnu/designpattern/Singleton_ThreadSafe.java
create mode 100644 src/cn/edu/jxnu/designpattern/Singleton_UnThreadSafe.java
create mode 100644 src/cn/edu/jxnu/designpattern/Singleton_others.java
create mode 100644 src/cn/edu/jxnu/designpattern/Strategy.java
create mode 100644 src/cn/edu/jxnu/designpattern/TemplateMethod.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/Adaptee.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/Adapter.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/DemoTest.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/TargetInterface.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/objectadapter/Adapter.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/objectadapter/DemoTest.java
create mode 100644 src/cn/edu/jxnu/designpattern/adapter/objectadapter/TargetInterface.java
create mode 100644 "src/cn/edu/jxnu/designpattern/adapter/\351\200\202\351\205\215\345\231\250.jpg"
create mode 100644 src/cn/edu/jxnu/designpattern/decorator/Component.java
create mode 100644 src/cn/edu/jxnu/designpattern/decorator/ConcreteComponent.java
create mode 100644 src/cn/edu/jxnu/designpattern/decorator/ConcreteDecorator.java
create mode 100644 src/cn/edu/jxnu/designpattern/decorator/Decorator.java
create mode 100644 src/cn/edu/jxnu/designpattern/decorator/TestDecorator.java
create mode 100644 "src/cn/edu/jxnu/designpattern/decorator/\350\243\205\351\245\260\345\231\250.jpeg"
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/ChildUnder150CM.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/Context.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/ElderMoreThen60YearsOld.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/Main.jpg
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/PeopleComeTimeMoreThenThree.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/Strategy.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/Student.java
create mode 100644 src/cn/edu/jxnu/designpattern/strategy/package-info.java
create mode 100644 "src/cn/edu/jxnu/designpattern/strategy/\347\255\226\347\225\245.jpg"
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ClientTest.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ConcreteElement.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ConcreteElement2.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ConcreteVisitor.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ElementNode.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/ObjectStruture.java
create mode 100644 src/cn/edu/jxnu/designpattern/visitor/Visitor.java
create mode 100644 "src/cn/edu/jxnu/designpattern/visitor/\350\256\277\351\227\256\350\200\205.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\344\270\255\344\273\213\350\200\205.jpg"
create mode 100644 "src/cn/edu/jxnu/designpattern/\344\272\253\345\205\203.jpg"
create mode 100644 "src/cn/edu/jxnu/designpattern/\344\273\243\347\220\206.jpg"
create mode 100644 "src/cn/edu/jxnu/designpattern/\345\216\237\345\236\213.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\345\244\207\345\277\230\345\275\225_\345\244\232\351\207\215\346\243\200\346\237\245\347\202\271.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\345\267\245\345\216\202\346\226\271\346\263\225.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\345\273\272\351\200\240\350\200\205.gif"
create mode 100644 "src/cn/edu/jxnu/designpattern/\346\212\275\350\261\241\345\267\245\345\216\202.jpeg"
create mode 100644 "src/cn/edu/jxnu/designpattern/\347\231\275\347\256\261\345\244\207\345\277\230\345\275\225.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\347\273\204\345\220\210.jpeg"
create mode 100644 "src/cn/edu/jxnu/designpattern/\350\247\202\345\257\237\350\200\205.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\350\256\276\350\256\241\345\216\237\345\210\231.txt"
create mode 100644 "src/cn/edu/jxnu/designpattern/\350\256\276\350\256\241\346\250\241\345\274\217\345\256\232\344\271\211\344\270\216\350\256\276\350\256\241\345\216\237\345\210\231.docx"
create mode 100644 "src/cn/edu/jxnu/designpattern/\350\264\243\344\273\273\351\223\276.png"
create mode 100644 "src/cn/edu/jxnu/designpattern/\351\273\221\347\256\261\345\244\207\345\277\230\345\275\225.png"
create mode 100644 src/cn/edu/jxnu/encode/BASE.java
create mode 100644 src/cn/edu/jxnu/encode/BASE64.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/ClassLoaderInfoT.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/FloatInJvm.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/InitMain.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/IntegerInJvm.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/JvmXmxArgs.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/LocalVarGC.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/StackDeep.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/StringCL.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/UseFinalField.java
create mode 100644 src/cn/edu/jxnu/jvm/classloader/package-info.java
create mode 100644 src/cn/edu/jxnu/lambda/CompletableFutureDemo.java
create mode 100644 src/cn/edu/jxnu/lambda/CompletableFutureDemo2.java
create mode 100644 src/cn/edu/jxnu/lambda/CompletableFutureDemo3.java
create mode 100644 src/cn/edu/jxnu/lambda/IAnimal.java
create mode 100644 src/cn/edu/jxnu/lambda/Ihorse.java
create mode 100644 src/cn/edu/jxnu/lambda/Lambda.java
create mode 100644 src/cn/edu/jxnu/lambda/Lambda2.java
create mode 100644 src/cn/edu/jxnu/lambda/LongAdderDemo.java
create mode 100644 src/cn/edu/jxnu/lambda/Mule.java
create mode 100644 src/cn/edu/jxnu/lambda/NonFunc.java
create mode 100644 src/cn/edu/jxnu/lambda/StampedLockDemo1.java
create mode 100644 src/cn/edu/jxnu/leetcode/BFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/BinarySearch.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode122.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode130_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode131_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode141.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode167.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode17_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode200_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode216_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode241.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode257_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode345.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode347_Sort.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode37_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode392.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode40_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode417_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode441.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode451_Sort.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode452.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode455.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode46_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode47_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode524.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode540.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode605.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode633.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode665.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode680.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode69.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode695_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode763.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode77_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode78_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode79_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode88.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode90_Backtracking.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode93_DFS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_128_Hash.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_155_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_168_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_169_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_172_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_1_Hash.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_204_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_205_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_20_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_217_Hash.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_225_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_232_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_238_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_242_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_283_ArrayMatrix.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_290_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_303_Interval.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_326_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_367_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_405_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_409_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_413_Interval.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_415_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_448_Array.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_462_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_485_Array.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_503_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_504_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_53_Interval.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_566_Matrix.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_583_LCS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_594_Hash.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_628_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_645_Array.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_647_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_67_Math.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_696_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_72_LCS.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_739_DataStructure.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetcode_9_String.java
create mode 100644 src/cn/edu/jxnu/leetcode/Leetocde215_Sort.java
create mode 100644 src/cn/edu/jxnu/leetcode/ListNode.java
create mode 100644 src/cn/edu/jxnu/leetcode/ListNodeConstants.java
create mode 100644 src/cn/edu/jxnu/leetcode/Test.scala
create mode 100644 src/cn/edu/jxnu/leetcode/TreeNode.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Knapsack_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_121_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_123_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_139_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_188_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_198_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_279_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_300_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_322_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_343_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_376_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_377_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_416_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_474_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_494_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_646_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_650_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_70_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/Leetcode_91_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/LengthOfLCS_Dp.java
create mode 100644 src/cn/edu/jxnu/leetcode/dp/package-info.java
create mode 100644 src/cn/edu/jxnu/leetcode/scala/DFS.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_101_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_104_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_110_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_111_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_112_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_160_ListNode.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_206_ListNode.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_21_ListNode.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_226_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_240_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_287_Array .scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_337_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_378_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_378_Array_Queue.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_404_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_437_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_543_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_565_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_572_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_617_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_637_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_667_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_671_Tree.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_697_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_766_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_769_Array.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/Leetcode_83_ListNode.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/ScalaLoopOps.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/SecondLargeNumbers.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/dp/ClimbStairs.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/dp/CoinChange.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/dp/MaxProfit.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/dp/NumArray.scala
create mode 100644 src/cn/edu/jxnu/leetcode/scala/dp/package-info.java
create mode 100644 src/cn/edu/jxnu/leetcode/scala/package-info.java
create mode 100644 "src/cn/edu/jxnu/leetcode/\350\257\264\346\230\216.java"
create mode 100644 src/cn/edu/jxnu/nio/HeavySocketClient.java
create mode 100644 src/cn/edu/jxnu/nio/MultiThreadEchoServer.java
create mode 100644 src/cn/edu/jxnu/nio/MultiThreadNIOEchoClient.java
create mode 100644 src/cn/edu/jxnu/nio/MultiThreadNIOEchoServer.java
create mode 100644 src/cn/edu/jxnu/nio/NIODemo1.java
create mode 100644 src/cn/edu/jxnu/nio/NIODemo2.java
create mode 100644 src/cn/edu/jxnu/nio/NIODemo3.java
create mode 100644 src/cn/edu/jxnu/nio/NIODemo4.java
create mode 100644 src/cn/edu/jxnu/nio/NIODemo5.java
create mode 100644 src/cn/edu/jxnu/nio/TestBlockingNIO.java
create mode 100644 src/cn/edu/jxnu/nio/TestBlockingNIO2.java
create mode 100644 src/cn/edu/jxnu/nio/TestNonBlockingNIO.java
create mode 100644 src/cn/edu/jxnu/nio/TestNonBlockingNIO2.java
create mode 100644 src/cn/edu/jxnu/nio/TestPipe.java
create mode 100644 src/cn/edu/jxnu/other/.gitignore
create mode 100644 src/cn/edu/jxnu/other/Base.java
create mode 100644 src/cn/edu/jxnu/other/Demo.js
create mode 100644 src/cn/edu/jxnu/other/DynamicProxy.java
create mode 100644 src/cn/edu/jxnu/other/GenericsTest.java
create mode 100644 src/cn/edu/jxnu/other/GesturePassword.java
create mode 100644 src/cn/edu/jxnu/other/JqueryNotes.js
create mode 100644 src/cn/edu/jxnu/other/LRU.java
create mode 100644 src/cn/edu/jxnu/other/MD5Tool.java
create mode 100644 src/cn/edu/jxnu/other/MobUrlConfigVo.java
create mode 100644 src/cn/edu/jxnu/other/MuchThreadDown.java
create mode 100644 src/cn/edu/jxnu/other/MyClient.java
create mode 100644 src/cn/edu/jxnu/other/MyServer.java
create mode 100644 src/cn/edu/jxnu/other/MyThead.java
create mode 100644 src/cn/edu/jxnu/other/One.java
create mode 100644 src/cn/edu/jxnu/other/Ques0105.java
create mode 100644 src/cn/edu/jxnu/other/RandMath.java
create mode 100644 src/cn/edu/jxnu/other/SHA1.java
create mode 100644 src/cn/edu/jxnu/other/Test.java
create mode 100644 src/cn/edu/jxnu/other/TestExec.java
create mode 100644 src/cn/edu/jxnu/other/TestInstanceOf.java
create mode 100644 src/cn/edu/jxnu/other/TestStaticVar.java
create mode 100644 src/cn/edu/jxnu/other/TestgetConfigInfo.java
create mode 100644 "src/cn/edu/jxnu/other/\346\216\245\345\217\243.png"
create mode 100644 src/cn/edu/jxnu/practice/AddMinFunctionForStack.java
create mode 100644 src/cn/edu/jxnu/practice/AddMinFunctionForStack2.java
create mode 100644 src/cn/edu/jxnu/practice/AddMinFunctionForStack3.java
create mode 100644 src/cn/edu/jxnu/practice/AddMinFunctionForStack4.java
create mode 100644 src/cn/edu/jxnu/practice/BinaryRepresentation.java
create mode 100644 src/cn/edu/jxnu/practice/Brackets.java
create mode 100644 src/cn/edu/jxnu/practice/CalculateStringDistance.java
create mode 100644 src/cn/edu/jxnu/practice/CharSort.java
create mode 100644 src/cn/edu/jxnu/practice/ConvertBSTToList.java
create mode 100644 src/cn/edu/jxnu/practice/DeleteDuplication.java
create mode 100644 src/cn/edu/jxnu/practice/DifferentNumberOfBinaryBits.scala
create mode 100644 src/cn/edu/jxnu/practice/DifferentNumberOfBinaryBits_Java.java
create mode 100644 src/cn/edu/jxnu/practice/DigitOccurrence.java
create mode 100644 src/cn/edu/jxnu/practice/Duplicate.java
create mode 100644 src/cn/edu/jxnu/practice/EntryNodeOfLoop.java
create mode 100644 src/cn/edu/jxnu/practice/FibonacciDemo.java
create mode 100644 src/cn/edu/jxnu/practice/FibonacciDemo2.java
create mode 100644 src/cn/edu/jxnu/practice/FibonacciDemo3.java
create mode 100644 src/cn/edu/jxnu/practice/Find.java
create mode 100644 src/cn/edu/jxnu/practice/FindFirstCommon.java
create mode 100644 src/cn/edu/jxnu/practice/FindGreatestSumOfSubArray.java
create mode 100644 src/cn/edu/jxnu/practice/FindKthToTail.java
create mode 100644 src/cn/edu/jxnu/practice/FindNumbers.java
create mode 100644 src/cn/edu/jxnu/practice/FindNumsAppearOnce.java
create mode 100644 src/cn/edu/jxnu/practice/FindPath.java
create mode 100644 src/cn/edu/jxnu/practice/FindSequence.java
create mode 100644 src/cn/edu/jxnu/practice/FindTheNumber.java
create mode 100644 src/cn/edu/jxnu/practice/FirstAppearingOnce.java
create mode 100644 src/cn/edu/jxnu/practice/Get20Integers.java
create mode 100644 src/cn/edu/jxnu/practice/GetGcd.java
create mode 100644 src/cn/edu/jxnu/practice/GetLeastNumbers.java
create mode 100644 src/cn/edu/jxnu/practice/GetMaxDistance.java
create mode 100644 src/cn/edu/jxnu/practice/GetMaximumDistance.java
create mode 100644 src/cn/edu/jxnu/practice/GetMedianInStream.java
create mode 100644 src/cn/edu/jxnu/practice/GetNextNode.java
create mode 100644 src/cn/edu/jxnu/practice/GetNumberOfK.java
create mode 100644 src/cn/edu/jxnu/practice/GetUglyNumber.java
create mode 100644 src/cn/edu/jxnu/practice/HasPathInMatrix.java
create mode 100644 src/cn/edu/jxnu/practice/IsBalanced_Solution.java
create mode 100644 src/cn/edu/jxnu/practice/IsContinuous.java
create mode 100644 src/cn/edu/jxnu/practice/IsHasSubtree.java
create mode 100644 src/cn/edu/jxnu/practice/IsNumeric.java
create mode 100644 src/cn/edu/jxnu/practice/IsPopOrderForStack.java
create mode 100644 src/cn/edu/jxnu/practice/IsSymmetrical.java
create mode 100644 src/cn/edu/jxnu/practice/IsThePowerOf2.java
create mode 100644 src/cn/edu/jxnu/practice/KthNode.java
create mode 100644 src/cn/edu/jxnu/practice/LIS.java
create mode 100644 src/cn/edu/jxnu/practice/LastRemaining.java
create mode 100644 src/cn/edu/jxnu/practice/LeftRotate.java
create mode 100644 src/cn/edu/jxnu/practice/LinkedHashMapDemo1.java
create mode 100644 src/cn/edu/jxnu/practice/ListNode.java
create mode 100644 src/cn/edu/jxnu/practice/LocationOf1FromRight.java
create mode 100644 src/cn/edu/jxnu/practice/Main0.java
create mode 100644 src/cn/edu/jxnu/practice/Main1.java
create mode 100644 src/cn/edu/jxnu/practice/Main10.java
create mode 100644 src/cn/edu/jxnu/practice/Main11.java
create mode 100644 src/cn/edu/jxnu/practice/Main12.java
create mode 100644 src/cn/edu/jxnu/practice/Main13.java
create mode 100644 src/cn/edu/jxnu/practice/Main14.java
create mode 100644 src/cn/edu/jxnu/practice/Main15.java
create mode 100644 src/cn/edu/jxnu/practice/Main16.java
create mode 100644 src/cn/edu/jxnu/practice/Main2.java
create mode 100644 src/cn/edu/jxnu/practice/Main3.java
create mode 100644 src/cn/edu/jxnu/practice/Main4.java
create mode 100644 src/cn/edu/jxnu/practice/Main5.java
create mode 100644 src/cn/edu/jxnu/practice/Main6.java
create mode 100644 src/cn/edu/jxnu/practice/Main7.java
create mode 100644 src/cn/edu/jxnu/practice/Main8.java
create mode 100644 src/cn/edu/jxnu/practice/Main9.java
create mode 100644 src/cn/edu/jxnu/practice/Match.java
create mode 100644 src/cn/edu/jxnu/practice/MaxInWindowSize.java
create mode 100644 src/cn/edu/jxnu/practice/MaximumProductSubarray.java
create mode 100644 src/cn/edu/jxnu/practice/MergeLinkList.java
create mode 100644 src/cn/edu/jxnu/practice/MoreThanHalfNum.java
create mode 100644 src/cn/edu/jxnu/practice/Multiply.java
create mode 100644 src/cn/edu/jxnu/practice/NumberOf0.java
create mode 100644 src/cn/edu/jxnu/practice/NumberOf1.java
create mode 100644 src/cn/edu/jxnu/practice/NumberOf1Between1AndN.java
create mode 100644 src/cn/edu/jxnu/practice/O1checkPowerOf2.java
create mode 100644 src/cn/edu/jxnu/practice/PalindromeArray.java
create mode 100644 src/cn/edu/jxnu/practice/PermutationString.java
create mode 100644 src/cn/edu/jxnu/practice/PowerTest.java
create mode 100644 src/cn/edu/jxnu/practice/PringTreeFromTopToBottom.java
create mode 100644 src/cn/edu/jxnu/practice/PrintMatrix.java
create mode 100644 src/cn/edu/jxnu/practice/PrintMinNumber.java
create mode 100644 src/cn/edu/jxnu/practice/PrintTreeByLevel.java
create mode 100644 src/cn/edu/jxnu/practice/PrintTreeLikeZ.java
create mode 100644 src/cn/edu/jxnu/practice/PublicTreePrint.java
create mode 100644 src/cn/edu/jxnu/practice/RandomListDemo.java
create mode 100644 src/cn/edu/jxnu/practice/RandomListNode.java
create mode 100644 src/cn/edu/jxnu/practice/ReOrderArray.java
create mode 100644 src/cn/edu/jxnu/practice/RebuildBinaryTree.java
create mode 100644 src/cn/edu/jxnu/practice/ReplaceSpace.java
create mode 100644 src/cn/edu/jxnu/practice/ReverseLinkedList.java
create mode 100644 src/cn/edu/jxnu/practice/ReverseReadLinkedList.java
create mode 100644 src/cn/edu/jxnu/practice/ReverseSentence.java
create mode 100644 src/cn/edu/jxnu/practice/RightShift.java
create mode 100644 src/cn/edu/jxnu/practice/SearchMinInArray.java
create mode 100644 src/cn/edu/jxnu/practice/SecondLargeNumbers.java
create mode 100644 src/cn/edu/jxnu/practice/SerializeTree.java
create mode 100644 src/cn/edu/jxnu/practice/SlidingWindowMedian.java
create mode 100644 src/cn/edu/jxnu/practice/SortDemo.java
create mode 100644 src/cn/edu/jxnu/practice/SpeciallyAdd.java
create mode 100644 src/cn/edu/jxnu/practice/SquarePattern.java
create mode 100644 src/cn/edu/jxnu/practice/StrToInt.java
create mode 100644 src/cn/edu/jxnu/practice/StringDisplacement.java
create mode 100644 src/cn/edu/jxnu/practice/Sum.java
create mode 100644 src/cn/edu/jxnu/practice/Test1.java
create mode 100644 src/cn/edu/jxnu/practice/ToMirror.java
create mode 100644 src/cn/edu/jxnu/practice/TrappingRainWater.java
create mode 100644 src/cn/edu/jxnu/practice/TreeLinkNode.java
create mode 100644 src/cn/edu/jxnu/practice/TreeNode.java
create mode 100644 src/cn/edu/jxnu/practice/UniquePaths.java
create mode 100644 src/cn/edu/jxnu/practice/UpdateBits.java
create mode 100644 src/cn/edu/jxnu/practice/UseTwoStack2BeQueue.java
create mode 100644 src/cn/edu/jxnu/practice/VerifySquenceOfBST.java
create mode 100644 src/cn/edu/jxnu/practice/picture/0.jpg
create mode 100644 src/cn/edu/jxnu/practice/picture/1.jpg
create mode 100644 src/cn/edu/jxnu/practice/picture/2.jpg
create mode 100644 src/cn/edu/jxnu/practice/picture/3.jpg
create mode 100644 "src/cn/edu/jxnu/practice/picture/IO\345\244\232\350\267\257\345\244\215\347\224\250\346\250\241\345\236\213.png"
create mode 100644 src/cn/edu/jxnu/practice/picture/Memcached.jpg
create mode 100644 "src/cn/edu/jxnu/practice/picture/Proactor\350\256\276\350\256\241\346\250\241\345\274\217.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/Reactor\350\256\276\350\256\241\346\250\241\345\274\217.png"
create mode 100644 src/cn/edu/jxnu/practice/picture/Slab.png
create mode 100644 "src/cn/edu/jxnu/practice/picture/SpringBean\347\224\237\345\221\275\345\221\250\346\234\237.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/SpringBoot\350\207\252\345\212\250\351\205\215\347\275\256\345\216\237\347\220\206.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/SpringMVC\346\265\201\347\250\213.png"
create mode 100644 src/cn/edu/jxnu/practice/picture/TCP.JPG
create mode 100644 src/cn/edu/jxnu/practice/picture/cookie.png
create mode 100644 src/cn/edu/jxnu/practice/picture/git rebase.png
create mode 100644 "src/cn/edu/jxnu/practice/picture/git \345\255\230\345\202\250\346\250\241\345\236\213.png"
create mode 100644 src/cn/edu/jxnu/practice/picture/hash.png
create mode 100644 "src/cn/edu/jxnu/practice/picture/rpc\346\241\206\346\236\266.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/servlet\347\273\247\346\211\277.png"
create mode 100644 src/cn/edu/jxnu/practice/picture/tcp.jpeg
create mode 100644 src/cn/edu/jxnu/practice/picture/windows.gif
create mode 100644 "src/cn/edu/jxnu/practice/picture/\344\270\211\346\254\241\346\217\241\346\211\213.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\344\270\255\345\272\217\347\264\242\345\274\225\344\272\214\345\217\211\346\240\221.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\344\272\213\345\212\241\351\232\224\347\246\273.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\344\277\241\345\217\267\351\251\261\345\212\250IO\346\250\241\345\236\213.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\200\222\346\216\222\347\264\242\345\274\225.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\211\215\347\274\200.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\220\204\346\234\215\345\212\241\346\241\206\346\236\266\345\272\224\347\224\250\345\234\272\346\231\257.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\244\215\346\235\202\345\272\246.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\257\271\350\261\241\351\200\202\351\205\215\345\231\250\346\250\241\345\274\217.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\271\263\350\241\241\346\240\221.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\271\263\350\241\241\350\260\203\346\225\264.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\271\277\346\222\255\345\237\237-\345\206\262\347\252\201\345\237\237.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\345\274\202\346\255\245IO\346\250\241\345\236\213.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\346\227\266\351\227\264\345\244\215\346\235\202\345\272\246.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\346\254\241\344\274\230\346\237\245\346\211\276\346\240\221.gif"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\347\261\273\345\212\240\350\275\275\346\265\201\347\250\213.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\347\272\277\347\250\213\346\261\240.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\347\272\277\347\250\213\347\212\266\346\200\201.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\347\275\221\347\273\234\345\215\217\350\256\256.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\347\275\221\347\273\234\345\215\217\350\256\2562.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\350\243\205\351\245\260\345\231\250\346\250\241\345\274\217.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\345\244\247\345\205\250.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\350\256\277\351\227\256\350\200\205\346\250\241\345\274\217.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\350\277\233\347\250\213.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\351\200\202\351\205\215\345\231\250\346\250\241\345\274\217.jpg"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\351\207\215\346\216\222\345\272\217.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\351\230\273\345\241\236\347\232\204IO\346\250\241\345\236\213.png"
create mode 100644 "src/cn/edu/jxnu/practice/picture/\351\235\236\351\230\273\345\241\236IO\346\250\241\345\236\213.png"
create mode 100644 src/cn/edu/jxnu/proxy/CommonProxy.java
create mode 100644 src/cn/edu/jxnu/proxy/HandlerInvocation.java
create mode 100644 src/cn/edu/jxnu/proxy/Interceptor.java
create mode 100644 src/cn/edu/jxnu/proxy/LoggerInterceptor.java
create mode 100644 src/cn/edu/jxnu/proxy/MyBusiness.java
create mode 100644 src/cn/edu/jxnu/proxy/MyBusinessImpl.java
create mode 100644 src/cn/edu/jxnu/proxy/proxy.txt
create mode 100644 src/cn/edu/jxnu/questions/Git.md
create mode 100644 src/cn/edu/jxnu/questions/MQ.md
create mode 100644 src/cn/edu/jxnu/questions/MySQL.md
create mode 100644 src/cn/edu/jxnu/questions/OS.md
create mode 100644 "src/cn/edu/jxnu/questions/SSL\344\270\216Tls\346\246\202\350\277\260.txt"
create mode 100644 src/cn/edu/jxnu/questions/jmm.md
create mode 100644 "src/cn/edu/jxnu/questions/memcached\345\205\250\351\235\242\345\211\226\346\236\220.pdf"
create mode 100644 src/cn/edu/jxnu/questions/network.md
create mode 100644 src/cn/edu/jxnu/questions/package-info.java
create mode 100644 src/cn/edu/jxnu/questions/redis.md
create mode 100644 src/cn/edu/jxnu/questions/spring.txt
create mode 100644 src/cn/edu/jxnu/questions/subject.txt
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo1.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo2.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo4.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo5.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo6.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo7.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo8.java
create mode 100644 src/cn/edu/jxnu/redis/RedisDemo9.java
create mode 100644 src/cn/edu/jxnu/reflect/DumpMethods.java
create mode 100644 src/cn/edu/jxnu/reflect/ReflectTest.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/ASM.md
create mode 100644 src/cn/edu/jxnu/reflect/asm/Adapt.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/Annotations.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/ArraySet.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/BFCompiler.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/BFCompilerTest.java
create mode 100644 "src/cn/edu/jxnu/reflect/asm/ClassReader\350\247\243\346\236\220\350\277\207\347\250\213.gif"
create mode 100644 src/cn/edu/jxnu/reflect/asm/Compile.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/DependencyVisitor.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/Example.class
create mode 100644 src/cn/edu/jxnu/reflect/asm/Expression.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/Helloworld.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/IndyCompile.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/Jbfc.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/NotNull.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/RT.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/User.java
create mode 100644 src/cn/edu/jxnu/reflect/asm/package-info.java
create mode 100644 src/cn/edu/jxnu/socket/ClientDemo.java
create mode 100644 src/cn/edu/jxnu/socket/ServerSocketDemo.java
create mode 100644 src/cn/edu/jxnu/sort/BubbleSort.java
create mode 100644 src/cn/edu/jxnu/sort/BucketSort.java
create mode 100644 src/cn/edu/jxnu/sort/Constant.java
create mode 100644 src/cn/edu/jxnu/sort/CountSort.java
create mode 100644 src/cn/edu/jxnu/sort/HeapSort.java
create mode 100644 src/cn/edu/jxnu/sort/InsertionSort.java
create mode 100644 src/cn/edu/jxnu/sort/MergeSort.java
create mode 100644 src/cn/edu/jxnu/sort/QuickSort.java
create mode 100644 src/cn/edu/jxnu/sort/SelectSort.java
create mode 100644 src/cn/edu/jxnu/sort/ShellSort.java
create mode 100644 src/cn/edu/jxnu/sourcecode/ArrayList.js
create mode 100644 src/cn/edu/jxnu/sourcecode/ConcurrentHashMap.js
create mode 100644 src/cn/edu/jxnu/sourcecode/HashMap.js
create mode 100644 src/cn/edu/jxnu/sourcecode/HashTable.js
create mode 100644 src/cn/edu/jxnu/sourcecode/LinkedBlockingQueue.js
create mode 100644 src/cn/edu/jxnu/sourcecode/LinkedList.js
create mode 100644 src/cn/edu/jxnu/sourcecode/Object.js
create mode 100644 src/cn/edu/jxnu/sourcecode/Runtime.js
create mode 100644 src/cn/edu/jxnu/sourcecode/ThreadLocal.js
create mode 100644 src/cn/edu/jxnu/sourcecode/package-info.java
create mode 100644 src/cn/edu/jxnu/sql/ConnectionDriver.java
create mode 100644 src/cn/edu/jxnu/sql/ConnectionPool.java
create mode 100644 src/cn/edu/jxnu/sql/ConnectionPoolTest.java
create mode 100644 "src/cn/edu/jxnu/sql/MySQL_5.5\344\270\255\346\226\207\345\270\256\345\212\251\346\226\207\346\241\243.pdf"
create mode 100644 "src/cn/edu/jxnu/sql/MySQL\346\200\247\350\203\275\344\274\230\345\214\226.xmind"
create mode 100644 "src/cn/edu/jxnu/sql/MySQL\346\200\247\350\203\275\350\260\203\344\274\230\344\270\216\346\236\266\346\236\204\350\256\276\350\256\241.pdf"
create mode 100644 "src/cn/edu/jxnu/sql/SQL \345\270\270\347\224\250\350\257\255\345\217\245\347\247\257\347\264\257.txt"
create mode 100644 "src/cn/edu/jxnu/sql/SQL\346\211\247\350\241\214\350\277\207\347\250\213\347\256\200\344\273\213.jpg"
create mode 100644 "src/cn/edu/jxnu/sql/\347\254\224\350\256\260.xls"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..43f421b4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+/bin/
+/target/
+/.settings/
+/.classpath
+/.project
+/.cache-main
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..aa1f62f3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,35 @@
+#### 主要包含 【长期更新-Java/Scala实现】
+
+ 1.[剑指offer多种解法 | 编程之美 | 笔试题](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/practice)
+
+ 2.[Java For Leetcode](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/leetcode) |
+ [Scala For Leetcode](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/leetcode/scala)
+
+ 3.[计算机网络](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/network.md)
+
+ 4.[AMQP | RabbitMQ](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/MQ.md)
+
+ 5.[SQL | MySQL](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/MySQL.md)
+
+ 6.[操作系统](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/OS.md)
+
+ 7.[Java多线程 | 并发](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/concurrent/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md)
+
+ 8.[总结图片](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/practice/picture)
+
+ 9.[JDK8常用类源码解析](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/sourcecode)
+
+ 10.[Java虚拟机相关](https://github.com/jxnu-liguobin/Java-Learning-Summary/tree/master/Java-Learning-Summary/src/cn/edu/jxnu/jvm/classloader)
+
+ 11.[反射 | ASM](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/reflect/asm/ASM.md)
+
+ 12.[Git简单总结](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/Git.md)
+
+ 13.[Redis:几乎都来自网络,有问题别找我QAQ](https://github.com/jxnu-liguobin/Java-Learning-Summary/blob/master/Java-Learning-Summary/src/cn/edu/jxnu/questions/redis.md)
+
+
+ 其他知识的代码。不使用md文件是希望可以直接运行,说明在包中
+
+ 部分收集于网络,知晓原作者以及版权的则在package-info类中说明
+
+ loading...
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..81ddbea7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,96 @@
+
+ 4.0.0
+ Java-Learning-Summary
+ Java-Learning-Summary
+ 0.0.1-SNAPSHOT
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+ org.apache.commons
+ commons-csv
+ 1.0
+
+
+ com.google.code.gson
+ gson
+ 2.8.2
+
+
+ org.javatuples
+ javatuples
+ 1.2
+
+
+ redis.clients
+ jedis
+ 2.9.0
+
+
+ commons-codec
+ commons-codec
+ 1.11
+
+
+ org.ow2.asm
+ asm-all
+ 5.1
+
+
+
+ junit
+ junit
+ 4.12
+
+
+ com.alibaba
+ fastjson
+ 1.2.29
+
+
+
+
+ org.scala-lang
+ scala-library
+ 2.12.3
+
+
+ com.typesafe.scala-logging
+ scala-logging_2.12
+ 3.7.2
+
+
+
+ src
+
+
+ org.scala-tools
+ maven-scala-plugin
+
+
+
+ compile
+ testCompile
+
+
+
+
+ incremental
+ 2.12.3
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+
+
+
diff --git a/src/cn/edu/jxnu/aio/AIOEchoServer.java b/src/cn/edu/jxnu/aio/AIOEchoServer.java
new file mode 100644
index 00000000..82db8849
--- /dev/null
+++ b/src/cn/edu/jxnu/aio/AIOEchoServer.java
@@ -0,0 +1,73 @@
+package cn.edu.jxnu.aio;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.nio.ByteBuffer;
+import java.nio.channels.AsynchronousServerSocketChannel;
+import java.nio.channels.AsynchronousSocketChannel;
+import java.nio.channels.CompletionHandler;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+
+/**
+ *
+ * @author 梦境迷离
+ * @description AIO 异步非阻塞,读完了再开始通知。【同步非阻塞是准备好了再通知】
+ * @time 2018年3月28日
+ */
+public class AIOEchoServer {
+ // 端口
+ public final static int PORT = 8000;
+ // 声明异步通道
+ private AsynchronousServerSocketChannel server;
+
+ public AIOEchoServer() throws IOException {
+ // 开启异步通道并且绑定ip的端口
+ server = AsynchronousServerSocketChannel.open().bind(new InetSocketAddress(PORT));
+ }
+
+ public void start() throws InterruptedException, ExecutionException, TimeoutException {
+ System.out.println("Server listen on " + PORT);
+ server.accept(null, new CompletionHandler() {
+ final ByteBuffer buffer = ByteBuffer.allocate(1024);
+
+ public void completed(AsynchronousSocketChannel result, Object attachment) {
+ System.out.println(Thread.currentThread().getName());
+ Future writeResult = null;
+ try {
+ buffer.clear();
+ result.read(buffer).get(100, TimeUnit.SECONDS);
+ buffer.flip();
+ writeResult = result.write(buffer);
+ } catch (InterruptedException | ExecutionException e) {
+ e.printStackTrace();
+ } catch (TimeoutException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ server.accept(null, this);
+ writeResult.get();
+ result.close();
+ } catch (Exception e) {
+ System.out.println(e.toString());
+ }
+ }
+ }
+
+ @Override
+ public void failed(Throwable exc, Object attachment) {
+ System.out.println("failed: " + exc);
+ }
+ });
+ }
+
+ public static void main(String args[]) throws Exception {
+ new AIOEchoServer().start();
+ while (true) {
+ Thread.sleep(1000);
+ }
+ }
+}
diff --git a/src/cn/edu/jxnu/classloader/PathClassLoader.java b/src/cn/edu/jxnu/classloader/PathClassLoader.java
new file mode 100644
index 00000000..a4fbe007
--- /dev/null
+++ b/src/cn/edu/jxnu/classloader/PathClassLoader.java
@@ -0,0 +1,31 @@
+package cn.edu.jxnu.classloader;
+
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * 实现自己的类加载器
+ *
+ * @author: 梦境迷离
+ * @version 1.0 @time. 2018年4月17日
+ */
+public class PathClassLoader extends URLClassLoader {
+ private String packageName = "cn.edu.jxnu.classloader";
+
+ PathClassLoader(URL[] classPath, ClassLoader parent) {
+ super(classPath, parent);
+ }
+
+ @Override
+ protected Class> findClass(String name) throws ClassNotFoundException {
+ Class> aClass = findLoadedClass(name);
+ if (aClass != null) {
+ return aClass;
+ }
+ if (!packageName.startsWith(name)) {
+ return super.loadClass(name);
+ } else {
+ return findClass(name);
+ }
+ }
+}
diff --git a/src/cn/edu/jxnu/concurrent/1.png b/src/cn/edu/jxnu/concurrent/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..46e1235f37733102f6e724933a7eff3a0f062b8a
GIT binary patch
literal 30710
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 |