xerga 2 年 前
コミット
9816693912
91 ファイル変更2105 行追加0 行削除
  1. 2 0
      JavaSE/.idea/modules.xml
  2. 10 0
      JavaSE/day14/day14.iml
  3. 19 0
      JavaSE/day14/src/com/lovecoding/day14/ex01/ChatThread.java
  4. 37 0
      JavaSE/day14/src/com/lovecoding/day14/ex01/Test01.java
  5. 76 0
      JavaSE/day14/src/com/lovecoding/day14/ex02/Racer.java
  6. 34 0
      JavaSE/day14/src/com/lovecoding/day14/ex02/TestRacer.java
  7. 15 0
      JavaSE/day14/src/com/lovecoding/day14/thread01/MyThread01.java
  8. 15 0
      JavaSE/day14/src/com/lovecoding/day14/thread01/MyThread02.java
  9. 71 0
      JavaSE/day14/src/com/lovecoding/day14/thread01/Test01.java
  10. 55 0
      JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread01.java
  11. 34 0
      JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread02.java
  12. 37 0
      JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread03.java
  13. 68 0
      JavaSE/day14/src/com/lovecoding/day14/thread03/TestTicker.java
  14. 68 0
      JavaSE/day14/src/com/lovecoding/day14/thread03/Ticket.java
  15. 45 0
      JavaSE/day14/src/com/lovecoding/day14/thread04/DiningHome.java
  16. 33 0
      JavaSE/day14/src/com/lovecoding/day14/thread04/TestDiningHome.java
  17. 21 0
      JavaSE/day15/day15.iml
  18. 102 0
      JavaSE/day15/src/com/lovecoding/day14/api01/TestMath.java
  19. 107 0
      JavaSE/day15/src/com/lovecoding/day14/api02/TestDate01.java
  20. 62 0
      JavaSE/day15/src/com/lovecoding/day14/api02/TestDate02.java
  21. 60 0
      JavaSE/day15/src/com/lovecoding/day14/ex01/PrintLetter.java
  22. 41 0
      JavaSE/day15/src/com/lovecoding/day14/ex01/PrintLetter1.java
  23. 32 0
      JavaSE/day15/src/com/lovecoding/day14/ex01/TestPrint.java
  24. 34 0
      JavaSE/day15/src/com/lovecoding/day14/ex01/TestPrint1.java
  25. 24 0
      JavaSE/day15/src/com/lovecoding/day14/ex02/Test01.java
  26. 47 0
      JavaSE/day15/src/com/lovecoding/day14/thread04/DiningHome.java
  27. 33 0
      JavaSE/day15/src/com/lovecoding/day14/thread04/TestDiningHome.java
  28. 43 0
      JavaSE/day15/src/com/lovecoding/day14/thread05/Product.java
  29. 21 0
      JavaSE/day15/src/com/lovecoding/day14/thread05/TestProduct.java
  30. 21 0
      JavaSE/day16/day16.iml
  31. 155 0
      JavaSE/day16/src/com/lovecoding/day16/Test01.java
  32. 55 0
      JavaSE/day16/src/com/lovecoding/day16/api01/TestDate.java
  33. 39 0
      JavaSE/day16/src/com/lovecoding/day16/api02/Test01.java
  34. 276 0
      JavaSE/day16/src/com/lovecoding/day16/api03/Test01Arr.java
  35. 128 0
      JavaSE/day16/src/com/lovecoding/day16/api04/Test01.java
  36. 89 0
      JavaSE/day16/src/com/lovecoding/day16/ex01/Test01.java
  37. 64 0
      JavaSE/day16/src/com/lovecoding/day16/ex02/Test01.java
  38. 32 0
      JavaSE/day16/src/com/lovecoding/day16/ex03/Class4.java
  39. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex01/ChatThread.class
  40. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex01/Test01$1.class
  41. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex01/Test01.class
  42. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex02/Racer.class
  43. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer$1.class
  44. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer$2.class
  45. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer.class
  46. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread01/MyThread01.class
  47. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread01/MyThread02.class
  48. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01$1.class
  49. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01$2.class
  50. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01.class
  51. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/MyThread.class
  52. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01$1.class
  53. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01$2.class
  54. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01.class
  55. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread02$1.class
  56. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread02.class
  57. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03$1.class
  58. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03$2.class
  59. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03.class
  60. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$1.class
  61. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$2.class
  62. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$3.class
  63. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$4.class
  64. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker.class
  65. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread03/Ticket.class
  66. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread04/DiningHome.class
  67. BIN
      JavaSE/out/production/day14/com/lovecoding/day14/thread04/TestDiningHome.class
  68. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/api01/TestMath.class
  69. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/api02/TestDate01.class
  70. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/api02/TestDate02.class
  71. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/ex01/PrintLetter.class
  72. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/ex01/PrintLetter1.class
  73. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/ex01/TestPrint.class
  74. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/ex01/TestPrint1.class
  75. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/ex02/Test01.class
  76. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/thread04/DiningHome.class
  77. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/thread04/TestDiningHome.class
  78. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/thread05/Product.class
  79. BIN
      JavaSE/out/production/day15/com/lovecoding/day14/thread05/TestProduct.class
  80. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/Test01.class
  81. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api01/TestDate.class
  82. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api02/Test01.class
  83. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api03/Person.class
  84. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api03/Student.class
  85. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api03/Test01Arr$1.class
  86. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api03/Test01Arr.class
  87. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/api04/Test01.class
  88. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/ex01/Test01.class
  89. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/ex02/Test01.class
  90. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/ex03/Class4.class
  91. BIN
      JavaSE/out/production/day16/com/lovecoding/day16/ex03/TEXT.class

+ 2 - 0
JavaSE/.idea/modules.xml

@@ -15,6 +15,8 @@
       <module fileurl="file://$PROJECT_DIR$/day12/day12.iml" filepath="$PROJECT_DIR$/day12/day12.iml" />
       <module fileurl="file://$PROJECT_DIR$/day13/day13.iml" filepath="$PROJECT_DIR$/day13/day13.iml" />
       <module fileurl="file://$PROJECT_DIR$/day14/day14.iml" filepath="$PROJECT_DIR$/day14/day14.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day15/day15.iml" filepath="$PROJECT_DIR$/day15/day15.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day16/day16.iml" filepath="$PROJECT_DIR$/day16/day16.iml" />
     </modules>
   </component>
 </project>

+ 10 - 0
JavaSE/day14/day14.iml

@@ -7,5 +7,15 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library name="JUnit4">
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13.1/junit-4.13.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
 </module>

+ 19 - 0
JavaSE/day14/src/com/lovecoding/day14/ex01/ChatThread.java

@@ -0,0 +1,19 @@
+package com.lovecoding.day14.ex01;
+
+import java.util.Scanner;
+
+public class ChatThread  extends  Thread{
+    //问是否结束(输入Y/y结束),如果输入的不是y,继续问是否结束,直到输入y才结束。
+    @Override
+    public void run() {
+        Scanner scanner = new Scanner(System.in);
+        while ( true ){
+            //输入对象
+            System.out.println("问是否结束(输入Y/y结束)");
+            String next = scanner.next();
+            if (next.equals("Y") || next.equals("y") ){
+                break;
+            }
+        }
+    }
+}

+ 37 - 0
JavaSE/day14/src/com/lovecoding/day14/ex01/Test01.java

@@ -0,0 +1,37 @@
+package com.lovecoding.day14.ex01;
+
+public class Test01 {
+
+    public static void main(String[] args) {
+
+        ChatThread chatThread = new ChatThread();
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                //打印[1,10],每隔10毫秒打印一个数字,现在当主线程打印完5之后,就让自定义线程类加塞,直到自定义线程类结束,主线程再继续。
+                for (int i = 0; i < 10; i++) {
+                    try {
+                        Thread.sleep(10);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    if ( i == 5 ){
+                        // 插入
+                        chatThread.start();
+                        try {
+                            chatThread.join();
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    System.out.println(i+"--"+Thread.currentThread().getName());
+                }
+            }
+        }).start();
+
+
+
+    }
+
+}

