From bbecd6eddc44d2868d9f5c2648942d92e003b608 Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Tue, 16 May 2017 13:28:22 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4=E8=87=B3=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chainResponsePattern/ConcreteHandler.java | 16 ++++ .../chainResponsePattern/ConsumeHandler.java | 77 +++++++++++++++++++ .../chainResponsePattern/Handler.java | 19 +++++ .../miniJVM/print/ConstantPoolPrinter.java | 36 --------- .../src/main/java/multiThread/Main.java | 17 ++++ .../src/main/java/multiThread/MyThread.java | 36 +++++++++ 6 files changed, 165 insertions(+), 36 deletions(-) create mode 100644 group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java create mode 100644 group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java create mode 100644 group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java create mode 100644 group24/75939388/learning2017/src/main/java/multiThread/Main.java create mode 100644 group24/75939388/learning2017/src/main/java/multiThread/MyThread.java diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java new file mode 100644 index 0000000000..ad29446e99 --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java @@ -0,0 +1,16 @@ +package designPattern.chainResponsePattern; + +/** + * @author : 温友朝 + * @date : 2017/5/10 + */ +public class ConcreteHandler extends Handler { + public void doHandler() { + if(getNextHandler() != null){ + System.out.println("还有责任链"); + getNextHandler().doHandler(); + }else{ + System.out.println("自己处理"); + } + } +} diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java new file mode 100644 index 0000000000..df234d2a9e --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java @@ -0,0 +1,77 @@ +package designPattern.chainResponsePattern; + +/** + * @author : 温友朝 + * @date : 2017/5/10 + */ +public abstract class ConsumeHandler { + private ConsumeHandler nextHandler; + + public ConsumeHandler getNextHandler() { + return nextHandler; + } + + public void setNextHandler(ConsumeHandler nextHandler) { + this.nextHandler = nextHandler; + } + + /** user申请人 free报销费用 */ + public abstract void doHandler(String user, double free); + + public static void main(String[] args){ +// ConcreteHandler handler1 = new ConcreteHandler(); +// ConcreteHandler handler2 = new ConcreteHandler(); +// handler1.setNextHandler(handler2); +// handler1.doHandler(); + + ProjectHandler projectHandler =new ProjectHandler(); + DeptHandler deptHandler =new DeptHandler(); + GeneralHandler generalHandler =new GeneralHandler(); + projectHandler.setNextHandler(deptHandler); + deptHandler.setNextHandler(generalHandler); + +// projectHandler.doHandler("lwx", 450); +// projectHandler.doHandler("lwx", 600); +// projectHandler.doHandler("zy", 600); + projectHandler.doHandler("zy", 1500); +// projectHandler.doHandler("lwxzy", 1500); + } +} + +//项目经理 +class ProjectHandler extends ConsumeHandler { + + @Override + public void doHandler(String user, double free) { + if (free < 500) { + System.out.println("lwx给予报销:" + free); + } else if (getNextHandler() != null) { + getNextHandler().doHandler(user, free); + } + } +} +//部门经理 +class DeptHandler extends ConsumeHandler { + + @Override + public void doHandler(String user, double free) { + System.out.println("getNextHandler -> " + getNextHandler() == null); + if (free < 1000) { + System.out.println("zy给予报销:" + free); + } else if (getNextHandler() != null) { + getNextHandler().doHandler(user, free); + } + } + } + //总经理 +class GeneralHandler extends ConsumeHandler { + + @Override + public void doHandler(String user, double free) { + if (free >=1000) { + System.out.println("lwxzy给予报销:" + free); + } else if (getNextHandler() != null) { + getNextHandler().doHandler(user, free); + } + } +} diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java new file mode 100644 index 0000000000..07da5aa89d --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java @@ -0,0 +1,19 @@ +package designPattern.chainResponsePattern; + +/** + * @author : 温友朝 + * @date : 2017/5/10 + */ +public abstract class Handler { + private Handler nextHandler; + + public Handler getNextHandler() { + return nextHandler; + } + + public void setNextHandler(Handler nextHandler) { + this.nextHandler = nextHandler; + } + + public abstract void doHandler(); +} diff --git a/group24/75939388/learning2017/src/main/java/miniJVM/print/ConstantPoolPrinter.java b/group24/75939388/learning2017/src/main/java/miniJVM/print/ConstantPoolPrinter.java index c776f49f01..c0f5d7d3de 100644 --- a/group24/75939388/learning2017/src/main/java/miniJVM/print/ConstantPoolPrinter.java +++ b/group24/75939388/learning2017/src/main/java/miniJVM/print/ConstantPoolPrinter.java @@ -73,42 +73,6 @@ public void visitUTF8(UTF8Info info) { System.out.print(i + "# = "); ConstantInfo cnst = pool.getConstantInfo(i); cnst.accept(visitor); -// if(cnst instanceof ClassInfo){ -// sb.append("Class "); -// sb.append("#" + ((ClassInfo) cnst).getUtf8Index()); -// sb.append(" //" + ((ClassInfo) cnst).getClassName()); -// }else if(cnst instanceof UTF8Info){ -// sb.append("Utf8 "); -// sb.append(((UTF8Info) cnst).getValue()); -// }else if(cnst instanceof MethodRefInfo){ -// sb.append("MethodRef "); -// sb.append("#" + ((MethodRefInfo) cnst).getClassInfoIndex()); -// sb.append(".").append("#" + ((MethodRefInfo) cnst).getNameAndTypeIndex()); -// sb.append(" //" + ((MethodRefInfo) cnst).getClassName()); -// sb.append("." + ((MethodRefInfo) cnst).getMethodName()); -// sb.append(":" + ((MethodRefInfo) cnst).getParamAndReturnType()); -// }else if(cnst instanceof NameAndTypeInfo){ -// sb.append("NameAndType "); -// sb.append("#" + ((NameAndTypeInfo) cnst).getIndex1()); -// sb.append(":#" + ((NameAndTypeInfo) cnst).getIndex2()); -// sb.append(" //" + ((NameAndTypeInfo) cnst).getName()); -// sb.append(":" + ((NameAndTypeInfo) cnst).getTypeInfo()); -// }else if(cnst instanceof FieldRefInfo){ -// sb.append("Fieldref "); -// sb.append("#" + ((FieldRefInfo) cnst).getClassInfoIndex()); -// sb.append("." + ((FieldRefInfo) cnst).getNameAndTypeIndex()); -// sb.append(" //" + ((FieldRefInfo) cnst).getClassName()); -// sb.append("." + ((FieldRefInfo) cnst).getFieldName()); -// sb.append(":" + ((FieldRefInfo) cnst).getFieldType()); -// }else if(cnst instanceof StringInfo){ -// sb.append("String "); -// sb.append("#" + ((StringInfo) cnst).getIndex()); -// sb.append(" //" + cnst.toString()); -// }else{ -// throw new RuntimeException(cnst.getType() + "not processed"); -// } - -// System.out.println(sb.toString()); } } } diff --git a/group24/75939388/learning2017/src/main/java/multiThread/Main.java b/group24/75939388/learning2017/src/main/java/multiThread/Main.java new file mode 100644 index 0000000000..a4b5f2a0e1 --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/multiThread/Main.java @@ -0,0 +1,17 @@ +package multiThread; + +/** + * @author : 温友朝 + * @date : 2017/5/15 + */ +public class Main{ + + public static void main(String[] args){ + MyThread t1 = new MyThread(1); + MyThread t2 = new MyThread(2); + + new Thread(t1).start(); + new Thread(t2).start(); + } + +} diff --git a/group24/75939388/learning2017/src/main/java/multiThread/MyThread.java b/group24/75939388/learning2017/src/main/java/multiThread/MyThread.java new file mode 100644 index 0000000000..60b260b016 --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/multiThread/MyThread.java @@ -0,0 +1,36 @@ +package multiThread; + +/** + * @author : 温友朝 + * @date : 2017/5/15 + */ +public class MyThread implements Runnable { + + private volatile int no = 0; + + public MyThread(int no){ + this.no = no; + } + + public void run() { + synchronized (this){ + try{ + /** + * wait和notify方法均可释放对象的锁,但wait同时释放CPU控制权, + * 即它后面的代码停止执行,线程进入阻塞状态,而notify方法不立刻 + * 释放CPU控制权,而是在相应的synchronized(){}语句块执行结束, + * 再自动释放锁。 + */ + //唤醒正在等待的线程,将锁交给JVM + notify(); + for(int i = 0; i < 10; i++){ + System.out.println(no + " = " + i); + } + //执行完毕之后将线程置为等待状态,线程被阻塞 + wait(); + }catch(Exception e){ + e.printStackTrace(); + } + } + } +} From 780e5c0da658810dd6ec9a605eee5699383789a1 Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Tue, 16 May 2017 13:39:49 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=82=E4=B8=AA=E4=BA=BA=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=B8=8E=E4=BD=9C=E4=B8=9A=E4=BB=A3=E7=A0=81=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binaryTree/BinarySearchTree.java | 29 ++++++++ .../binaryTree/BinaryTreeNode.java | 6 +- .../chainResponsePattern/ConcreteHandler.java | 2 +- .../chainResponsePattern/ConsumeHandler.java | 2 +- .../chainResponsePattern/Handler.java | 2 +- .../designPattern/decorator/Beverage.java | 2 +- .../decorator/CondimentDecorator.java | 2 +- .../decorator/beverages/DarkRoast.java | 4 +- .../decorator/beverages/Decaf.java | 4 +- .../decorator/beverages/Espresso.java | 4 +- .../decorator/beverages/HouseBlend.java | 4 +- .../decorator/condiments/Mocha.java | 6 +- .../decorator/condiments/Soy.java | 6 +- .../decorator/condiments/Whip.java | 6 +- .../{ => teePrivate}/multiThread/Main.java | 2 +- .../multiThread/MyThread.java | 2 +- .../binaryTree/BinarySearchTreeTest.java | 67 +++++++++++++++++++ .../designPattern/StarBuzzCoffeeTest.java | 16 ++--- 18 files changed, 131 insertions(+), 35 deletions(-) create mode 100644 group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/chainResponsePattern/ConcreteHandler.java (86%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/chainResponsePattern/ConsumeHandler.java (97%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/chainResponsePattern/Handler.java (85%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/Beverage.java (90%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/CondimentDecorator.java (78%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/beverages/DarkRoast.java (73%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/beverages/Decaf.java (72%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/beverages/Espresso.java (72%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/beverages/HouseBlend.java (72%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/condiments/Mocha.java (74%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/condiments/Soy.java (73%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/designPattern/decorator/condiments/Whip.java (73%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/multiThread/Main.java (89%) rename group24/75939388/learning2017/src/main/java/{ => teePrivate}/multiThread/MyThread.java (97%) create mode 100644 group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java rename group24/75939388/learning2017/src/test/java/{ => teePrivate}/designPattern/StarBuzzCoffeeTest.java (64%) diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java new file mode 100644 index 0000000000..899a824cb4 --- /dev/null +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java @@ -0,0 +1,29 @@ +package basic.dataStructure.binaryTree; + +public class BinarySearchTree { + + BinaryTreeNode root; + public BinarySearchTree(BinaryTreeNode root){ + this.root = root; + } + public BinaryTreeNode getRoot(){ + return root; + } + public T findMin(){ + return null; + } + public T findMax(){ + return null; + } + public int height() { + return -1; + } + public int size() { + return -1; + } + public void remove(T e){ + + } + +} + diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinaryTreeNode.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinaryTreeNode.java index b2b96c0349..60783a166b 100644 --- a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinaryTreeNode.java +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinaryTreeNode.java @@ -72,9 +72,9 @@ public class BinaryTreeNode { //// //// return dataStr.toString(); //// } - private T data; - private BinaryTreeNode left; - private BinaryTreeNode right; + public T data; + public BinaryTreeNode left; + public BinaryTreeNode right; public BinaryTreeNode(T data){ this.data=data; diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java similarity index 86% rename from group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java index ad29446e99..e7bff87508 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConcreteHandler.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java @@ -1,4 +1,4 @@ -package designPattern.chainResponsePattern; +package teePrivate.designPattern.chainResponsePattern; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java similarity index 97% rename from group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java index df234d2a9e..caed59d020 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/ConsumeHandler.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java @@ -1,4 +1,4 @@ -package designPattern.chainResponsePattern; +package teePrivate.designPattern.chainResponsePattern; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java similarity index 85% rename from group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java index 07da5aa89d..cd71626d95 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/chainResponsePattern/Handler.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java @@ -1,4 +1,4 @@ -package designPattern.chainResponsePattern; +package teePrivate.designPattern.chainResponsePattern; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/Beverage.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java similarity index 90% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/Beverage.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java index e68e2e7b82..670c43976e 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/Beverage.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java @@ -1,4 +1,4 @@ -package designPattern.decorator; +package teePrivate.designPattern.decorator; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/CondimentDecorator.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java similarity index 78% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/CondimentDecorator.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java index dca6ade059..b2aca74e44 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/CondimentDecorator.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java @@ -1,4 +1,4 @@ -package designPattern.decorator; +package teePrivate.designPattern.decorator; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/DarkRoast.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java similarity index 73% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/DarkRoast.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java index 2c39efecf9..0cc4e865f1 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/DarkRoast.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java @@ -1,6 +1,6 @@ -package designPattern.decorator.beverages; +package teePrivate.designPattern.decorator.beverages; -import designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.Beverage; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Decaf.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java similarity index 72% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Decaf.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java index bb4f757ad4..3d3e341acc 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Decaf.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java @@ -1,6 +1,6 @@ -package designPattern.decorator.beverages; +package teePrivate.designPattern.decorator.beverages; -import designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.Beverage; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Espresso.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java similarity index 72% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Espresso.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java index dca41cc66c..ef1e8655ec 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/Espresso.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java @@ -1,6 +1,6 @@ -package designPattern.decorator.beverages; +package teePrivate.designPattern.decorator.beverages; -import designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.Beverage; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/HouseBlend.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java similarity index 72% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/HouseBlend.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java index 8b296aa3cf..894af33db9 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/beverages/HouseBlend.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java @@ -1,6 +1,6 @@ -package designPattern.decorator.beverages; +package teePrivate.designPattern.decorator.beverages; -import designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.Beverage; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Mocha.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java similarity index 74% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Mocha.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java index 799399332f..e6ded7a0d2 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Mocha.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java @@ -1,7 +1,7 @@ -package designPattern.decorator.condiments; +package teePrivate.designPattern.decorator.condiments; -import designPattern.decorator.Beverage; -import designPattern.decorator.CondimentDecorator; +import teePrivate.designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.CondimentDecorator; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Soy.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java similarity index 73% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Soy.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java index ec4873c914..d70934538a 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Soy.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java @@ -1,7 +1,7 @@ -package designPattern.decorator.condiments; +package teePrivate.designPattern.decorator.condiments; -import designPattern.decorator.Beverage; -import designPattern.decorator.CondimentDecorator; +import teePrivate.designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.CondimentDecorator; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Whip.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java similarity index 73% rename from group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Whip.java rename to group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java index 7b8cce87af..8c04862765 100644 --- a/group24/75939388/learning2017/src/main/java/designPattern/decorator/condiments/Whip.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java @@ -1,7 +1,7 @@ -package designPattern.decorator.condiments; +package teePrivate.designPattern.decorator.condiments; -import designPattern.decorator.Beverage; -import designPattern.decorator.CondimentDecorator; +import teePrivate.designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.CondimentDecorator; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/multiThread/Main.java b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java similarity index 89% rename from group24/75939388/learning2017/src/main/java/multiThread/Main.java rename to group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java index a4b5f2a0e1..d118318214 100644 --- a/group24/75939388/learning2017/src/main/java/multiThread/Main.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java @@ -1,4 +1,4 @@ -package multiThread; +package teePrivate.multiThread; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/main/java/multiThread/MyThread.java b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java similarity index 97% rename from group24/75939388/learning2017/src/main/java/multiThread/MyThread.java rename to group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java index 60b260b016..946cf693b6 100644 --- a/group24/75939388/learning2017/src/main/java/multiThread/MyThread.java +++ b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java @@ -1,4 +1,4 @@ -package multiThread; +package teePrivate.multiThread; /** * @author : 温友朝 diff --git a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java b/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java new file mode 100644 index 0000000000..a1cc46e007 --- /dev/null +++ b/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java @@ -0,0 +1,67 @@ +package data_structure.binaryTree; + +import basic.dataStructure.binaryTree.BinarySearchTree; +import basic.dataStructure.binaryTree.BinaryTreeNode; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + + + +public class BinarySearchTreeTest { + + BinarySearchTree tree = null; + + @Before + public void setUp() throws Exception { + BinaryTreeNode root = new BinaryTreeNode(6); + root.left = new BinaryTreeNode(2); + root.right = new BinaryTreeNode(8); + root.left.left = new BinaryTreeNode(1); + root.left.right = new BinaryTreeNode(4); + root.left.right.left = new BinaryTreeNode(3); + tree = new BinarySearchTree(root); + } + + @After + public void tearDown() throws Exception { + tree = null; + } + + @Test + public void testFindMin() { + Assert.assertEquals(1, tree.findMin().intValue()); + + } + + @Test + public void testFindMax() { + Assert.assertEquals(8, tree.findMax().intValue()); + } + + @Test + public void testHeight() { + Assert.assertEquals(4, tree.height()); + } + + @Test + public void testSize() { + Assert.assertEquals(6, tree.size()); + } + + @Test + public void testRemoveLeaf() { + tree.remove(4); + BinaryTreeNode root= tree.getRoot(); + Assert.assertEquals(3, root.left.right.data.intValue()); + + } + @Test + public void testRemoveMiddleNode() { + tree.remove(2); + BinaryTreeNode root= tree.getRoot(); + Assert.assertEquals(3, root.left.data.intValue()); + Assert.assertEquals(4, root.left.right.data.intValue()); + } +} diff --git a/group24/75939388/learning2017/src/test/java/designPattern/StarBuzzCoffeeTest.java b/group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java similarity index 64% rename from group24/75939388/learning2017/src/test/java/designPattern/StarBuzzCoffeeTest.java rename to group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java index 8f04ce4ff1..b8d20f7ce8 100644 --- a/group24/75939388/learning2017/src/test/java/designPattern/StarBuzzCoffeeTest.java +++ b/group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java @@ -1,12 +1,12 @@ -package designPattern; +package teePrivate.designPattern; -import designPattern.decorator.Beverage; -import designPattern.decorator.beverages.DarkRoast; -import designPattern.decorator.beverages.Espresso; -import designPattern.decorator.beverages.HouseBlend; -import designPattern.decorator.condiments.Mocha; -import designPattern.decorator.condiments.Soy; -import designPattern.decorator.condiments.Whip; +import teePrivate.designPattern.decorator.Beverage; +import teePrivate.designPattern.decorator.beverages.DarkRoast; +import teePrivate.designPattern.decorator.beverages.Espresso; +import teePrivate.designPattern.decorator.beverages.HouseBlend; +import teePrivate.designPattern.decorator.condiments.Mocha; +import teePrivate.designPattern.decorator.condiments.Soy; +import teePrivate.designPattern.decorator.condiments.Whip; import org.junit.Test; /** From 133b38968273e1bda7c4b1efdc646303043b7181 Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Tue, 16 May 2017 17:35:33 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chainResponsePattern/ConcreteHandler.java | 16 ---- .../chainResponsePattern/ConsumeHandler.java | 77 ------------------- .../chainResponsePattern/Handler.java | 19 ----- .../designPattern/decorator/Beverage.java | 23 ------ .../decorator/CondimentDecorator.java | 9 --- .../decorator/beverages/DarkRoast.java | 24 ------ .../decorator/beverages/Decaf.java | 24 ------ .../decorator/beverages/Espresso.java | 24 ------ .../decorator/beverages/HouseBlend.java | 23 ------ .../decorator/condiments/Mocha.java | 31 -------- .../decorator/condiments/Soy.java | 31 -------- .../decorator/condiments/Whip.java | 31 -------- .../java/teePrivate/multiThread/Main.java | 17 ---- .../java/teePrivate/multiThread/MyThread.java | 36 --------- .../designPattern/StarBuzzCoffeeTest.java | 35 --------- 15 files changed, 420 deletions(-) delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java delete mode 100644 group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java delete mode 100644 group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java deleted file mode 100644 index e7bff87508..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConcreteHandler.java +++ /dev/null @@ -1,16 +0,0 @@ -package teePrivate.designPattern.chainResponsePattern; - -/** - * @author : 温友朝 - * @date : 2017/5/10 - */ -public class ConcreteHandler extends Handler { - public void doHandler() { - if(getNextHandler() != null){ - System.out.println("还有责任链"); - getNextHandler().doHandler(); - }else{ - System.out.println("自己处理"); - } - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java deleted file mode 100644 index caed59d020..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/ConsumeHandler.java +++ /dev/null @@ -1,77 +0,0 @@ -package teePrivate.designPattern.chainResponsePattern; - -/** - * @author : 温友朝 - * @date : 2017/5/10 - */ -public abstract class ConsumeHandler { - private ConsumeHandler nextHandler; - - public ConsumeHandler getNextHandler() { - return nextHandler; - } - - public void setNextHandler(ConsumeHandler nextHandler) { - this.nextHandler = nextHandler; - } - - /** user申请人 free报销费用 */ - public abstract void doHandler(String user, double free); - - public static void main(String[] args){ -// ConcreteHandler handler1 = new ConcreteHandler(); -// ConcreteHandler handler2 = new ConcreteHandler(); -// handler1.setNextHandler(handler2); -// handler1.doHandler(); - - ProjectHandler projectHandler =new ProjectHandler(); - DeptHandler deptHandler =new DeptHandler(); - GeneralHandler generalHandler =new GeneralHandler(); - projectHandler.setNextHandler(deptHandler); - deptHandler.setNextHandler(generalHandler); - -// projectHandler.doHandler("lwx", 450); -// projectHandler.doHandler("lwx", 600); -// projectHandler.doHandler("zy", 600); - projectHandler.doHandler("zy", 1500); -// projectHandler.doHandler("lwxzy", 1500); - } -} - -//项目经理 -class ProjectHandler extends ConsumeHandler { - - @Override - public void doHandler(String user, double free) { - if (free < 500) { - System.out.println("lwx给予报销:" + free); - } else if (getNextHandler() != null) { - getNextHandler().doHandler(user, free); - } - } -} -//部门经理 -class DeptHandler extends ConsumeHandler { - - @Override - public void doHandler(String user, double free) { - System.out.println("getNextHandler -> " + getNextHandler() == null); - if (free < 1000) { - System.out.println("zy给予报销:" + free); - } else if (getNextHandler() != null) { - getNextHandler().doHandler(user, free); - } - } - } - //总经理 -class GeneralHandler extends ConsumeHandler { - - @Override - public void doHandler(String user, double free) { - if (free >=1000) { - System.out.println("lwxzy给予报销:" + free); - } else if (getNextHandler() != null) { - getNextHandler().doHandler(user, free); - } - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java deleted file mode 100644 index cd71626d95..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/chainResponsePattern/Handler.java +++ /dev/null @@ -1,19 +0,0 @@ -package teePrivate.designPattern.chainResponsePattern; - -/** - * @author : 温友朝 - * @date : 2017/5/10 - */ -public abstract class Handler { - private Handler nextHandler; - - public Handler getNextHandler() { - return nextHandler; - } - - public void setNextHandler(Handler nextHandler) { - this.nextHandler = nextHandler; - } - - public abstract void doHandler(); -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java deleted file mode 100644 index 670c43976e..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/Beverage.java +++ /dev/null @@ -1,23 +0,0 @@ -package teePrivate.designPattern.decorator; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public abstract class Beverage { - public static final int TALL = 0; - public static final int GRANDE = 1; - public static final int VENTI = 2; - - - public String description = ""; - public static int size = TALL; - - public String getDescription(){ - return description; - } - - public abstract double cost(); - - public abstract int size(); -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java deleted file mode 100644 index b2aca74e44..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/CondimentDecorator.java +++ /dev/null @@ -1,9 +0,0 @@ -package teePrivate.designPattern.decorator; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public abstract class CondimentDecorator extends Beverage { - public abstract String getDescription(); -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java deleted file mode 100644 index 0cc4e865f1..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/DarkRoast.java +++ /dev/null @@ -1,24 +0,0 @@ -package teePrivate.designPattern.decorator.beverages; - -import teePrivate.designPattern.decorator.Beverage; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class DarkRoast extends Beverage { - - public DarkRoast(){ - description = "Dark Roast"; - } - - @Override - public double cost() { - return 0.99; - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java deleted file mode 100644 index 3d3e341acc..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Decaf.java +++ /dev/null @@ -1,24 +0,0 @@ -package teePrivate.designPattern.decorator.beverages; - -import teePrivate.designPattern.decorator.Beverage; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class Decaf extends Beverage { - - public Decaf(){ - description = "Decaf"; - } - - @Override - public double cost() { - return 1.99; - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java deleted file mode 100644 index ef1e8655ec..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/Espresso.java +++ /dev/null @@ -1,24 +0,0 @@ -package teePrivate.designPattern.decorator.beverages; - -import teePrivate.designPattern.decorator.Beverage; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class Espresso extends Beverage { - - public Espresso(){ - description = "Espresso"; - } - - public double cost() { - return 1.99d; - } - - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java deleted file mode 100644 index 894af33db9..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/beverages/HouseBlend.java +++ /dev/null @@ -1,23 +0,0 @@ -package teePrivate.designPattern.decorator.beverages; - -import teePrivate.designPattern.decorator.Beverage; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class HouseBlend extends Beverage { - - public HouseBlend(){ - description = "House Blend"; - } - - public double cost() { - return 0.89; - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java deleted file mode 100644 index e6ded7a0d2..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Mocha.java +++ /dev/null @@ -1,31 +0,0 @@ -package teePrivate.designPattern.decorator.condiments; - -import teePrivate.designPattern.decorator.Beverage; -import teePrivate.designPattern.decorator.CondimentDecorator; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class Mocha extends CondimentDecorator { - Beverage beverage; - - public Mocha(Beverage beverage){ - this.beverage = beverage; - - this.description += this.beverage.description + ", Mocha"; - } - - public String getDescription() { - return this.description; - } - - public double cost() { - return 0.2 + beverage.cost(); - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java deleted file mode 100644 index d70934538a..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Soy.java +++ /dev/null @@ -1,31 +0,0 @@ -package teePrivate.designPattern.decorator.condiments; - -import teePrivate.designPattern.decorator.Beverage; -import teePrivate.designPattern.decorator.CondimentDecorator; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class Soy extends CondimentDecorator { - Beverage beverage; - - public Soy(Beverage beverage){ - this.beverage = beverage; - - this.description += this.beverage.description + ", Soy"; - } - - public String getDescription() { - return this.description; - } - - public double cost() { - return 0.15 + beverage.cost(); - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java b/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java deleted file mode 100644 index 8c04862765..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/designPattern/decorator/condiments/Whip.java +++ /dev/null @@ -1,31 +0,0 @@ -package teePrivate.designPattern.decorator.condiments; - -import teePrivate.designPattern.decorator.Beverage; -import teePrivate.designPattern.decorator.CondimentDecorator; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class Whip extends CondimentDecorator { - Beverage beverage; - - public Whip(Beverage beverage){ - this.beverage = beverage; - - this.description += beverage.description + ", "; - } - - public String getDescription() { - return this.description; - } - - public double cost() { - return 0.1 + beverage.cost(); - } - - @Override - public int size() { - return 0; - } -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java deleted file mode 100644 index d118318214..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/Main.java +++ /dev/null @@ -1,17 +0,0 @@ -package teePrivate.multiThread; - -/** - * @author : 温友朝 - * @date : 2017/5/15 - */ -public class Main{ - - public static void main(String[] args){ - MyThread t1 = new MyThread(1); - MyThread t2 = new MyThread(2); - - new Thread(t1).start(); - new Thread(t2).start(); - } - -} diff --git a/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java b/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java deleted file mode 100644 index 946cf693b6..0000000000 --- a/group24/75939388/learning2017/src/main/java/teePrivate/multiThread/MyThread.java +++ /dev/null @@ -1,36 +0,0 @@ -package teePrivate.multiThread; - -/** - * @author : 温友朝 - * @date : 2017/5/15 - */ -public class MyThread implements Runnable { - - private volatile int no = 0; - - public MyThread(int no){ - this.no = no; - } - - public void run() { - synchronized (this){ - try{ - /** - * wait和notify方法均可释放对象的锁,但wait同时释放CPU控制权, - * 即它后面的代码停止执行,线程进入阻塞状态,而notify方法不立刻 - * 释放CPU控制权,而是在相应的synchronized(){}语句块执行结束, - * 再自动释放锁。 - */ - //唤醒正在等待的线程,将锁交给JVM - notify(); - for(int i = 0; i < 10; i++){ - System.out.println(no + " = " + i); - } - //执行完毕之后将线程置为等待状态,线程被阻塞 - wait(); - }catch(Exception e){ - e.printStackTrace(); - } - } - } -} diff --git a/group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java b/group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java deleted file mode 100644 index b8d20f7ce8..0000000000 --- a/group24/75939388/learning2017/src/test/java/teePrivate/designPattern/StarBuzzCoffeeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package teePrivate.designPattern; - -import teePrivate.designPattern.decorator.Beverage; -import teePrivate.designPattern.decorator.beverages.DarkRoast; -import teePrivate.designPattern.decorator.beverages.Espresso; -import teePrivate.designPattern.decorator.beverages.HouseBlend; -import teePrivate.designPattern.decorator.condiments.Mocha; -import teePrivate.designPattern.decorator.condiments.Soy; -import teePrivate.designPattern.decorator.condiments.Whip; -import org.junit.Test; - -/** - * @author : 温友朝 - * @date : 2017/5/5 - */ -public class StarBuzzCoffeeTest { - - @Test - public void test1(){ - Beverage espresso = new Espresso(); - System.out.println(espresso.getDescription() + " cost $" + espresso.cost()); - - Beverage darkRoast = new DarkRoast(); - darkRoast = new Mocha(darkRoast); - darkRoast = new Mocha(darkRoast); - darkRoast = new Whip(darkRoast); - System.out.println(darkRoast.getDescription() + " cost $" + darkRoast.cost()); - - Beverage houseBlend = new HouseBlend(); - houseBlend = new Soy(houseBlend); - houseBlend = new Mocha(houseBlend); - houseBlend = new Whip(houseBlend); - System.out.println(houseBlend.getDescription() + " cost $" + houseBlend.cost()); - } -} From fe7be150fd3bda4606b1fab5193b3cea75bd1e9c Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Tue, 16 May 2017 23:04:31 +0800 Subject: [PATCH 4/6] =?UTF-8?q?FileList=E4=BD=9C=E4=B8=9A=E8=A1=A5?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataStructure/binaryTree/FileList.java | 51 ++++++++++++++++++- .../dataStructure/stack/expr/Calculator.java | 1 + .../binaryTree/FileListTest.java | 28 ++++++++++ .../src/test/java/thread/ThreadTest.java | 27 ++++++++++ 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java create mode 100644 group24/75939388/learning2017/src/test/java/thread/ThreadTest.java diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/FileList.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/FileList.java index 7d7af85490..8beb22f031 100644 --- a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/FileList.java +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/FileList.java @@ -2,9 +2,56 @@ import java.io.File; +/** + * 给定一个目录,递归的列出下面所有的子目录和文件 + * + */ public class FileList { - public void list(File f) { + + public void list(File f, int level) { + if(!f.exists()){ + throw new RuntimeException("file " + f.getAbsolutePath() + " not existed"); + } + + StringBuilder head = new StringBuilder(); + head.append("|--").append(f.getName()); + System.out.println(head.toString()); + + File[] files = f.listFiles(); + for(File file : files){ + if(file.isDirectory()){ + printDirectory(file, level + 1); + }else{ + printFile(file, level); + } + } + } - + private void printDirectory(File f, int level){ + StringBuilder builder = new StringBuilder(); + for(int i = 0; i < level; i++){ + builder.append(" "); + } + builder.append("|--").append(f.getName()); + System.out.println(builder.toString()); + + File[] files = f.listFiles(); + for(File file : files){ + if(file.isDirectory()){ + printDirectory(file, level + 1); + }else{ + printFile(file, level); + } + } + } + + private void printFile(File f, int level){ + StringBuilder builder = new StringBuilder(); + for(int i = 0; i < level + 1; i++){ + builder.append(" "); + } + builder.append("|->").append(f.getName()); + System.out.println(builder.toString()); + } } diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/stack/expr/Calculator.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/stack/expr/Calculator.java index fe6510b532..236751360b 100644 --- a/group24/75939388/learning2017/src/main/java/basic/dataStructure/stack/expr/Calculator.java +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/stack/expr/Calculator.java @@ -17,6 +17,7 @@ public static float getFloat(float val1, float val2, String oper) { if (val2 == 0) throw new RuntimeException("cannot divide 0, calculation canceled"); res = val1 / val2; } + // System.out.println("计算结果: " + val1 + oper + val2 + "=" + res); return res; } diff --git a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java b/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java new file mode 100644 index 0000000000..56e7da0eaf --- /dev/null +++ b/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java @@ -0,0 +1,28 @@ +package data_structure.binaryTree; + +import basic.dataStructure.binaryTree.FileList; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; + +/** + * Created by macvi on 2017/5/16. + */ +public class FileListTest { + + FileList fl = null; + + @Before + public void init(){ + fl = new FileList(); + } + + @Test + public void test(){ + String path1 = "E:\\Downloads"; + String path2 = "E:\\系统ISO"; + + fl.list(new File(path2), 0); + } +} diff --git a/group24/75939388/learning2017/src/test/java/thread/ThreadTest.java b/group24/75939388/learning2017/src/test/java/thread/ThreadTest.java new file mode 100644 index 0000000000..8463d6e4ab --- /dev/null +++ b/group24/75939388/learning2017/src/test/java/thread/ThreadTest.java @@ -0,0 +1,27 @@ +package thread; + +/** + * Created by macvi on 2017/5/3. + */ +public class ThreadTest extends Thread { + boolean stop = false; + int value = 0; + public void run() { + while (!stop) { + value++; + } + } + public static void main(String[] args) + throws Exception { + + ThreadTest t = new ThreadTest(); + t.start(); + Thread.sleep(2000); + t.stop = true; + System.out.println("value = " + t.value); + Thread.sleep(2000); + System.out.println("value = " + t.value); + + } +} + From eb2f6f1e7b7655c82422d3647b41f2b6837680b1 Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Wed, 17 May 2017 17:42:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E5=91=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84=E4=BD=9C=E4=B8=9A=EF=BC=8C=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binaryTree/BinarySearchTree.java | 56 +++++++++++++++++-- .../BinarySearchTreeTest.java | 13 ++--- .../BinaryTreeUtilTest.java | 2 +- .../{binaryTree => tree}/FileListTest.java | 2 +- .../MemoryLeakSimulation.java | 25 +++++++++ 5 files changed, 81 insertions(+), 17 deletions(-) rename group24/75939388/learning2017/src/test/java/data_structure/{binaryTree => tree}/BinarySearchTreeTest.java (86%) rename group24/75939388/learning2017/src/test/java/data_structure/{binaryTree => tree}/BinaryTreeUtilTest.java (98%) rename group24/75939388/learning2017/src/test/java/data_structure/{binaryTree => tree}/FileListTest.java (92%) create mode 100644 group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java index 899a824cb4..7f2f4bdd1a 100644 --- a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java @@ -1,29 +1,73 @@ package basic.dataStructure.binaryTree; +import java.util.List; + public class BinarySearchTree { BinaryTreeNode root; + public BinarySearchTree(BinaryTreeNode root){ this.root = root; } + public BinaryTreeNode getRoot(){ return root; } + public T findMin(){ - return null; + List list = BinaryTreeUtil.preOrderVisit(root); + T min = list.get(0); + for(T t : list){ + min = min.compareTo(t) == -1 ? min : t; + } + return min; } public T findMax(){ - return null; + List list = BinaryTreeUtil.preOrderVisit(root); + T max = list.get(0); + for(T t : list){ + max = max.compareTo(t) == 1 ? max : t; + } + return max; } + public int height() { - return -1; + return calHeight(root); } + + private int calHeight(BinaryTreeNode root){ + if(root == null) return 0; + + int left = calHeight(root.left); + int right = calHeight(root.right); + + return (left > right ? left : right) + 1; + + } + public int size() { - return -1; + List list = BinaryTreeUtil.preOrderVisit(root); + return list.size(); } + public void remove(T e){ - + find(root, (Integer) e); + } + + private BinaryTreeNode find(BinaryTreeNode node, int value){ + if(node.getData().compareTo(value) == 0){ + return node; + } + + return null; + } + + private void noLeafRemove(){ + + } + + private void oneChildRemove(){ + } - } diff --git a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java similarity index 86% rename from group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java rename to group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java index a1cc46e007..13ddb13c4f 100644 --- a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinarySearchTreeTest.java +++ b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java @@ -1,4 +1,4 @@ -package data_structure.binaryTree; +package data_structure.tree; import basic.dataStructure.binaryTree.BinarySearchTree; import basic.dataStructure.binaryTree.BinaryTreeNode; @@ -30,13 +30,8 @@ public void tearDown() throws Exception { } @Test - public void testFindMin() { + public void testFind() { Assert.assertEquals(1, tree.findMin().intValue()); - - } - - @Test - public void testFindMax() { Assert.assertEquals(8, tree.findMax().intValue()); } @@ -53,8 +48,8 @@ public void testSize() { @Test public void testRemoveLeaf() { tree.remove(4); - BinaryTreeNode root= tree.getRoot(); - Assert.assertEquals(3, root.left.right.data.intValue()); +// BinaryTreeNode root= tree.getRoot(); +// Assert.assertEquals(3, root.left.right.data.intValue()); } @Test diff --git a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinaryTreeUtilTest.java b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinaryTreeUtilTest.java similarity index 98% rename from group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinaryTreeUtilTest.java rename to group24/75939388/learning2017/src/test/java/data_structure/tree/BinaryTreeUtilTest.java index 09b50a1148..b3657aece4 100644 --- a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/BinaryTreeUtilTest.java +++ b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinaryTreeUtilTest.java @@ -1,4 +1,4 @@ -package data_structure.binaryTree; +package data_structure.tree; import basic.dataStructure.binaryTree.BinaryTreeNode; import basic.dataStructure.binaryTree.BinaryTreeUtil; diff --git a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java b/group24/75939388/learning2017/src/test/java/data_structure/tree/FileListTest.java similarity index 92% rename from group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java rename to group24/75939388/learning2017/src/test/java/data_structure/tree/FileListTest.java index 56e7da0eaf..18f3bddc0a 100644 --- a/group24/75939388/learning2017/src/test/java/data_structure/binaryTree/FileListTest.java +++ b/group24/75939388/learning2017/src/test/java/data_structure/tree/FileListTest.java @@ -1,4 +1,4 @@ -package data_structure.binaryTree; +package data_structure.tree; import basic.dataStructure.binaryTree.FileList; import org.junit.Before; diff --git a/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java b/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java new file mode 100644 index 0000000000..ad8284dcbc --- /dev/null +++ b/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java @@ -0,0 +1,25 @@ +package gabageCollection; + +import org.junit.Test; + +/** + * @author : 温友朝 + * @date : 2017/5/17 + */ +public class MemoryLeakSimulation { + + @Test + public void testOutOfMemory(){ + + } + + @Test + public void testStackOverFlowError(){ + + } + + @Test + public void testOutOfMemoryPermGenSpace(){ + + } +} From 0751b68cd4b088a9fb1670a4d8bab6ce6e2733fa Mon Sep 17 00:00:00 2001 From: macvis_qq75939388 Date: Thu, 18 May 2017 14:01:23 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binaryTree/BinarySearchTree.java | 147 ++++++++++-------- .../tree/BinarySearchTreeTest.java | 4 +- .../MemoryLeakSimulation.java | 26 ++-- 3 files changed, 102 insertions(+), 75 deletions(-) diff --git a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java index 7f2f4bdd1a..acbb5c7083 100644 --- a/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java +++ b/group24/75939388/learning2017/src/main/java/basic/dataStructure/binaryTree/BinarySearchTree.java @@ -3,71 +3,90 @@ import java.util.List; public class BinarySearchTree { - - BinaryTreeNode root; - public BinarySearchTree(BinaryTreeNode root){ - this.root = root; - } + BinaryTreeNode root; + + public BinarySearchTree(BinaryTreeNode root) { + this.root = root; + } + + public BinaryTreeNode getRoot() { + return root; + } + + public T findMin() { + return findMin(root); + } + + private T findMin(BinaryTreeNode root){ + List list = BinaryTreeUtil.preOrderVisit(root); + T min = list.get(0); + for (T t : list) { + min = min.compareTo(t) == -1 ? min : t; + } + return min; + } + + public T findMax() { + return findMax(root); + } + + private T findMax(BinaryTreeNode root){ + List list = BinaryTreeUtil.preOrderVisit(root); + T max = list.get(0); + for (T t : list) { + max = max.compareTo(t) == 1 ? max : t; + } + return max; + } + + public int height() { + return calHeight(root); + } + + private int calHeight(BinaryTreeNode root) { + if (root == null) return 0; + + int left = calHeight(root.left); + int right = calHeight(root.right); + + return (left > right ? left : right) + 1; + + } + + public int size() { + List list = BinaryTreeUtil.preOrderVisit(root); + return list.size(); + } + + public void remove(T e) { + remove(root, (Integer) e); + } + + private void remove(BinaryTreeNode node, int value) { + if (node == null) throw new RuntimeException("no such node has value = " + value); + + T data = node.getData(); + if (data.compareTo(value) == 0) { + if (node.left == null && node.right == null) { + node = null; + } else if (node.left != null && node.right == null) { + node.data = node.left.data; + node.left = null; + } else if (node.left == null && node.right != null) { + node.data = node.right.data; + node.right = null; + } else { + T replace = findMin(node.right); + node.data = replace; + remove(node.right, (Integer)replace); + } + } else if (data.compareTo(value) == -1) { + remove(node.right, value); + } else { + remove(node.left, value); + } + } - public BinaryTreeNode getRoot(){ - return root; - } - - public T findMin(){ - List list = BinaryTreeUtil.preOrderVisit(root); - T min = list.get(0); - for(T t : list){ - min = min.compareTo(t) == -1 ? min : t; - } - return min; - } - public T findMax(){ - List list = BinaryTreeUtil.preOrderVisit(root); - T max = list.get(0); - for(T t : list){ - max = max.compareTo(t) == 1 ? max : t; - } - return max; - } - - public int height() { - return calHeight(root); - } - - private int calHeight(BinaryTreeNode root){ - if(root == null) return 0; - - int left = calHeight(root.left); - int right = calHeight(root.right); - - return (left > right ? left : right) + 1; - - } - - public int size() { - List list = BinaryTreeUtil.preOrderVisit(root); - return list.size(); - } - - public void remove(T e){ - find(root, (Integer) e); - } - - private BinaryTreeNode find(BinaryTreeNode node, int value){ - if(node.getData().compareTo(value) == 0){ - return node; - } - - return null; - } - - private void noLeafRemove(){ - - } - - private void oneChildRemove(){ - - } } diff --git a/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java index 13ddb13c4f..6dbef3a2bc 100644 --- a/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java +++ b/group24/75939388/learning2017/src/test/java/data_structure/tree/BinarySearchTreeTest.java @@ -48,8 +48,8 @@ public void testSize() { @Test public void testRemoveLeaf() { tree.remove(4); -// BinaryTreeNode root= tree.getRoot(); -// Assert.assertEquals(3, root.left.right.data.intValue()); + BinaryTreeNode root= tree.getRoot(); + Assert.assertEquals(3, root.left.right.data.intValue()); } @Test diff --git a/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java b/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java index ad8284dcbc..483efec77d 100644 --- a/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java +++ b/group24/75939388/learning2017/src/test/java/gabageCollection/MemoryLeakSimulation.java @@ -1,6 +1,7 @@ package gabageCollection; -import org.junit.Test; +import java.util.ArrayList; +import java.util.List; /** * @author : 温友朝 @@ -8,18 +9,25 @@ */ public class MemoryLeakSimulation { - @Test - public void testOutOfMemory(){ - + public static void testOutOfMemory(){ +// List list = new ArrayList(); + List list = new ArrayList(); + for(;;){ + list.add(new byte[10*1024*1024]); + } } - @Test - public void testStackOverFlowError(){ - + public static void testStackOverFlowError(){ + testStackOverFlowError(); } - @Test - public void testOutOfMemoryPermGenSpace(){ + public static void testOutOfMemoryPermGenSpace(){ + //出现在热部署时最多 + } + public static void main(String[] args){ +// testOutOfMemory(); +// testStackOverFlowError(); + testOutOfMemoryPermGenSpace(); } }