+ 76 - 0
JavaSE/day14/src/com/lovecoding/day14/ex02/Racer.java

@@ -0,0 +1,76 @@
+package com.lovecoding.day14.ex02;
+
+public class Racer {
+    /*
+    案例:编写龟兔赛跑多线程程序,设赛跑长度为30米
+    兔子的速度是10米每秒,兔子每跑完10米休眠的时间10秒
+    乌龟的速度是1米每秒,乌龟每跑完10米的休眠时间是1秒
+    要求:要等兔子和乌龟的线程结束,主线程(裁判)才能公布最后的结果。
+
+    龟兔 两个线程
+    常量 30米
+    变量 vTime    每米的时间
+    休眠 restTime 休息的时间
+
+     */
+
+    public static int MAX_M = 30;
+
+    private int vTime;
+    private int restTime;
+    private long time;
+
+    //跑
+    public void run1(){
+        //开始时间
+        long start = System.currentTimeMillis();
+
+        for (int i = 0; i < MAX_M; i++) {
+            try {
+                Thread.sleep(vTime);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            if (i == 10 || i == 20){
+                try {
+                    Thread.sleep(restTime);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        long end = System.currentTimeMillis();
+        //总时间
+        setTime(end - start);
+    }
+
+    public Racer(int vTime, int restTime) {
+        this.vTime = vTime;
+        this.restTime = restTime;
+    }
+
+    public int getvTime() {
+        return vTime;
+    }
+
+    public void setvTime(int vTime) {
+        this.vTime = vTime;
+    }
+
+    public int getRestTime() {
+        return restTime;
+    }
+
+    public void setRestTime(int restTime) {
+        this.restTime = restTime;
+    }
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+}

+ 34 - 0
JavaSE/day14/src/com/lovecoding/day14/ex02/TestRacer.java

@@ -0,0 +1,34 @@
+package com.lovecoding.day14.ex02;
+
+public class TestRacer {
+    public static void main(String[] args) throws InterruptedException {
+
+        Racer racer1 = new Racer(100,10000);
+        Racer racer2 = new Racer(1000,1000);
+
+        Thread t1 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                racer1.run1();
+            }
+        });
+        Thread t2 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                racer2.run1();
+            }
+        });
+
+        t1.start();
+        t2.start();
+
+        //要等兔子和乌龟的线程结束,主线程(裁判)才能公布最后的结果。
+        t1.join();
+        t2.join();
+
+        System.out.println("兔子"+racer1.getTime());
+        System.out.println("乌龟"+racer2.getTime());
+
+
+    }
+}

+ 15 - 0
JavaSE/day14/src/com/lovecoding/day14/thread01/MyThread01.java

@@ -0,0 +1,15 @@
+package com.lovecoding.day14.thread01;
+
+public class MyThread01 extends Thread {
+    @Override
+    public void run() {
+        for (int i = 0; i < 100; i++) {
+            System.out.print("爱");
+            System.out.print("扣");
+            System.out.print("钉");
+            System.out.print("学");
+            System.out.print("习");
+            System.out.println();
+        }
+    }
+}

+ 15 - 0
JavaSE/day14/src/com/lovecoding/day14/thread01/MyThread02.java

@@ -0,0 +1,15 @@
+package com.lovecoding.day14.thread01;
+
+public class MyThread02 implements Runnable {
+    @Override
+    public void run() {
+        for (int i = 0; i < 100; i++) {
+            try {
+                Thread.sleep(10);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            System.out.println("hello");
+        }
+    }
+}

+ 71 - 0
JavaSE/day14/src/com/lovecoding/day14/thread01/Test01.java

@@ -0,0 +1,71 @@
+package com.lovecoding.day14.thread01;
+
+import org.junit.Test;
+
+public class Test01 {
+
+    public static void main(String[] args) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(10);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    System.out.println("java");
+                }
+            }
+        }).start();
+
+        Thread t1 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(10);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    System.out.println("c++");
+                }
+            }
+        });
+        t1.start();
+    }
+
+    //实现接口
+    @Test
+    public void fun02() throws InterruptedException {
+        //创建 mythread
+        MyThread02 myThread02 = new MyThread02();
+        //new Thread
+        new Thread(myThread02).start();
+
+        //主线程
+        for (int i = 0; i < 100; i++) {
+            Thread.sleep(10);
+            System.out.println("world");
+        }
+    }
+
+    //继承父类
+    @Test
+    public void fun01(){
+        //创建 mythread
+        MyThread01 myThread01 = new MyThread01();
+        //调用strat 方法 自动执行run
+        myThread01.start();
+
+        //主线程
+        for (int i = 0; i < 100; i++) {
+            System.out.print("黑");
+            System.out.print("龙");
+            System.out.print("江");
+            System.out.print("省");
+            System.out.println();
+        }
+    }
+
+}

+ 55 - 0
JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread01.java

@@ -0,0 +1,55 @@
+package com.lovecoding.day14.thread02;
+
+public class TestThread01 {
+
+    public static void main(String[] args) {
+        //构造
+        // Thread(String name ) 线程名称
+        // Thread( Runable able, String name ) 子类 线程名称
+
+        MyThread myThread1 = new MyThread("A");
+        myThread1.start();
+
+        System.out.println(myThread1.getName());
+
+        MyThread myThread2 = new MyThread();
+        myThread2.start();
+        System.out.println(myThread2.getName());
+
+
+        Thread t2= new Thread(new Runnable() {
+            @Override
+            public void run() {
+
+            }
+        },"B");
+
+        System.out.println(t2.getName());
+
+        Thread t3= new Thread(new Runnable() {
+            @Override
+            public void run() {
+
+            }
+        });
+
+        System.out.println(t3.getName());
+
+    }
+
+}
+
+class MyThread extends Thread{
+
+    public MyThread() {
+    }
+
+    public MyThread(String name) {
+        super(name);
+    }
+
+    @Override
+    public void run() {
+        //System.out.println("A");
+    }
+}

+ 34 - 0
JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread02.java

@@ -0,0 +1,34 @@
+package com.lovecoding.day14.thread02;
+
+public class TestThread02 {
+
+    public static void main(String[] args) throws InterruptedException {
+        //主线程中
+        Thread t1 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(1);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    System.out.println(" java ");
+                }
+            }
+        });
+
+        t1.start();
+
+        //join方法 插队
+        //t1.join();
+        //毫秒
+        // t1.join(10);
+        // 毫秒 纳秒
+        t1.join(10,1);
+
+        for (int i = 0; i < 100; i++) {
+            System.out.println("c++");
+        }
+    }
+}

+ 37 - 0
JavaSE/day14/src/com/lovecoding/day14/thread02/TestThread03.java

@@ -0,0 +1,37 @@
+package com.lovecoding.day14.thread02;
+
+public class TestThread03 {
+
+    public static void main(String[] args) throws InterruptedException {
+        //主线程中
+        Thread t1 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    System.out.println(" java ");
+                }
+            }
+        });
+
+        Thread t2 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    System.out.println(" c++ ");
+                }
+            }
+        });
+        //设置优先级
+        t1.setPriority(10);
+        t2.setPriority(1);
+
+        t1.start();
+        t2.start();
+
+        //main 获取名称
+        //获取当前线程的名称
+        System.out.println(Thread.currentThread().getName()+"主线程");
+
+
+    }
+}

+ 68 - 0
JavaSE/day14/src/com/lovecoding/day14/thread03/TestTicker.java

@@ -0,0 +1,68 @@
+package com.lovecoding.day14.thread03;
+
+public class TestTicker {
+    public static void main(String[] args) {
+
+        Ticket ticket = new Ticket();
+
+        //创建四个窗口
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(1);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    ticket.sale();
+                }
+            }
+        }).start();
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(1);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    ticket.sale();
+                }
+            }
+        }).start();
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(1);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    ticket.sale();
+                }
+            }
+        }).start();
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        Thread.sleep(1);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    ticket.sale();
+                }
+            }
+        }).start();
+
+
+
+    }
+}

+ 68 - 0
JavaSE/day14/src/com/lovecoding/day14/thread03/Ticket.java

@@ -0,0 +1,68 @@
+package com.lovecoding.day14.thread03;
+
+public class Ticket {
+
+    public static int count = 100;
+
+    //锁对象
+    public Object obj = new Object();
+
+    //同步方法 默认锁对象是this
+    //买票的方法
+    public static synchronized void sale(){
+        if (count >= 0){
+            System.out.println(Thread.currentThread().getName()+"窗口 ,正在买票"+(count));
+            count--;
+        }else{
+            System.out.println("没有票了");
+        }
+    }
+
+    //同步方法 默认锁对象是this
+    //买票的方法
+//    public synchronized void sale(){
+//        if (count >= 0){
+//            System.out.println(Thread.currentThread().getName()+"窗口 ,正在买票"+(count));
+//            count--;
+//        }else{
+//            System.out.println("没有票了");
+//        }
+//    }
+
+    //买票的方法
+    public void sale1(){
+        //同步代码块
+        synchronized (obj){
+            if (count >= 0){
+                try {
+                    Thread.sleep(1);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                System.out.println(Thread.currentThread().getName()+"窗口 ,正在买票"+(count));
+                count--;
+            }else{
+                System.out.println("没有票了");
+            }
+        }
+    }
+
+    //买票的方法
+    public void sale2(){
+
+        if (count >= 0){
+            try {
+                //线程1  线程2 线程3 线程4
+                Thread.sleep(1);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            System.out.println(Thread.currentThread().getName()+"窗口 ,正在买票"+(count));
+            count--;
+        }else{
+            System.out.println("没有票了");
+        }
+
+    }
+
+}

+ 45 - 0
JavaSE/day14/src/com/lovecoding/day14/thread04/DiningHome.java

@@ -0,0 +1,45 @@
+package com.lovecoding.day14.thread04;
+
+public class DiningHome {
+
+    //有家餐馆的取餐口比较小,只能放10份快餐,厨师做完快餐放在取餐口的工作台上,
+    //服务员从这个工作台取出快餐给顾客。现在有1个厨师和1个服务员。
+    public static int count = 0;
+
+    //厨师 生成快餐
+    public synchronized  void put(){
+        //只能放10份快餐
+        if (count >= 10){
+            try {
+                //等待
+                wait();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        System.out.println(Thread.currentThread().getName()+"-生产:"+count+"份");
+        //生产
+        count++;
+        //通知
+        notify();
+    }
+
+    //服务员取餐
+    public synchronized  void take(){
+        //只能取到0
+        if (count <= 0){
+            try {
+                //等待
+                wait();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        System.out.println(Thread.currentThread().getName()+"-消费:"+count+"份");
+        //消费
+        count--;
+        //通知
+        notify();
+    }
+
+}

+ 33 - 0
JavaSE/day14/src/com/lovecoding/day14/thread04/TestDiningHome.java

@@ -0,0 +1,33 @@
+package com.lovecoding.day14.thread04;
+
+public class TestDiningHome {
+
+    public static void main(String[] args) {
+
+        //餐厅
+        DiningHome diningHome = new DiningHome();
+
+        new Thread( ()->{
+            while (true){
+                diningHome.put();
+            }
+        },"厨师").start();
+        new Thread( ()->{
+            while (true){
+                diningHome.put();
+            }
+        },"厨师").start();
+
+        new Thread( ()->{
+            while (true){
+                diningHome.take();
+            }
+        },"服务员").start();
+        new Thread( ()->{
+            while (true){
+                diningHome.take();
+            }
+        },"服务员").start();
+
+    }
+}

+ 21 - 0
JavaSE/day15/day15.iml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library name="JUnit4">
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13.1/junit-4.13.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+  </component>
+</module>

+ 102 - 0
JavaSE/day15/src/com/lovecoding/day14/api01/TestMath.java

@@ -0,0 +1,102 @@
+package com.lovecoding.day14.api01;
+
+import org.junit.Test;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
+import java.util.Random;
+
+public class TestMath {
+    //Random
+    @Test
+    public void test04(){
+        Random random = new Random();
+
+        System.out.println(random.nextInt());
+        // 0 - 100 不包含100
+        System.out.println(random.nextInt(100));
+
+        double v = random.nextDouble();
+        System.out.println(v);
+    }
+    //BigDecimal
+    @Test
+    public void test03(){
+        BigDecimal b1 = new BigDecimal("1.000000000000000000000000000000000000000001");
+        BigDecimal b2 = new BigDecimal("1.000000000000000000000000000000000000000002");
+
+        System.out.println(b1.add(b2));
+        System.out.println(b1.subtract(b2));
+        System.out.println(b1.multiply(b2));
+        System.out.println(b1.remainder(b2));
+
+        //System.out.println(b1.divide(b2));
+        System.out.println(b1.divide(b2,2));
+        System.out.println(b1.divide(b2, RoundingMode.CEILING));
+    }
+
+    //int integer
+    @Test
+    public void test02(){
+        //为什么编译错误?  12345678910 超范围
+        int i1 = 1234567891;
+        long l1 = 12345678910L; //必须加L: 不加 默认int
+        // long l2 = 12345678910123123123123123L; //有long 存不下的值
+
+        //做百万级的计算器 ? 怎么实现
+        BigInteger big1 = new BigInteger("12345678910123123123123123");
+        BigInteger big2 = new BigInteger("12345678910000000000000000");
+        System.out.println(big1);
+
+        //方法 链式调用
+        System.out.println(big1.add(big2));
+        System.out.println(big1.subtract(big2));
+        System.out.println(big1.multiply(big2));
+        System.out.println(big1.divide(big2));
+        System.out.println(big1.remainder(big2));
+
+    }
+
+    /*
+     * public static double pow(double a,double b):返回a的b幂次方法
+     * public static double sqrt(double a):返回a的平方根
+     * public static double random():返回[0,1)的随机值
+     * static long round(double a) 四舍五入。
+     * public static final double PI:返回圆周率
+     * public static double max(double x, double y):返回x,y中的最大值
+     * public static double min(double x, double y):返回x,y中的最小值
+     */
+    @Test
+    public void test01(){
+        //返回a的b幂次方法
+        System.out.println(Math.pow(2, 2));
+        System.out.println(Math.pow(2, 3));
+
+        //返回a的平方根
+        System.out.println(Math.sqrt(4));
+
+        //返回[0,1)的随机值
+        System.out.println(Math.random());
+
+        //四舍五入
+        long round = Math.round(3.56);
+        System.out.println(round);
+
+        //返回圆周率
+        System.out.println(Math.PI);
+
+        //返回x,y中的最大值
+        System.out.println(Math.max(11,22));
+
+        //绝对值
+        System.out.println(Math.abs(-10));
+
+        //问?
+        System.out.println(Math.round(-3.46));
+
+        //Math.random() 返回  50 100 )之间的随机数?
+        int v = (int) (Math.random() * 50) + 50;//0 -0.999999  0 - 49
+        System.out.println(v);
+    }
+}

+ 107 - 0
JavaSE/day15/src/com/lovecoding/day14/api02/TestDate01.java

@@ -0,0 +1,107 @@
+package com.lovecoding.day14.api02;
+
+import org.junit.Test;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
+
+public class TestDate01 {
+
+    //Locale
+    @Test
+    public void test05() throws Exception {
+        Calendar c1 = Calendar.getInstance();
+
+        System.out.println(c1.get(Calendar.YEAR));
+        System.out.println(c1.get(Calendar.MONDAY));
+        System.out.println(c1.get(Calendar.DAY_OF_MONTH));
+        System.out.println(c1.get(Calendar.DAY_OF_WEEK));
+
+        //add
+        System.out.println(c1.getTime());
+        c1.add(Calendar.YEAR,-1);
+        System.out.println(c1.getTime());
+
+        System.out.println(c1.getTime());
+        c1.add(Calendar.MONTH,1);
+        System.out.println(c1.getTime());
+
+        //set
+        c1.set(Calendar.YEAR,1980);
+        System.out.println(c1.getTime());
+
+
+
+    }
+    //Locale
+    @Test
+    public void test04() throws Exception {
+
+        Locale[] availableLocales = Locale.getAvailableLocales();
+
+        for (Locale availableLocale : availableLocales) {
+            System.out.println(availableLocale);
+        }
+
+        System.out.println("----------------");
+        System.out.println(Locale.CHINA);
+
+    }
+
+    //`TimeZone`
+    @Test
+    public void test03() throws Exception {
+        String[] availableIDs = TimeZone.getAvailableIDs();
+
+        for (String availableID : availableIDs) {
+            System.out.println(availableID);
+        }
+
+        //Asia/Shanghai
+        TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
+        System.out.println(timeZone);
+    }
+
+    //SimpleDateFormat
+    @Test
+    public void test02() throws Exception {
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+
+        //时间转字符串
+        Date date1 = new Date();
+        //转换
+        String strDate1 = sdf1.format(date1);
+        System.out.println(strDate1);
+
+        //字符串转时间
+        String strDate2 = "2023/02/12 15:33:33";
+        Date parse = sdf2.parse(strDate2);
+        System.out.println(parse);
+
+        //时间
+        System.out.println(sdf2.format(parse));
+
+
+    }
+
+    @Test
+    public void test01() throws InterruptedException {
+        //Date
+        Date date1 = new Date();
+        System.out.println(date1);
+
+        Thread.sleep(10000);
+        //时间戳
+        long time = new Date().getTime();
+        System.out.println(time);
+
+        //时间戳 转 Date
+        Date date2 = new Date(time);
+        System.out.println(date2);
+
+    }
+}

+ 62 - 0
JavaSE/day15/src/com/lovecoding/day14/api02/TestDate02.java

@@ -0,0 +1,62 @@
+package com.lovecoding.day14.api02;
+
+import org.junit.Test;
+
+import java.time.*;
+
+public class TestDate02 {
+
+    //zoneId 和 ZonedDateTime
+    @Test
+    public void test04() throws InterruptedException {
+        for (String availableZoneId : ZoneId.getAvailableZoneIds()) {
+            System.out.println(availableZoneId);
+        }
+
+        System.out.println("----------");
+
+        ZonedDateTime now = ZonedDateTime.now();
+        System.out.println(now);
+
+        ZonedDateTime now1 = ZonedDateTime.now(ZoneId.of("US/Pacific"));
+        System.out.println(now1);
+    }
+
+    //LocalTime
+    @Test
+    public void test03() throws InterruptedException {
+        LocalTime localTime = LocalTime.now();
+        System.out.println(localTime);
+
+        LocalTime localTime1 = localTime.minusSeconds(1200);
+        System.out.println(localTime1);
+    }
+
+    @Test
+    public void test02() throws InterruptedException {
+        LocalDateTime localDateTime = LocalDateTime.of(2000,2,20,12,12,12);
+        System.out.println(localDateTime);
+
+        LocalDateTime localDateTime1 = localDateTime.plusDays(200);
+        System.out.println(localDateTime1);
+    }
+
+    @Test
+    public void test01() throws InterruptedException {
+        //LocalDate
+        LocalDate localDate = LocalDate.now();
+        System.out.println(localDate);
+
+        //plus
+        LocalDate localDate1 = localDate.plusDays(100);
+        System.out.println(localDate1);
+
+        //minus
+        LocalDate localDate2 = localDate.minusYears(10);
+        System.out.println(localDate2);
+
+        //with
+        LocalDate localDate3 = localDate.withMonth(3);
+        System.out.println(localDate3);
+    }
+}

+ 60 - 0
JavaSE/day15/src/com/lovecoding/day14/ex01/PrintLetter.java

@@ -0,0 +1,60 @@
+package com.lovecoding.day14.ex01;
+
+//多个线程通信 三个以上
+public class PrintLetter {
+
+    private static char letter = 'a';
+
+    private static int flag = 0;
+
+    //输出小写
+    public synchronized void printLower(){
+        //判断
+        if (flag != 0){
+            try {
+                wait();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        //输出
+        for (int i = 1; i <=3 ; i++) {
+            System.out.println( Thread.currentThread().getName()+":" + (char)(++letter));
+            if (letter> 'z'){
+                letter = 'a';
+            }
+        }
+        //改变状态
+        flag=1;
+        //通知
+        notify();
+
+    }
+
+    //输出大写  -32
+    public synchronized void printUpper(){
+        //判断
+        if (flag != 1){
+            try {
+                wait();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        //输出、
+        for (int i = 1; i <= 3; i++) {
+            System.out.println( Thread.currentThread().getName()+":" + (char) (++letter-32));
+            if (letter> 'z'){
+                letter = 'a';
+            }
+        }
+
+        //改变状态
+        flag=0;
+        //通知
+        notify();
+
+    }
+
+
+}

+ 41 - 0
JavaSE/day15/src/com/lovecoding/day14/ex01/PrintLetter1.java

@@ -0,0 +1,41 @@
+package com.lovecoding.day14.ex01;
+
+//两个线程的通信
+public class PrintLetter1 {
+
+    private static char letter = 'a';
+
+
+    //输出小写
+    public synchronized void printLower() throws InterruptedException {
+        //输出
+        for (int i = 1; i <=3 ; i++) {
+            System.out.println( Thread.currentThread().getName()+":" + (char)(letter++));
+            if (letter> 'z'){
+                letter = 'a';
+            }
+        }
+        //通知
+        notify();
+        //等待
+        wait();
+    }
+
+    //输出大写  -32
+    public synchronized void printUpper() throws InterruptedException {
+
+        //输出、
+        for (int i = 1; i <= 3; i++) {
+            System.out.println( Thread.currentThread().getName()+":" + (char) (letter++ -32));
+            if (letter> 'z'){
+                letter = 'a';
+            }
+        }
+        //通知
+        notify();
+        //等待
+        wait();
+    }
+
+
+}

+ 32 - 0
JavaSE/day15/src/com/lovecoding/day14/ex01/TestPrint.java

@@ -0,0 +1,32 @@
+package com.lovecoding.day14.ex01;
+
+public class TestPrint {
+    public static void main(String[] args) {
+        PrintLetter printLetter = new PrintLetter();
+
+        new Thread( ()->{
+            while (true){
+                try {
+                    Thread.sleep(10);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                printLetter.printLower();
+            }
+        },"A").start();
+
+
+        new Thread( ()->{
+            while (true){
+                try {
+                    Thread.sleep(10);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                printLetter.printUpper();
+            }
+
+        },"B").start();
+
+    }
+}

+ 34 - 0
JavaSE/day15/src/com/lovecoding/day14/ex01/TestPrint1.java

@@ -0,0 +1,34 @@
+package com.lovecoding.day14.ex01;
+
+public class TestPrint1 {
+    public static void main(String[] args) {
+        PrintLetter1 printLetter = new PrintLetter1();
+
+        new Thread( ()->{
+            while (true){
+                try {
+                    Thread.sleep(10);
+                    printLetter.printLower();
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+
+            }
+        },"A").start();
+
+
+        new Thread( ()->{
+            while (true){
+                try {
+                    Thread.sleep(10);
+                    printLetter.printUpper();
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+
+            }
+
+        },"B").start();
+
+    }
+}

+ 24 - 0
JavaSE/day15/src/com/lovecoding/day14/ex02/Test01.java

@@ -0,0 +1,24 @@
+package com.lovecoding.day14.ex02;
+
+import org.junit.Test;
+
+public class Test01 {
+
+
+    @Test
+    public void test01(){
+        //请使用`Math` 相关的API,计算在 `-10.8`  到`5.9`  之间,绝对值大于`6`  或者小于`2.1` 的整数有多少个?
+        int count = 0;
+        System.out.println(Math.ceil(-10.8));
+
+
+        for (double i = Math.ceil(-10.8); i < 5.9 ; i++) {
+            if ( Math.abs(i) > 6 || i < 2.1 ){
+                System.out.println(i);
+                count++;
+            }
+        }
+        System.out.println(count);
+
+    }
+}

+ 47 - 0
JavaSE/day15/src/com/lovecoding/day14/thread04/DiningHome.java

@@ -0,0 +1,47 @@
+package com.lovecoding.day14.thread04;
+
+public class DiningHome {
+
+    //有家餐馆的取餐口比较小,只能放10份快餐,厨师做完快餐放在取餐口的工作台上,
+    //服务员从这个工作台取出快餐给顾客。现在有1个厨师和1个服务员。
+    public static int count = 0;
+
+    //厨师 生成快餐
+    public synchronized  void put(){
+        //只能放10份快餐
+        while (count >= 10){
+            try {
+                //等待
+                wait(); //厨师1 等待 通知厨师2 等待  通知  厨师1 继续运行 判断失效
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        //生产
+        count++;
+        System.out.println(Thread.currentThread().getName()+"-生产:"+count+"份");
+
+        //通知 所有
+        notifyAll();
+    }
+
+    //服务员取餐
+    public synchronized  void take(){
+        //只能取到0
+        while (count <= 0){ //校验1次 重复校验 改变 if 为 while
+            try {
+                //等待
+                wait();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        //消费
+        count--;
+        System.out.println(Thread.currentThread().getName()+"-消费:"+count+"份");
+
+        //通知 所有
+        notifyAll();
+    }
+
+}

+ 33 - 0
JavaSE/day15/src/com/lovecoding/day14/thread04/TestDiningHome.java

@@ -0,0 +1,33 @@
+package com.lovecoding.day14.thread04;
+
+public class TestDiningHome {
+
+    public static void main(String[] args) {
+
+        //餐厅
+        DiningHome diningHome = new DiningHome();
+
+        new Thread( ()->{
+            while (true){
+                diningHome.put();
+            }
+        },"厨师").start();
+        new Thread( ()->{
+            while (true){
+                diningHome.put();
+            }
+        },"厨师").start();
+
+        new Thread( ()->{
+            while (true){
+                diningHome.take();
+            }
+        },"服务员").start();
+        new Thread( ()->{
+            while (true){
+                diningHome.take();
+            }
+        },"服务员").start();
+
+    }
+}

+ 43 - 0
JavaSE/day15/src/com/lovecoding/day14/thread05/Product.java

@@ -0,0 +1,43 @@
+package com.lovecoding.day14.thread05;
+
+public class Product {
+
+    //锁1
+    private Object obj1 = new Object();
+
+    //锁2
+    private Object obj2 = new Object();
+
+    //发货
+    public void put(){
+        //死锁
+        synchronized (obj1){
+            System.out.println("先打钱");
+            try {
+                Thread.sleep(1);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            synchronized (obj2){
+                System.out.println("发货");
+            }
+        }
+    }
+
+    //给钱
+    public void money(){
+        synchronized (obj2){
+            System.out.println("先发货");
+            try {
+                Thread.sleep(1);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            synchronized (obj1){
+                System.out.println("打钱");
+            }
+        }
+    }
+
+
+}

+ 21 - 0
JavaSE/day15/src/com/lovecoding/day14/thread05/TestProduct.java

@@ -0,0 +1,21 @@
+package com.lovecoding.day14.thread05;
+
+public class TestProduct {
+    public static void main(String[] args) {
+
+        Product product = new Product();
+
+        new Thread( ()->{
+            while (true){
+                product.put();
+            }
+        } ).start();
+
+        new Thread( ()->{
+            while (true){
+                product.money();
+            }
+        } ).start();
+
+    }
+}

+ 21 - 0
JavaSE/day16/day16.iml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library name="JUnit4">
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13.1/junit-4.13.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+  </component>
+</module>

+ 155 - 0
JavaSE/day16/src/com/lovecoding/day16/Test01.java

@@ -0,0 +1,155 @@
+package com.lovecoding.day16;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class Test01 {
+
+    public static void main(String[] args) {
+        String str=findMaxSubString("abcwerthelloyuiodef","cvhellobnm");
+        System.out.println(str);
+    }
+
+    //提示:将短的那个串进行长度依次递减的子串与较长的串比较。
+    public static String findMaxSubString(String str1,String str2){
+        String result="";
+
+        String mixStr = str1.length()<str2.length()?str1:str2;
+        String maxStr = str1.length()>str2.length()?str1:str2;
+
+        String rr = "";
+
+        //外循环控制从左到右的下标,内循环控制从右到左的下标
+        for (int i = 0; i < mixStr.length() ; i++) {
+            for (int j = 0; j < mixStr.length()-i; j++) {
+
+
+                String substring = mixStr.substring(i, mixStr.length() - j);
+//                System.out.println(i+"---"+(mixStr.length()-j));
+//                System.out.println(substring);
+                if (maxStr.contains(substring)){
+                    if (substring.length()>rr.length()){
+                        rr = substring;
+                    }
+                }
+            }
+        }
+        return rr;
+    }
+
+    @Test
+    public void test033(){
+        String str = "1.hello2.world3.java4.string";
+        String s = str.replaceAll("(^\\d.)|(\\d.$)", "");
+
+        System.out.println(s);
+
+        String[] split = s.split("\\d.");
+        System.out.println(Arrays.toString(split));
+    }
+
+    @Test
+    public void test022(){
+        String str = "aaaaaaaaaaaabbbbbbyolhljlhlxxmnbwyteuhfhjloiqqbhrg";
+
+        int[] a1 = new int[26];
+
+        char[] chars = str.toCharArray();
+
+        for (int i = 0; i < chars.length; i++) {
+            a1[chars[i]-97]++;
+        }
+
+        int max = a1[0];
+
+        for (int i = 0; i < a1.length; i++) {
+            if (a1[i]>max){
+                max=a1[i];
+            }
+        }
+
+        for (int i = 0; i < a1.length; i++) {
+            if ( a1[i] ==max ){
+                System.out.println( (char) (i+97));
+                System.out.println(a1[i]);
+            }
+        }
+
+
+    }
+    @Test
+    public void test011(){
+        String[] arr = {"helloworld","java","xiaochai","lovecoding","lin","yan","I love you"};
+
+        System.out.println("原字符串:");
+        System.out.println( Arrays.toString(arr));
+
+        int count = arr.length;
+        for (int i = 0; i < count; i++) {
+            if (arr[i].length()>5){
+                System.arraycopy(arr,i+1,arr,i,count-i-1);
+                count--;
+                i--;
+            }
+        }
+        String[] strings = Arrays.copyOf(arr, count);
+        System.out.println(Arrays.toString(strings));
+
+
+    }
+
+    @Test
+    public void m1(){
+        String qq= "11111";
+        boolean matches = qq.matches("[1-9][0-9]{4,11}+");
+        System.out.println(matches);
+    }
+
+    @Test
+    public void call(){
+        String str ="abcdefgho";
+        String s = reverse1(str, 2, 6);
+        System.out.println(s);
+    }
+
+
+    public String reverse1(String str,int start,int end){
+
+        char[] array = str.toCharArray();
+
+        for(int i = start;i < end;i++){
+            char temp =array[i];
+            array[i]=array[end-i-1];
+            array[end-i-1]=temp;
+        }
+        String s = new String(array);
+        return s;
+    }
+    @Test
+    public void test02(){
+        String str ="    he   llo   ";
+
+        String s = str.replaceAll("^\\s*", "");
+        String s1 = s.replaceAll("\\s*$", "");
+//        while (str.startsWith(" ")){
+//            str = str.replaceFirst(" ","");
+//        }
+        System.out.println(s1);
+
+
+    }
+
+    @Test
+    public void test01(){
+        String str = "abcd12345cd125se123456789ss";
+
+        String s = str.replaceAll("(^[a-zA-z]+)|([a-zA-z]+$)", "");
+
+        System.out.println(s);
+
+        String[] split = s.split("[a-zA-z]+");
+        System.out.println(Arrays.toString(split));
+
+    }
+}

+ 55 - 0
JavaSE/day16/src/com/lovecoding/day16/api01/TestDate.java

@@ -0,0 +1,55 @@
+package com.lovecoding.day16.api01;
+
+import org.junit.Test;
+
+import java.time.Duration;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
+
+public class TestDate {
+
+
+    @Test
+    public void test03(){
+
+        LocalDateTime localDateTime = LocalDateTime.now();
+
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
+        String format = dateTimeFormatter.format(localDateTime);
+        System.out.println(format);
+
+    }
+
+    @Test
+    public void test02(){
+        LocalDateTime localDate1 = LocalDateTime.now();
+        LocalDateTime localDate2 = LocalDateTime.of(2008,8,8,8,8,8);
+
+        Duration between = Duration.between(localDate2, localDate1);
+        long seconds = between.getSeconds();
+        System.out.println(seconds);
+
+
+    }
+    @Test
+    public void test01(){
+        //Period和Duration
+        LocalDate localDate1 = LocalDate.now();
+        LocalDate localDate2 = LocalDate.of(2008,8,8);
+
+        //日期间隔
+        Period between = Period.between(localDate2, localDate1);
+
+        System.out.println(between.getDays());//相差天数
+        System.out.println(between.getYears());//相差年
+        System.out.println(between.getMonths());//相差月
+
+        long l = between.toTotalMonths();
+        System.out.println(l);
+
+    }
+
+
+}

+ 39 - 0
JavaSE/day16/src/com/lovecoding/day16/api02/Test01.java

@@ -0,0 +1,39 @@
+package com.lovecoding.day16.api02;
+
+import org.junit.Test;
+
+public class Test01 {
+
+    @Test
+    public void test02(){
+        //获取系统运行对象
+        Runtime runtime = Runtime.getRuntime();
+
+        System.out.println(runtime);
+
+        long l = runtime.totalMemory();
+        System.out.println(l);
+
+        long l1 = runtime.freeMemory();
+        System.out.println(l1);
+
+
+    }
+
+    @Test
+    public void test01(){
+        //获取毫秒
+        long l = System.currentTimeMillis();
+        System.out.println(l);
+
+        //退出
+        //System.exit(0);
+
+        System.gc();//垃圾回收  执行一次垃圾回收
+
+        //获取相关系统属性
+        String property = System.getProperty("java.version");
+        System.out.println(property);
+    }
+
+}

+ 276 - 0
JavaSE/day16/src/com/lovecoding/day16/api03/Test01Arr.java

@@ -0,0 +1,276 @@
+package com.lovecoding.day16.api03;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Test01Arr {
+
+    //数组扩容
+    @Test
+    public void test11(){
+        int[] arr1 = new int[10];
+        arr1 = Arrays.copyOf(arr1, (int) (arr1.length * 1.5));
+        System.out.println(arr1.length);
+    }
+
+    @Test
+    public void test12(){
+        int[] arr1 = new int[10];
+        //扩容1.5倍
+        // 0000 1010  /2  5
+        // 10 +_10 / 2
+        int i = arr1.length + (arr1.length >> 1); // >> 右移 和 + 优先级相同
+        //int i1 = arr1.length + arr1.length / 2 ;
+
+        arr1 = Arrays.copyOf(arr1,i );
+        System.out.println(arr1.length);
+    }
+
+    @Test
+    public void test13(){
+        int[] arr1 = new int[10];
+        //扩容2倍
+        int i =  (arr1.length << 1); // >> 右移 和 + 优先级相同
+        arr1 = Arrays.copyOf(arr1,i );
+        System.out.println(arr1.length);
+    }
+
+    //System.arraycopy(original, 0, copy, 0,
+    //                         Math.min(original.length, newLength));
+
+    /*
+        static void arraycopy​(Object src, int srcPos, Object dest, int destPos, int length)
+        将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。
+        参数
+        src - 源数组。
+        srcPos - 源数组中的起始位置。
+        dest - 目标数组。
+        destPos - 目标数据中的起始位置。
+        length - 要复制的数组元素的数量。
+     */
+    // 1. 数组的移动  1,2,3,4,5    1,1,2,3,4   1,2,2,3,4
+    // 2. 数组的移动  1,2,3,4,5    2,3,4,5,5   1,2,3,4,4
+    @Test
+    public void test10(){
+        int[] arr1 = {1,2,3,4,5};
+        int[] arr2 = new int[5];
+
+        //1,2,3,4,5  0,1,2,3,4
+        //System.arraycopy(arr1,0,arr2,1,4);
+
+        //1,2,3,4,5  1,0,2,3,4
+        //System.arraycopy(arr1,1,arr2,2,3);
+        //System.arraycopy(arr1,0,arr2,0,1);
+
+        //1,2,3,4,5  2,3,4,5,0
+        //System.arraycopy(arr1,1,arr2,0,4);
+
+        //1,2,3,4,5  1,2,3,4,4
+        System.arraycopy(arr1,0,arr2,0,4);
+        System.arraycopy(arr1,3,arr2,4,1);
+        System.out.println(Arrays.toString(arr2));
+
+    }
+
+
+
+    @Test
+    public void test09(){
+        int[] arr1 = {1,2,3,4,5};
+        //删除数组[0]位置的元素 1,2,3,4,5 都向前移动  【2,3,4,5】
+        System.arraycopy(arr1,1,arr1,0,4);
+
+        System.out.println(Arrays.toString(arr1));
+
+        String[] strings = {"hello","java","world","lovecoding","xerga"};
+        int total = strings.length;
+
+        //删除[0]位置元素
+//        int index = 0;
+//        System.arraycopy(strings, index+1,strings, index,total-index-1);
+//        strings[--total] = null;
+//        System.out.println(Arrays.toString(strings));
+
+        //删除[2]位置元素
+        int index = 2;
+        System.arraycopy(strings, index+1,strings, index, total-index-1);;
+        strings[--total] = null;
+        System.out.println(Arrays.toString(strings));
+
+    }
+    //数组[index]位置插入新元素 整体向后移动
+    @Test
+    public void test08(){
+
+        String[] strings = {"hello","java","world",null,null};
+        int total = 3;
+        //在[0]位置插入"haha"
+        int index = 0;
+        System.arraycopy(strings, index,strings, index+1,total-index);
+        total++;
+        strings[index] = "haha";
+        System.out.println(Arrays.toString(strings));
+
+    }
+    @Test
+    public void test07(){
+        int[] arr1 = {1,2,3,4,5};
+
+        //修改数组为 0 0 1 2 3
+        System.arraycopy(arr1,0,arr1,2,3);
+        arr1[0] = 0;
+        arr1[1] = 0;
+
+        System.out.println(Arrays.toString(arr1));
+    }
+
+    @Test
+    public void test06(){
+        int[] arr1 = {1,2,3,4,5};
+        int[] arr2 = new int[10];
+
+        System.arraycopy(arr1,0,arr2,2,arr1.length);
+
+        System.out.println(Arrays.toString(arr2));
+
+    }
+
+
+    //* 数组元素的二分查找
+    //  * static int binarySearch(int[] a, int key)
+    //  * static int binarySearch(Object[] a, Object key) :要求数组有序,在数组中查找key是否存在,如果存在返回第一次找到的下标,不存在返回负数
+    @Test
+    public void test02(){
+        int[] arr = {1,3,5,2,11,9,1,12,32,32,31,23,12,4,5,4,5,436,45,7,65,7,6,8,76,85,45,7,56};
+        Arrays.sort(arr);
+        System.out.println(Arrays.toString(arr));
+
+        int i = Arrays.binarySearch(arr, 23);
+        System.out.println(i);
+
+        System.out.println(arr[i]);
+
+        //了解
+        Student[] arr2 = {new Student(1),new Student(2),new Student(3)};
+        int i1 = Arrays.binarySearch(arr2, new Student(2));
+        System.out.println(i1);
+
+
+    }
+
+    //* 数组的复制
+    //  * static int[] copyOf(int[] original, int newLength)  :根据original原数组复制一个长度为newLength的新数组,并返回新数组
+    //  * static <T> T[] copyOf(T[] original,int newLength):根据original原数组复制一个长度为newLength的新数组,并返回新数组
+    //  * static int[] copyOfRange(int[] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组
+    //  * static <T> T[] copyOfRange(T[] original,int from,int to):复制original原数组的[from,to)构成新数组,并返回新数组
+    @Test
+    public void test03(){
+        int[] arr = {1,3,5,2,11,9,1,12,32,32,31,23};
+
+        int[] ints = Arrays.copyOf(arr, 100);
+        System.out.println(Arrays.toString(ints));
+
+        int[] ints1 = Arrays.copyOfRange(arr, 0, 3);
+        System.out.println(Arrays.toString(ints1));
+
+
+    }
+
+    //* 比较两耳数组是否相等
+    //  * static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同
+    //  * static boolean equals(Object[] a,Object[] a2):比较两个数组的长度、元素是否完全相同
+    @Test
+    public void test04(){
+        int[] arr1 = {1,3,5,2,1};
+        int[] arr2 = {1,3,5,2,1};
+
+        System.out.println(Arrays.equals(arr1, arr2));
+    }
+
+    //* 填充数组
+    //  * static void fill(int[] a, int val) :用val值填充整个a数组
+    //  * static void fill(Object[] a,Object val):用val对象填充整个a数组
+    //  * static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val值
+    //  * static void fill(Object[] a, int fromIndex, int toIndex, Object val) :将a数组[fromIndex,toIndex)部分填充为val对象
+
+    @Test
+    public void test05(){
+        int[] arr = new int[10];
+
+//        Arrays.fill(arr,8);
+//        System.out.println(Arrays.toString(arr));
+
+        Arrays.fill(arr,2,4,11);
+        System.out.println(Arrays.toString(arr));
+
+    }
+
+
+    @Test
+    public void test01(){
+        //数组排序
+        //* static void sort(int[] a) :将a数组按照从小到大进行排序
+        //* static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
+        //* static void sort(Object[] a) :根据元素的自然顺序对指定对象数组按升序进行排序。
+        //* static <T> void sort(T[] a, Comparator<? super T> c) :根据指定比较器产生的顺序对指定对象数组进行排序。
+
+        int[] arr = {1,3,5,2,11,9};
+        Arrays.sort(arr);
+        System.out.println(Arrays.toString(arr));
+
+        //static void sort(Object[] a)
+        Student[] arr1 = {new Student(11),new Student(12),new Student(10)};
+        Arrays.sort(arr1);
+        System.out.println(Arrays.toString(arr1));
+
+        System.out.println("--------------");
+        //static <T> void sort(T[] a, Comparator<? super T> c)
+        Person[] arr2 = {new Person(10),new Person(9),new Person(12)};
+
+        Arrays.sort(arr2, new Comparator<Person>() {
+            @Override
+            public int compare(Person o1, Person o2) {
+                return o1.age.compareTo(o2.age);
+            }
+        });
+        System.out.println(Arrays.toString(arr2));
+
+    }
+}
+
+class Student implements Comparable{
+    public Student(Integer age) {
+        this.age = age;
+    }
+
+    Integer age;
+    @Override
+    public int compareTo(Object o) {
+        return this.age.compareTo(((Student) o).age);
+    }
+
+    @Override
+    public String toString() {
+        return "Student{" +
+                "age=" + age +
+                '}';
+    }
+}
+
+class Person {
+
+    Integer age;
+
+    public Person(Integer age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Person{" +
+                "age=" + age +
+                '}';
+    }
+}

+ 128 - 0
JavaSE/day16/src/com/lovecoding/day16/api04/Test01.java

@@ -0,0 +1,128 @@
+package com.lovecoding.day16.api04;
+
+import org.junit.Test;
+
+public class Test01 {
+
+    @Test
+    public void test11(){
+        //空字符串
+        String str1 = "";
+        String str2 = new String();
+        String str3 = new String("");
+
+        if("".equals(str1)){
+            System.out.println(1);
+        }
+        if(str2!=null  && str2.isEmpty()){
+            // public boolean isEmpty() {
+            //     return value.length == 0; //value 数组 length属性
+            //}
+            System.out.println(2);
+        }
+        if(str3!=null && str3.equals("")){
+            System.out.println(3);
+        }
+
+        if(str2!=null && str2.length()==0){
+            System.out.println(4);
+        }
+    }
+
+    @Test
+    public void test10(){
+        String str1 = "hello";
+        String str2 = "hello";
+        System.out.println(str1.equals(str2));//true
+
+        /* 字符的比较
+        for (int i = 0; i < value.length; i++) {
+            if (value[i] != other[i]) {
+                return false;
+            }
+        }
+        */
+
+        String str3 = new String("hello");
+        String str4 = new String("hello");
+        System.out.println(str1.equals(str3));//true
+        System.out.println(str3.equals(str4));//true
+    }
+
+    @Test
+    public void test09(){
+        String str1 = "hello";
+        String str2 = "hello";
+        System.out.println(str1 == str2);
+
+        String str3 = new String("hello");
+        String str4 = new String("hello"); //堆中
+        System.out.println(str1 == str4);
+        System.out.println(str3 == str4);
+    }
+
+    @Test
+    public void test08(){
+        String str = "hello";
+        String str2 = "world";
+        String str3 ="helloworld";
+
+        String str4 = "hello".concat("world");
+        String str5 = "hello"+"world";
+
+        System.out.println(str3 == str4);//false
+        System.out.println(str3 == str5);//true
+    }
+
+    @Test
+    public void test07(){
+
+        String str = "0";
+        for (int i = 0; i <= 5; i++) {
+            str += i; // "+"+1 = 01 创建  012 创建
+        }
+        System.out.println(str);
+
+    }
+
+    @Test
+    public void test06(){
+        String s1 = "hello";
+        String s2 = "world";
+        String s3 = "helloworld";
+
+        String s4 = (s1 + "world").intern();//把拼接的结果放到常量池中 helloworld
+        String s5 = (s1 + s2).intern(); //helloworld
+
+        System.out.println(s3 == s4); //t
+        System.out.println(s3 == s5); //t
+    }
+    @Test
+    public void test05(){
+        final String s1 = "hello"; //常量 常量池
+        final String s2 = "world"; //常量 常量池
+        String s3 = "helloworld";  //常量 常量池
+
+        String s4 = s1 + "world";
+        String s5 = s1 + s2;
+        String s6 = "hello" + "world";
+
+        System.out.println(s3 == s4); //t
+        System.out.println(s3 == s5); //t
+        System.out.println(s3 == s6); //t
+    }
+    @Test
+    public void test04(){
+        String s1 = "hello";
+        String s2 = "world"; //常量
+        String s3 = "helloworld"; //常量
+
+        String s4 = s1 + "world"; //常量+变量 = 结果在堆中
+        String s5 = s1 + s2; //堆中
+        String s6 = "hello" + "world"; //常量池
+
+        System.out.println(s3 == s4); //f
+        System.out.println(s3 == s5); //f
+        System.out.println(s3 == s6); //t
+    }
+}

+ 89 - 0
JavaSE/day16/src/com/lovecoding/day16/ex01/Test01.java

@@ -0,0 +1,89 @@
+package com.lovecoding.day16.ex01;
+
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+
+public class Test01 {
+
+    //(4)计算日期的间隔
+    //- 获取当前系统日期
+    //- 从键盘输入你的出生日期和时间,例如:1995-05-01 08:08 直接声明也可以
+    //- 计算两个日期之间的毫秒值
+    //- 并求该毫秒值对应的一个日期时间值
+    @Test
+    public void test04() throws ParseException {
+        Date date1 = new Date();
+
+        String s = "1995-05-01 08:08";
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        Date parse = sdf.parse(s);
+
+        System.out.println(date1.getTime() - parse.getTime());
+        long l = date1.getTime() - parse.getTime();
+
+        Date date = new Date(l);
+        System.out.println(date);
+
+        LocalDateTime now = LocalDateTime.now();
+
+        Date from = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
+        System.out.println(from);
+
+
+    }
+
+    //- 获取本地的当前系统日期
+    //- 从键盘输入你的出生日期,例如:1995-05-01 (不考虑格式) 直接声明也可以
+    //- 计算两个日期的间隔
+    @Test
+    public void test03(){
+        LocalDate localDate = LocalDate.now();
+        LocalDate now = LocalDate.of(1995, 5, 1);
+        //转换
+        String s = "1995-05-01";
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        //字符串转时间
+        LocalDate parse = LocalDate.parse(s, df);
+
+        Period between = Period.between(parse, localDate);
+
+        System.out.println(between.getDays());
+        System.out.println(between.getMonths());
+        System.out.println(between.getYears());
+    }
+
+    //(2)计算两个时间的间隔
+    //- 获取本地的当前系统时间
+    //- 获取美国芝加哥的系统时间
+    //- 计算两个时间的间隔
+    @Test
+    public void test02(){
+        LocalTime localTime1 = LocalTime.now();
+        LocalTime localTime2 = LocalTime.now(ZoneId.of("America/Chicago"));
+
+        Duration between = Duration.between(localTime2, localTime1);
+
+        long seconds = between.getSeconds();
+        System.out.println(Math.abs(seconds/60/60));
+
+    }
+
+    @Test
+    public void test01(){
+        //- 使用自定义的格式输出,例如:“2022年01月23日 23时12分15秒  871毫秒  星期日 是这一年的23天”
+        //- "yyyy年MM月dd日 HH时mm分ss秒  SSS毫秒  E 是这一年的D天
+        LocalDateTime localDateTime = LocalDateTime.now();
+
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒  SSS毫秒  E 是这一年的D天");
+
+        String format = df.format(localDateTime);
+
+        System.out.println(format);
+
+    }
+}

+ 64 - 0
JavaSE/day16/src/com/lovecoding/day16/ex02/Test01.java

@@ -0,0 +1,64 @@
+package com.lovecoding.day16.ex02;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class Test01 {
+    //有一个长度为10的整数数组,例如,。去除数组中重复的内容,只保留唯一的元素。效果如图所示
+    //{9,10,6,6,1,9,3,5,6,4}
+    //{10,6,6,1,9,3,5,6,4} 4
+    //{10,6,6,1,9,3,5,6,4} 4
+    //{10,6,1,9,3,5,6,4} 4 4
+    //{10,6,1,9,3,5,6,4},4 4
+    //{10,1,9,3,5,6,4},4,4 4
+    //{10,1,9,3,5,6,4},4,4 4
+    //{10,1,9,3,5,6,4},4,4 4
+
+    //- 定义一个变量count,初始化为数组的长度
+    //- 遍历每一个元素,如果该元素与前面的某个元素相等,那么通过移动数组,把该元素覆盖掉,并修改count--。
+    //- 最后创建一个新数组,长度为count,并从原数组把前count个元素复制过来
+    @Test
+    public void test01(){
+        int[] arr = {9,10,6,6,1,9,3,5,6,4};
+        int count = arr.length;
+        //每一个元素
+        for (int i = 0; i < count - 1; i++) {
+            for (int j = i+1; j < count - 1  ; j++) {
+                if (arr[i] == arr[j]){
+                    System.arraycopy(arr,i+1,arr,i,count-i-1);
+                    //System.out.println(Arrays.toString(arr));
+                    count--;
+                    i--;
+                    break;
+                }
+            }
+        }
+        int[] arr1 = new int[count];
+        System.arraycopy(arr,0,arr1,0,count);
+        System.out.println(Arrays.toString(arr1));
+    }
+
+    //{9,10,6,6,1,9,3,5,6,4}
+
+    @Test
+    public void test02(){
+        int[] arr = {9,10,6,6,1,9,3,5,6,4};
+        int count = arr.length;
+        //每一个元素
+        for (int i = 0; i < count - 1; i++) {
+            for (int j = 0; j < i  ; j++) {
+                if (arr[i] == arr[j]){
+                    System.arraycopy(arr,i+1,arr,i,count-i-1);
+                    //System.out.println(Arrays.toString(arr));
+                    count--;
+                    i--;
+                    break;
+                }
+            }
+        }
+        int[] arr1 = new int[count];
+        System.arraycopy(arr,0,arr1,0,count);
+        System.out.println(Arrays.toString(arr1));
+    }
+}

+ 32 - 0
JavaSE/day16/src/com/lovecoding/day16/ex03/Class4.java

@@ -0,0 +1,32 @@
+package com.lovecoding.day16.ex03;
+
+
+class TEXT{
+    public int num;
+    public String str;
+
+    public TEXT(int num, String str){
+        this.num = num;
+        this.str = str;
+    }
+}
+public class Class4 {
+    public static void f1(TEXT tIn, int intIn, Integer integerIn, String strIn){
+        tIn.num =200;
+        tIn.str = "bcd";
+        intIn = 200;
+        integerIn = 200; //integerIn = new Integer(200);
+        strIn = "bcd";
+    }
+    public static void main(String[] args) {
+        TEXT tIn = new TEXT(100, "abc");
+        int intIn = 100;
+        Integer integerIn = 100;
+        String strIn = "abc";
+
+        f1(tIn,intIn,integerIn,strIn);
+
+        System.out.println(tIn.num + tIn.str + intIn + integerIn + strIn);
+                          //200       bcd       100     100        abc
+    }
+}

BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex01/ChatThread.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex01/Test01$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex01/Test01.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex02/Racer.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer$2.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/ex02/TestRacer.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread01/MyThread01.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread01/MyThread02.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01$2.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread01/Test01.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/MyThread.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01$2.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread01.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread02$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread02.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03$2.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread02/TestThread03.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$1.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$2.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$3.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker$4.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/TestTicker.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread03/Ticket.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread04/DiningHome.class


BIN
JavaSE/out/production/day14/com/lovecoding/day14/thread04/TestDiningHome.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/api01/TestMath.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/api02/TestDate01.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/api02/TestDate02.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/ex01/PrintLetter.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/ex01/PrintLetter1.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/ex01/TestPrint.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/ex01/TestPrint1.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/ex02/Test01.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/thread04/DiningHome.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/thread04/TestDiningHome.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/thread05/Product.class


BIN
JavaSE/out/production/day15/com/lovecoding/day14/thread05/TestProduct.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/Test01.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api01/TestDate.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api02/Test01.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api03/Person.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api03/Student.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api03/Test01Arr$1.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api03/Test01Arr.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/api04/Test01.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/ex01/Test01.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/ex02/Test01.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/ex03/Class4.class


BIN
JavaSE/out/production/day16/com/lovecoding/day16/ex03/TEXT.class