From 8a549a47994eeb2b3ae559b973d63985ac8847d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 8 Nov 2018 08:35:57 +0800 Subject: [PATCH 01/22] Initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000000..fb2631a59d --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# java +夯实Java基础,重读Java编程思想,通过博客输出最有趣的Java知识点 From 5641db425918cb16e25a20a2f16d0a31f764d95b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 8 Nov 2018 08:42:29 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java_demo/pom.xml | 25 +++++++++++++++++++ .../main/java/com/cmower/java_demo/App.java | 13 ++++++++++ 2 files changed, 38 insertions(+) create mode 100644 java_demo/pom.xml create mode 100644 java_demo/src/main/java/com/cmower/java_demo/App.java diff --git a/java_demo/pom.xml b/java_demo/pom.xml new file mode 100644 index 0000000000..9fdd9d4123 --- /dev/null +++ b/java_demo/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + com.cmower + java_demo + 0.0.1-SNAPSHOT + jar + + java_demo + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/java_demo/src/main/java/com/cmower/java_demo/App.java b/java_demo/src/main/java/com/cmower/java_demo/App.java new file mode 100644 index 0000000000..9eee40d30b --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/App.java @@ -0,0 +1,13 @@ +package com.cmower.java_demo; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} From 3af82e3e4532ebf1ba5dd9cca929dbde16830173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 8 Nov 2018 08:42:51 +0800 Subject: [PATCH 03/22] test --- .../java/com/cmower/java_demo/AppTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 java_demo/src/test/java/com/cmower/java_demo/AppTest.java diff --git a/java_demo/src/test/java/com/cmower/java_demo/AppTest.java b/java_demo/src/test/java/com/cmower/java_demo/AppTest.java new file mode 100644 index 0000000000..acf921e0a5 --- /dev/null +++ b/java_demo/src/test/java/com/cmower/java_demo/AppTest.java @@ -0,0 +1,38 @@ +package com.cmower.java_demo; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} From ee273cd3a65a4d46514c3d6758c54121fc4f37dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Fri, 9 Nov 2018 22:17:45 +0800 Subject: [PATCH 04/22] 11 --- .../java_demo/OperationalCharacter.java | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/OperationalCharacter.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/OperationalCharacter.java b/java_demo/src/main/java/com/cmower/java_demo/OperationalCharacter.java new file mode 100644 index 0000000000..409582a8ac --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/OperationalCharacter.java @@ -0,0 +1,110 @@ +package com.cmower.java_demo; + +import java.math.BigDecimal; + +public class OperationalCharacter { + + public static void main(String[] args) { + int i = 520, j = 521; + // 此时的i和j非常恩爱 + System.out.println("i=" + i + ",j=" + j); // 输出:i=520,j=521 + // 就当他俩结婚了 + i = j; + // 然而i却疯了 + i = 250; + // 但j却不为所动 + System.out.println("i=" + i + ",j=" + j); // 输出:i=250,j=521 + + testTrueLove(); + + // 穷光蛋a + int a = 0; + + // 穷光蛋b + Money b = new Money(); + b.coin = 0; + + testQuality(a, b); + System.out.println("a=" + a + ",b.coin=" + b.coin); + // 输出:a=0,b.coin=10000000 + + double m = 6; + double n = 6.4; + double o = m * n; + System.out.println("m=" + m + ",n=" + n + ",o=" + o); + // 输出:m=6.0,n=6.4,o=38.400000000000006 + + BigDecimal m1 = BigDecimal.valueOf(6); + BigDecimal n1 = BigDecimal.valueOf(6.4); + BigDecimal o1 = m1.multiply(n1); + System.out.println("m1=" + m1 + ",n1=" + n1 + ",o1=" + o1); + // 输出:m1=6,n1=6.4,o1=38.4 + + BigDecimal m2 = new BigDecimal(6); + BigDecimal n2 = new BigDecimal(6.4); + BigDecimal o2 = m2.multiply(n2); + System.out.println("m2=" + m2 + ",n2=" + n2 + ",o2=" + o2); + // 输出:m2=6,n2=6.4000000000000003552713678800500929355621337890625,o2=38.4000000000000021316282072803005576133728027343750 + + int p = 0; + calculate(p); + + Integer q = 127; + Integer r = 127; + + System.out.println(q == r); + + q = 128; + r = 128; + System.out.println(q == r); + + System.out.println(q.intValue() == r.intValue()); + System.out.println(q.compareTo(r) == 0); + + boolean flag = true; + System.out.println(flag ? "点赞转发分享" : "踩死你丫的"); + } + + public static void calculate(int p) { + if (p < 3) { + // 其他 + calculate(++p); + } + } + + public static void testQuality(int a, Money b) { + // 有钱了 + a = 10000000; + b.coin = 10000000; + } + + public static void testTrueLove() { + Lover boy = new Lover(); + boy.level = 520; + + Lover girl = new Lover(); + girl.level = 521; + + // 此时的男孩和女孩非常恩爱 + System.out.println("boy.level=" + boy.level + ",girl.level=" + girl.level); + // boy.level=520,girl.level=521 + + // 就当他俩结婚了 + boy = girl; + // 女孩不爱了 + girl.level = 582; + + // 男孩也不爱了 + System.out.println("boy.level=" + boy.level + ",girl.level=" + girl.level); + // boy.level=582,girl.level=582 + } + +} + +class Lover { + int level; +} + +class Money { + int coin; +} From bf4987149042de0e4841c0fa5002bf78889485cb Mon Sep 17 00:00:00 2001 From: qinggee Date: Wed, 14 Nov 2018 11:08:19 +0800 Subject: [PATCH 05/22] tijiao --- java_demo/pom.xml | 60 ++++++++++++------- .../java/com/cmower/java_demo/Fibonacci.java | 35 +++++++++++ 2 files changed, 75 insertions(+), 20 deletions(-) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Fibonacci.java diff --git a/java_demo/pom.xml b/java_demo/pom.xml index 9fdd9d4123..6556a74646 100644 --- a/java_demo/pom.xml +++ b/java_demo/pom.xml @@ -1,25 +1,45 @@ - - 4.0.0 + + 4.0.0 - com.cmower - java_demo - 0.0.1-SNAPSHOT - jar + com.cmower + java_demo + 0.0.1-SNAPSHOT + jar - java_demo - http://maven.apache.org + java_demo + http://maven.apache.org - - UTF-8 - + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + + + 青苗科技 + http://www.qingmiaokeji.cn + + + + ${project.artifactId} + + + maven-compiler-plugin + 2.3.2 + + 1.8 + 1.8 + UTF-8 + + + + - - - junit - junit - 3.8.1 - test - - diff --git a/java_demo/src/main/java/com/cmower/java_demo/Fibonacci.java b/java_demo/src/main/java/com/cmower/java_demo/Fibonacci.java new file mode 100644 index 0000000000..54c7251d6b --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Fibonacci.java @@ -0,0 +1,35 @@ +package com.cmower.java_demo; + +public class Fibonacci { + + public static void main(String[] args) { + int start = 1; + int next = 1; + System.out.print(start + "、" + next + "、"); + + // 从3开始到第num个斐波那契数 + for (int i = 3; i <= 10; i++) { + int last = start + next; + System.out.print(last + "、"); + + start = next; + next = last; + } + System.out.println(); + + // 通过迭代计算,效率很低 + for (int i = 1; i <= 10; i++) { + System.out.print(getFibonacci(i) + "、"); + } + } + + private static int getFibonacci(int index) { + if (index == 1 || index == 2) { + return 1; + } + + return getFibonacci(index - 1) + getFibonacci(index - 2); + + } + +} From bee4469524982d6fa28547c3ba8aea4afd63a657 Mon Sep 17 00:00:00 2001 From: qinggee Date: Thu, 6 Dec 2018 09:43:28 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E9=93=BE=E5=BC=8F=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 ++++ java_demo/.gitignore | 1 + .../main/java/com/cmower/java_demo/Writer.java | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 .gitignore create mode 100644 java_demo/.gitignore create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Writer.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..06064b06f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ + +*.prefs +java_demo/.project +java_demo/.classpath diff --git a/java_demo/.gitignore b/java_demo/.gitignore new file mode 100644 index 0000000000..b83d22266a --- /dev/null +++ b/java_demo/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/java_demo/src/main/java/com/cmower/java_demo/Writer.java b/java_demo/src/main/java/com/cmower/java_demo/Writer.java new file mode 100644 index 0000000000..b545485a18 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Writer.java @@ -0,0 +1,17 @@ +package com.cmower.java_demo; + +class Writer { + public Writer sleep() { + System.out.println("睡一觉"); + return this; + } + + public Writer ml() { + System.out.println("做运动"); + return this; + } + + public static void main(String[] args) { + new Writer().ml().sleep(); + } +} From 134399421098061e50b0d5f5f990918d1c1f3df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 13 Dec 2018 17:06:55 +0800 Subject: [PATCH 07/22] tijiao --- .../src/main/java/com/cmower/java_demo/App.java | 15 ++++++++++++++- .../main/java/com/cmower/java_demo/NiubiUtil.java | 15 +++++++++++++++ .../main/java/com/cmower/java_demo/Wanger.java | 15 +++++++++++++++ .../java/com/cmower/java_demo/Wangxiaoer.java | 8 ++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/NiubiUtil.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/App.java b/java_demo/src/main/java/com/cmower/java_demo/App.java index 9eee40d30b..b180a8616a 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/App.java +++ b/java_demo/src/main/java/com/cmower/java_demo/App.java @@ -1,5 +1,8 @@ package com.cmower.java_demo; +import java.math.BigDecimal; +import java.math.RoundingMode; + /** * Hello world! * @@ -8,6 +11,16 @@ public class App { public static void main( String[] args ) { - System.out.println( "Hello World!" ); + System.out.print( "每个月给女儿存100,按照12%的月利率,现在需要存款:" ); + + BigDecimal deposit_for_daughter = BigDecimal.valueOf(100); + + int month = 2 * 12 + 8; + for (int i = 1; i <= month; i++) { + deposit_for_daughter = deposit_for_daughter.multiply(BigDecimal.valueOf(1.12)); + } + System.out.println(deposit_for_daughter.setScale(2, RoundingMode.HALF_UP)); + + System.out.println(NiubiUtil.getNextDay()); } } diff --git a/java_demo/src/main/java/com/cmower/java_demo/NiubiUtil.java b/java_demo/src/main/java/com/cmower/java_demo/NiubiUtil.java new file mode 100644 index 0000000000..a64a86015a --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/NiubiUtil.java @@ -0,0 +1,15 @@ +package com.cmower.java_demo; + +import java.util.Date; + +public class NiubiUtil { + public static Date getNextDay() { + long millis = 24 * 60 * 60 * 1000; + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Date(System.currentTimeMillis()); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/Wanger.java new file mode 100644 index 0000000000..0367675ece --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Wanger.java @@ -0,0 +1,15 @@ +package com.cmower.java_demo; + +public class Wanger { + + // 私生活 + private String life; + + // 外在形象 + public String image; + + // 被保护的财产 + protected String money; + + String test; +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java b/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java new file mode 100644 index 0000000000..9896752ca3 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java @@ -0,0 +1,8 @@ +package com.cmower.java_demo; + +public class Wangxiaoer extends Wanger{ + @Override + public String toString() { + return "可以继承的财产:" + money + ";塑造的人设:" + image + ";学不到的私生活:" + test; + } +} From 640f1dce2ee1d7ff66020bdabc009ad7be631833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Mon, 17 Dec 2018 07:35:02 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmower/java_demo/eight/Wangxiaoer.java | 33 +++++++++++++++++++ .../cmower/java_demo/eight/Wangxiaosan.java | 33 +++++++++++++++++++ .../cmower/java_demo/eight/Wangxiaosi.java | 30 +++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaoer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosan.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosi.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaoer.java b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaoer.java new file mode 100644 index 0000000000..7c8ff81c3b --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaoer.java @@ -0,0 +1,33 @@ +package com.cmower.java_demo.eight; + +//子类继承父类 +public class Wangxiaoer extends Wanger { + public void write() { // 子类覆盖父类方法 + System.out.println("记住仇恨,表明我们要奋发图强的心智"); + } + + public void eat() { + System.out.println("我不喜欢读书,我就喜欢吃"); + } + + public static void main(String[] args) { + // 父类引用指向子类对象 + Wanger[] wangers = { new Wanger(), new Wangxiaoer() }; + + for (Wanger wanger : wangers) { + // 对象是王二的时候输出:勿忘国耻 + // 对象是王小二的时候输出:记住仇恨,表明我们要奋发图强的心智 + wanger.write(); + } + } +} + +class Wanger { + public void write() { + System.out.println("勿忘国耻"); + } + + public void read() { + System.out.println("每周读一本好书"); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosan.java b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosan.java new file mode 100644 index 0000000000..9c22e2af6f --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosan.java @@ -0,0 +1,33 @@ +package com.cmower.java_demo.eight; + +//子类继承父类 +public class Wangxiaosan extends Wangsan { + private int age = 3; + public Wangxiaosan(int age) { + this.age = age; + System.out.println("王小三的年龄:" + this.age); + } + + public void write() { // 子类覆盖父类方法 + System.out.println("我小三上幼儿园的年龄是:" + this.age); + } + + public static void main(String[] args) { + new Wangxiaosan(4); +// 上幼儿园之前 +// 我小三上幼儿园的年龄是:0 +// 上幼儿园之后 +// 王小三的年龄:4 + } +} + +class Wangsan { + Wangsan () { + System.out.println("上幼儿园之前"); + write(); + System.out.println("上幼儿园之后"); + } + public void write() { + System.out.println("老子上幼儿园的年龄是3岁半"); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosi.java b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosi.java new file mode 100644 index 0000000000..d7e8e52015 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/eight/Wangxiaosi.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo.eight; + +public class Wangxiaosi extends Wangsi { + public void write() { + System.out.println("记住仇恨,表明我们要奋发图强的心智"); + } + + public void eat() { + System.out.println("我不喜欢读书,我就喜欢吃"); + } + + public static void main(String[] args) { + Wangsi[] wangsis = { new Wangsi(), new Wangxiaosi() }; + + // wangsis[1]能够向下转型 + ((Wangxiaosi) wangsis[1]).write(); + // wangsis[0]不能向下转型 + ((Wangxiaosi)wangsis[0]).write(); + } +} + +class Wangsi { + public void write() { + System.out.println("勿忘国耻"); + } + + public void read() { + System.out.println("每周读一本好书"); + } +} \ No newline at end of file From 5538b07003778271d4659bd43c22db3ff0404ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 16 May 2019 08:46:43 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 13 +++++ .idea/vcs.xml | 6 ++ java_demo/pom.xml | 27 ++++++++- .../java/com/cmower/java_demo/Candidate.java | 30 ++++++++++ .../com/cmower/java_demo/Interviewer.java | 27 +++++++++ .../java/com/cmower/java_demo/Locker.java | 18 ++++++ .../java/com/cmower/java_demo/Wanger.java | 28 ++++++---- .../java/com/cmower/java_demo/Wangxiaoer.java | 8 +-- .../java_demo/eleven/WriterAndReader.java | 49 ++++++++++++++++ .../cmower/java_demo/fanxing/Arraylist.java | 55 ++++++++++++++++++ .../cmower/java_demo/fanxing/Arraylist2.java | 19 +++++++ .../com/cmower/java_demo/fanxing/Cmower.java | 21 +++++++ .../com/cmower/java_demo/fanxing/Wanger.java | 10 ++++ .../cmower/java_demo/fanxing/Wanglaoer.java | 10 ++++ .../cmower/java_demo/fanxing/Wangxiaoer.java | 10 ++++ .../com/cmower/java_demo/fifteen/Test.java | 45 +++++++++++++++ .../com/cmower/java_demo/jiekou/Author.java | 9 +++ .../cmower/java_demo/jiekou/Contract51.java | 5 ++ .../java_demo/jiekou/ContractBeihang.java | 5 ++ .../com/cmower/java_demo/jiekou/Wanger.java | 20 +++++++ .../com/cmower/java_demo/lombok/Cmower.java | 33 +++++++++++ .../cmower/java_demo/lombok/CmowerLombok.java | 12 ++++ .../com/cmower/java_demo/lombok/Test.java | 9 +++ .../java/com/cmower/java_demo/nine/Demo.java | 28 ++++++++++ .../cmower/java_demo/nine/adapter/Demo.java | 30 ++++++++++ .../cmower/java_demo/nine/factory/Demo.java | 56 +++++++++++++++++++ .../com/cmower/java_demo/nine/inf/Demo2.java | 48 ++++++++++++++++ .../cmower/java_demo/nine/strategy/Demo.java | 32 +++++++++++ .../cmower/java_demo/seventeen/Cmower.java | 42 ++++++++++++++ .../com/cmower/java_demo/sixteen/Cmower.java | 48 ++++++++++++++++ .../java/com/cmower/java_demo/ten/Demo.java | 26 +++++++++ .../java/com/cmower/java_demo/ten/Wanger.java | 29 ++++++++++ .../com/cmower/java_demo/twelve/Cmower.java | 26 +++++++++ .../java_demo/twelve/OrderException.java | 12 ++++ java_demo/src/main/java/log4j.properties | 33 +++++++++++ 35 files changed, 863 insertions(+), 16 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Candidate.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Interviewer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Locker.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/eleven/WriterAndReader.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist2.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanglaoer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Wangxiaoer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fifteen/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/jiekou/Author.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/jiekou/Contract51.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/jiekou/ContractBeihang.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/jiekou/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/lombok/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/lombok/CmowerLombok.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/lombok/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nine/Demo.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nine/adapter/Demo.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nine/factory/Demo.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nine/inf/Demo2.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nine/strategy/Demo.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/seventeen/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/sixteen/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ten/Demo.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ten/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/twelve/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/twelve/OrderException.java create mode 100644 java_demo/src/main/java/log4j.properties diff --git a/.gitignore b/.gitignore index 06064b06f9..af099f9aee 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,16 @@ *.prefs java_demo/.project java_demo/.classpath +.idea/vcs.xml +.idea/vcs.xml +.idea/misc.xml +.idea/modules.xml +.idea/vcs.xml +.idea/workspace.xml +.idea/vcs.xml +java_demo/logs/error.log +*.log +.idea/vcs.xml +java_demo/src/main/main.iml +java_demo/src/test/test.iml +.idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000..94a25f7f4c --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/java_demo/pom.xml b/java_demo/pom.xml index 6556a74646..c2699ec5b0 100644 --- a/java_demo/pom.xml +++ b/java_demo/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 com.cmower @@ -20,6 +21,30 @@ 3.8.1 test + + + log4j + log4j + 1.2.16 + + + + org.slf4j + slf4j-api + 1.7.25 + + + + org.slf4j + slf4j-log4j12 + 1.7.25 + + + org.projectlombok + lombok + 1.18.6 + provided + diff --git a/java_demo/src/main/java/com/cmower/java_demo/Candidate.java b/java_demo/src/main/java/com/cmower/java_demo/Candidate.java new file mode 100644 index 0000000000..73a257a727 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Candidate.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo; + +class Candidate implements Cloneable { + private String name; + + public Candidate(String name) { + this.name = name; + } + + public void deliverResume() { + System.out.println(getName() + "发简历"); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Candidate clone() { + try { + return (Candidate) super.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Interviewer.java b/java_demo/src/main/java/com/cmower/java_demo/Interviewer.java new file mode 100644 index 0000000000..b65df66793 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Interviewer.java @@ -0,0 +1,27 @@ +package com.cmower.java_demo; + +class Interviewer { + private Candidate candidate; + + public Interviewer (Candidate candidate) { + this.candidate = candidate; + } + + public void receviveResume() { + System.out.println("收到" + getCandidate().getName() + "简历"); + } + + public void notifyInterview() { + System.out.println("通知" + getCandidate().getName() + "面试"); + } + + public Candidate getCandidate() { + Candidate candidate = new Candidate(this.candidate.getName()); + return candidate; + } + + public void setCandidate(Candidate candidate) { + this.candidate = candidate; + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Locker.java b/java_demo/src/main/java/com/cmower/java_demo/Locker.java new file mode 100644 index 0000000000..3769ddff5c --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Locker.java @@ -0,0 +1,18 @@ +package com.cmower.java_demo; + + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +public enum Locker { + + INSTANCE; + + private static final ReadWriteLock lock = new ReentrantReadWriteLock(); + + public Lock writeLock() { + return lock.writeLock(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/Wanger.java index 0367675ece..63ea42edd2 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/Wanger.java +++ b/java_demo/src/main/java/com/cmower/java_demo/Wanger.java @@ -1,15 +1,21 @@ package com.cmower.java_demo; public class Wanger { - - // 私生活 - private String life; - - // 外在形象 - public String image; - - // 被保护的财产 - protected String money; - - String test; + + public static void main(String[] args) { +Candidate qiuqiu = new Candidate("秋秋"); +// 发送简历 +qiuqiu.deliverResume(); + +Interviewer interviewer = new Interviewer(qiuqiu); +// 面试官接收到简历 +interviewer.receviveResume(); +// 面试官通知应聘者来面试 +interviewer.notifyInterview(); + +Candidate temp = interviewer.getCandidate(); +temp.setName("夏夏"); + +System.out.println(qiuqiu.getName()); + } } diff --git a/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java b/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java index 9896752ca3..c35f0441ab 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java +++ b/java_demo/src/main/java/com/cmower/java_demo/Wangxiaoer.java @@ -1,8 +1,8 @@ package com.cmower.java_demo; public class Wangxiaoer extends Wanger{ - @Override - public String toString() { - return "可以继承的财产:" + money + ";塑造的人设:" + image + ";学不到的私生活:" + test; - } +// @Override +// public String toString() { +// return "可以继承的财产:" + money + ";塑造的人设:" + image + ";学不到的私生活:" + test; +// } } diff --git a/java_demo/src/main/java/com/cmower/java_demo/eleven/WriterAndReader.java b/java_demo/src/main/java/com/cmower/java_demo/eleven/WriterAndReader.java new file mode 100644 index 0000000000..0bb6dc9389 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/eleven/WriterAndReader.java @@ -0,0 +1,49 @@ +package com.cmower.java_demo.eleven; + +import java.util.PriorityQueue; + +public class WriterAndReader implements Comparable { + static PriorityQueue queue = new PriorityQueue(); + + private String name; + + public WriterAndReader(String name) { + this.name = name; + } + + @Override + public int compareTo(WriterAndReader o) { + // o为之前的 + if (this.getName().equals("王二")) { + return -1; + } + return this.getName().compareTo(o.getName()); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return this.getName(); + } + + public static void main(String[] args) { + + // 第一次,没有发生比较,因为只有一个 + queue.add(new WriterAndReader("读者2")); + // 第二次,与第一次放入的比较,发现读者1比读者2小 + queue.add(new WriterAndReader("读者1")); + // 第三次,与读者1进行比较,发现王二小;但不不知道为什么又重新比较了一下读者1与读者2 + queue.add(new WriterAndReader("王二")); + + while (!queue.isEmpty()) { + System.out.println(queue.poll()); + } + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java new file mode 100644 index 0000000000..e69bde5c79 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java @@ -0,0 +1,55 @@ +package com.cmower.java_demo.fanxing; + +import java.util.Arrays; + +class Arraylist { + private Object[] elementData; + private int size = 0; + + public Arraylist(int initialCapacity) { + this.elementData = new Object[initialCapacity]; + } + + public boolean add(E e) { + elementData[size++] = e; + return true; + } + + public E get(int index) { + return (E) elementData[index]; + } + + public T[] toArray(T[] a) { + return (T[]) Arrays.copyOf(elementData, size, a.getClass()); + } + + public int indexOf(Object o) { + if (o == null) { + for (int i = 0; i < size; i++) + if (elementData[i]==null) + return i; + } else { + for (int i = 0; i < size; i++) + if (o.equals(elementData[i])) + return i; + } + return -1; + } + + public boolean contains(Object o) { + return indexOf(o) >= 0; + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + + for (Object o : elementData) { + if (o != null) { + E e = (E)o; + sb.append(e.toString()); + sb.append(',').append(' '); + } + } + return sb.toString(); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist2.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist2.java new file mode 100644 index 0000000000..b4dbc7a0cd --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist2.java @@ -0,0 +1,19 @@ +package com.cmower.java_demo.fanxing; + +class Arraylist2 { + private Object[] elementData; + private int size = 0; + + public Arraylist2(int initialCapacity) { + this.elementData = new Object[initialCapacity]; + } + + public boolean add(E e) { + elementData[size++] = e; + return true; + } + + E elementData(int index) { + return (E) elementData[index]; + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java new file mode 100644 index 0000000000..c8ccec5c9d --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java @@ -0,0 +1,21 @@ +package com.cmower.java_demo.fanxing; + +public class Cmower { + + public static void main(String[] args) { + Arraylist list = new Arraylist<>(4); + + Wanger wanger = new Wanger(); + list.add(wanger); + + Wangxiaoer wangxiaoer = new Wangxiaoer(); + list.add(wangxiaoer); + + Arraylist list1 = list; + Wanger w = list1.get(1); + System.out.println(w); + + System.out.println(list1.contains(wangxiaoer)); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanger.java new file mode 100644 index 0000000000..1c5b9720ab --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanger.java @@ -0,0 +1,10 @@ +package com.cmower.java_demo.fanxing; + +/** + * 王二 + */ +class Wanger extends Wanglaoer{ + public String toString() { + return "王二"; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanglaoer.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanglaoer.java new file mode 100644 index 0000000000..1fea9f853e --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wanglaoer.java @@ -0,0 +1,10 @@ +package com.cmower.java_demo.fanxing; + +/** + * 王老二 + */ +class Wanglaoer { + public String toString() { + return "王老二"; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wangxiaoer.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wangxiaoer.java new file mode 100644 index 0000000000..9a0f31e2a4 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Wangxiaoer.java @@ -0,0 +1,10 @@ +package com.cmower.java_demo.fanxing; + +/** + * 王小二 + */ +class Wangxiaoer extends Wanger{ + public String toString() { + return "王小二"; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/fifteen/Test.java b/java_demo/src/main/java/com/cmower/java_demo/fifteen/Test.java new file mode 100644 index 0000000000..2e78471f94 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fifteen/Test.java @@ -0,0 +1,45 @@ +package com.cmower.java_demo.fifteen; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +class Author { + private String pen_name; + private String real_name; +} + +class Writer extends Author { + private String honour; + + private void makeMoney() { + System.out.println("很多很多钱"); + } +} + +public class Test { + public static void main(String[] args) { + + Class c4 = Writer.class; + System.out.println(c4.getName()); + + try { + Writer wangsan = c4.newInstance(); + System.out.println(wangsan); + + Field[] fields = c4.getDeclaredFields(); + + for (Field field : fields) { + + System.out.println(field.getName()); + } + + Method[] methods = c4.getDeclaredMethods(); + for (Method method : methods) { + System.out.println(method.getName()); + } + } catch (InstantiationException | IllegalAccessException e1) { + e1.printStackTrace(); + } + + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/jiekou/Author.java b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Author.java new file mode 100644 index 0000000000..3096571632 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Author.java @@ -0,0 +1,9 @@ +package com.cmower.java_demo.jiekou; + +abstract class Author { + abstract void write(); + + public void sleep () { + System.out.println("吃饭睡觉打豆豆"); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/jiekou/Contract51.java b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Contract51.java new file mode 100644 index 0000000000..e48c8a617a --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Contract51.java @@ -0,0 +1,5 @@ +package com.cmower.java_demo.jiekou; + +interface Contract51 { + void script51(); +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/jiekou/ContractBeihang.java b/java_demo/src/main/java/com/cmower/java_demo/jiekou/ContractBeihang.java new file mode 100644 index 0000000000..ba0f7471c5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/jiekou/ContractBeihang.java @@ -0,0 +1,5 @@ +package com.cmower.java_demo.jiekou; + +interface ContractBeihang { + void scriptBeihang(); +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/jiekou/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Wanger.java new file mode 100644 index 0000000000..15f20db10e --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/jiekou/Wanger.java @@ -0,0 +1,20 @@ +package com.cmower.java_demo.jiekou; + +public class Wanger extends Author implements ContractBeihang, Contract51 { + + @Override + void write() { + System.out.println("作品《Web 全栈开发进阶之路》,读起来轻松惬意的技术书"); + } + + @Override + public void scriptBeihang() { + System.out.println("一年内完成书稿啊,不然要交违约金的哦。"); + } + + @Override + public void script51() { + System.out.println("王老师,先把 Java 云盘的大纲整理出来。"); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/lombok/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/lombok/Cmower.java new file mode 100644 index 0000000000..8c3c836711 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/lombok/Cmower.java @@ -0,0 +1,33 @@ +package com.cmower.java_demo.lombok; + +import java.math.BigDecimal; + +class Cmower { + private int age; + private String name; + private BigDecimal money; + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BigDecimal getMoney() { + return money; + } + + public void setMoney(BigDecimal money) { + this.money = money; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/lombok/CmowerLombok.java b/java_demo/src/main/java/com/cmower/java_demo/lombok/CmowerLombok.java new file mode 100644 index 0000000000..c52d5f18f3 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/lombok/CmowerLombok.java @@ -0,0 +1,12 @@ +package com.cmower.java_demo.lombok; + +import java.math.BigDecimal; + +import lombok.Data; + +@Data +class CmowerLombok { + private int age; + private String name; + private BigDecimal money; +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/lombok/Test.java b/java_demo/src/main/java/com/cmower/java_demo/lombok/Test.java new file mode 100644 index 0000000000..8c5605b382 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/lombok/Test.java @@ -0,0 +1,9 @@ +package com.cmower.java_demo.lombok; + +public class Test { + + public static void main(String[] args) { + CmowerLombok cmowerLombok = new CmowerLombok(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/nine/Demo.java b/java_demo/src/main/java/com/cmower/java_demo/nine/Demo.java new file mode 100644 index 0000000000..bb4a7c312e --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nine/Demo.java @@ -0,0 +1,28 @@ +package com.cmower.java_demo.nine; + +abstract class Coach { + public abstract void defend(); + + public abstract void attack(); +} + +class Hesai extends Coach { + + @Override + public void defend() { + System.out.println("防守赢得冠军"); + } + + @Override + public void attack() { + System.out.println("控球是把双刃剑"); + } +} + +public class Demo { + public static void name() { + Coach moliniao = new Hesai(); + moliniao.defend(); + moliniao.attack(); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/nine/adapter/Demo.java b/java_demo/src/main/java/com/cmower/java_demo/nine/adapter/Demo.java new file mode 100644 index 0000000000..6e4d04df7c --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nine/adapter/Demo.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo.nine.adapter; + +interface Coach { + void defend(); + void attack(); + void physical(); +} + +abstract class TopCoach implements Coach { + public void defend() {}; + public void attack() {}; + public void physical() {}; +} + +class Hesai extends TopCoach { + public void defend() { + System.out.println("防守赢得冠军"); + } +} + +public class Demo { + public static void defend(Coach coach) { + coach.defend(); + } + + public static void main(String[] args) { + Coach coach = new Hesai(); + coach.defend(); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/nine/factory/Demo.java b/java_demo/src/main/java/com/cmower/java_demo/nine/factory/Demo.java new file mode 100644 index 0000000000..4e1d387f59 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nine/factory/Demo.java @@ -0,0 +1,56 @@ +package com.cmower.java_demo.nine.factory; + +interface Coach { + void command(); +} + +interface CoachFactory { + Coach createCoach(); +} + +class ACoach implements Coach { + + @Override + public void command() { + System.out.println("我是A级证书教练"); + } + +} + +class ACoachFactory implements CoachFactory { + + @Override + public Coach createCoach() { + return new ACoach(); + } + +} + +class CCoach implements Coach { + + @Override + public void command() { + System.out.println("我是C级证书教练"); + } + +} + +class CCoachFactory implements CoachFactory { + + @Override + public Coach createCoach() { + return new CCoach(); + } + +} + +public class Demo { + public static void create(CoachFactory factory) { + factory.createCoach().command(); + } + + public static void main(String[] args) { + create(new ACoachFactory()); + create(new CCoachFactory()); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/nine/inf/Demo2.java b/java_demo/src/main/java/com/cmower/java_demo/nine/inf/Demo2.java new file mode 100644 index 0000000000..5cb793de6f --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nine/inf/Demo2.java @@ -0,0 +1,48 @@ +package com.cmower.java_demo.nine.inf; + +interface Coach { + // 隐式的public + void defend(); + void attack(); +} + +interface Hero { + void fight(); +} + + +class Hesai implements Coach, Hero { + + @Override + public void defend() { + System.out.println("防守赢得冠军"); + } + + @Override + public void attack() { + System.out.println("控球是把双刃剑"); + } + + @Override + public void fight() { + System.out.println("只要一息尚存,就应该战斗到最后"); + } +} + +public class Demo2 { + public static void defend(Coach coach) { + coach.defend(); + } + + public static void fight(Hero hero) { + hero.fight(); + } + + public static void main(String[] args) { + Hesai moliniao = new Hesai(); + defend(moliniao); + fight(moliniao); + } + + +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/nine/strategy/Demo.java b/java_demo/src/main/java/com/cmower/java_demo/nine/strategy/Demo.java new file mode 100644 index 0000000000..83b7512d97 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nine/strategy/Demo.java @@ -0,0 +1,32 @@ +package com.cmower.java_demo.nine.strategy; + +interface Coach { + void defend(); +} + +class Hesai implements Coach { + + @Override + public void defend() { + System.out.println("防守赢得冠军"); + } +} + +class Guatu implements Coach { + + @Override + public void defend() { + System.out.println("进攻就是最好的防守"); + } +} + +public class Demo { + public static void defend(Coach coach) { + coach.defend(); + } + + public static void main(String[] args) { + defend(new Hesai()); + defend(new Guatu()); + } +} \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/seventeen/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/seventeen/Cmower.java new file mode 100644 index 0000000000..6fda88670e --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/seventeen/Cmower.java @@ -0,0 +1,42 @@ +package com.cmower.java_demo.seventeen; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +public class Cmower { + + public static void main(String[] args) { +int[] ints = new int[3]; +ints[0] = 1; +ints[1] = 2; + +System.out.println(ints.length); // 输出3 + +String[] strs = {"沉", "默","王", "二"}; + +List list = Arrays.asList(strs); +System.out.println(list); +// 输出[沉, 默, 王, 二] + +String[] strs1 = new String[list.size()]; +System.out.println(Arrays.toString(list.toArray(strs1))); +// 输出 [沉, 默, 王, 二] + +String[] strs2 = new String[5]; +System.out.println(Arrays.toString(list.toArray(strs2))); +// 输出 [沉, 默, 王, 二, null] + +String[] strs3 = new String[1]; +System.out.println(Arrays.toString(list.toArray(strs3))); +// 输出 [沉, 默, 王, 二] + +String[] strs4 = {}; +System.out.println(Arrays.toString(list.toArray(strs4))); +// 输出 [沉, 默, 王, 二] + + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/sixteen/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/sixteen/Cmower.java new file mode 100644 index 0000000000..2ee4148369 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/sixteen/Cmower.java @@ -0,0 +1,48 @@ +package com.cmower.java_demo.sixteen; + +import java.util.ArrayList; +import java.util.List; + +public class Cmower { + + class Dog extends Pet { + } + + class Cat extends Pet { + } + + class Pet { + + } + + class PetHouse { + private List list; + + public PetHouse() { + } + + public void add(T item) { + list.add(item); + } + + public T get() { + return list.get(0); + } + } + + public static void main(String[] args) { + Cmower cmower = new Cmower(); + + PetHouse petHouse = cmower.new PetHouse<>(); + + +PetHouse petHouse1 = cmower.new PetHouse(); +petHouse1.get(); +// petHouse1.add(cmower.new Cat()); + // The method add(capture#1-of ? extends Cmower.Pet) in the type Cmower.PetHouse + // is not applicable for the arguments (Cmower.Cat) + + petHouse1.get(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ten/Demo.java b/java_demo/src/main/java/com/cmower/java_demo/ten/Demo.java new file mode 100644 index 0000000000..67b5a64031 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ten/Demo.java @@ -0,0 +1,26 @@ +package com.cmower.java_demo.ten; + +public class Demo { + + public void test(String title) { + Thread thread = new Thread(new Runnable() { + + @Override + public void run() { + // title = "我不要吃鸡"; + // 改变时会提示错误 + // 在封闭范围中定义的局部变量必须是final的。 + System.out.println(title); + } + }); + thread.start(); + } + + public static void main(String[] args) { + for (int i = 0; i < 10; i++) { + Demo demo = new Demo(); + demo.test("我要吃鸡" + i); + } + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ten/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/ten/Wanger.java new file mode 100644 index 0000000000..28f317d911 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ten/Wanger.java @@ -0,0 +1,29 @@ +package com.cmower.java_demo.ten; + +public class Wanger { + private int age; + public Wanger(int age) { + this.age = age; + } + + class Thought { + public void know() { + System.out.println("沉默王二的年龄" + age); + } + } + + public Thought getThought() { + return new Thought(); + } + + public static void main(String[] args) { + Wanger wanger = new Wanger(29); + Wanger.Thought thought = wanger.getThought(); + thought.know(); // 输出:沉默王二的年龄29 + + // 使用.new的形式创建内部类对象 + Wanger.Thought thought1 = wanger.new Thought(); + thought1.know(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/twelve/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/twelve/Cmower.java new file mode 100644 index 0000000000..3fe1f16367 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/twelve/Cmower.java @@ -0,0 +1,26 @@ +package com.cmower.java_demo.twelve; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Cmower { + protected static Logger logger = LoggerFactory.getLogger(Cmower.class); + public static void check(String input) { + if (input == null) { + throw new OrderException("输入值不能为空"); + } + + if (input.length() < 10) { + throw new OrderException("字符串长度不能少于10个"); + } + } + + public static void main(String[] args) { + try { + check(null); + } catch (OrderException e) { + logger.error(e.getMessage(), e); + } + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/twelve/OrderException.java b/java_demo/src/main/java/com/cmower/java_demo/twelve/OrderException.java new file mode 100644 index 0000000000..8b0fdc29b0 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/twelve/OrderException.java @@ -0,0 +1,12 @@ +package com.cmower.java_demo.twelve; +public class OrderException extends RuntimeException { + + public OrderException() { + super(); + } + + public OrderException(String message) { + super(message); + } + +} \ No newline at end of file diff --git a/java_demo/src/main/java/log4j.properties b/java_demo/src/main/java/log4j.properties new file mode 100644 index 0000000000..847d61f6e6 --- /dev/null +++ b/java_demo/src/main/java/log4j.properties @@ -0,0 +1,33 @@ +# Rules reminder: +# DEBUG < INFO < WARN < ERROR < FATAL + +# Global logging configuration +log4j.rootLogger=DEBUG,consolelog,filelog,errorlog +log4j.additivity.org.apache=true + +log4j.appender.consolelog=org.apache.log4j.ConsoleAppender +log4j.appender.consolelog.Threshold=DEBUG +log4j.appender.consolelog.ImmediateFlush=true +log4j.appender.consolelog.Target=System.out +log4j.appender.consolelog.layout=org.apache.log4j.PatternLayout +log4j.appender.consolelog.layout.ConversionPattern=%5p %d %C: %m%n + +log4j.appender.filelog = org.apache.log4j.RollingFileAppender +log4j.appender.filelog.Threshold = DEBUG +log4j.appender.filelog.ImmediateFlush=true +log4j.appender.filelog.Append = true +log4j.appender.filelog.File = logs/log.log +log4j.appender.filelog.MaxFileSize=30720KB +log4j.appender.filelog.MaxBackupIndex=20 +log4j.appender.filelog.layout = org.apache.log4j.PatternLayout +log4j.appender.filelog.layout.ConversionPattern =%5p %d %C: %m%n + +log4j.appender.errorlog = org.apache.log4j.RollingFileAppender +log4j.appender.errorlog.Threshold = ERROR +log4j.appender.errorlog.ImmediateFlush=true +log4j.appender.errorlog.Append = true +log4j.appender.errorlog.File = logs/error.log +log4j.appender.errorlog.MaxFileSize=30720KB +log4j.appender.errorlog.MaxBackupIndex=20 +log4j.appender.errorlog.layout = org.apache.log4j.PatternLayout +log4j.appender.errorlog.layout.ConversionPattern =%5p %d %C\: %m%n \ No newline at end of file From db93faaf6815566c18b706ec0beaa66d5227e80f Mon Sep 17 00:00:00 2001 From: qinggee Date: Thu, 16 May 2019 12:32:27 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmower/java_demo/fanxing/Arraylist.java | 15 ++++++ .../com/cmower/java_demo/fanxing/Cmower.java | 53 +++++++++++++------ .../cmower/java_demo/fanxing/Collections.java | 8 +++ 3 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/fanxing/Collections.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java index e69bde5c79..0de4446cda 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Arraylist.java @@ -52,4 +52,19 @@ public String toString() { } return sb.toString(); } + + public int size() { + return size; + } + + E elementData(int index) { + return (E) elementData[index]; + } + + public E set(int index, E element) { + + E oldValue = elementData(index); + elementData[index] = element; + return oldValue; + } } \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java index c8ccec5c9d..23f1c4b7bb 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Cmower.java @@ -1,21 +1,42 @@ package com.cmower.java_demo.fanxing; +import java.util.Collections; + public class Cmower { - - public static void main(String[] args) { - Arraylist list = new Arraylist<>(4); - - Wanger wanger = new Wanger(); - list.add(wanger); - - Wangxiaoer wangxiaoer = new Wangxiaoer(); - list.add(wangxiaoer); - - Arraylist list1 = list; - Wanger w = list1.get(1); - System.out.println(w); - - System.out.println(list1.contains(wangxiaoer)); - } + + public static void main(String[] args) { + Arraylist list = new Arraylist<>(4); + + Wanger wanger = new Wanger(); + list.add(wanger); + + Wangxiaoer wangxiaoer = new Wangxiaoer(); + list.add(wangxiaoer); + + Arraylist list1 = list; + Wanger w = list1.get(1); + System.out.println(w); + + System.out.println(list1.contains(wangxiaoer)); + + System.out.println(list1 == list); + + Arraylist list2 = new Arraylist<>(4); + list2.add(null); + // list2.add(new Wanger()); + // list2.add(new Wangxiaoer()); + + Wanger w2 = list2.get(0); + +Arraylist list3 = new Arraylist<>(4); +list3.add(new Wanger()); +list3.add(new Wangxiaoer()); + +//Collections + +// Wanger w3 = list3.get(0); + + + } } diff --git a/java_demo/src/main/java/com/cmower/java_demo/fanxing/Collections.java b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Collections.java new file mode 100644 index 0000000000..49028b9ad5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/fanxing/Collections.java @@ -0,0 +1,8 @@ +package com.cmower.java_demo.fanxing; + +public class Collections { + public static void copy(Arraylist dest, Arraylist src) { + for (int i = 0; i < src.size(); i++) + dest.set(i, src.get(i)); + } +} From a3881b41ccddab84a5da39ceb1e2bc3713759d34 Mon Sep 17 00:00:00 2001 From: qinggee Date: Wed, 5 Jun 2019 11:11:19 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cmower/java_demo/jihe/Cmower.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/jihe/Cmower.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/jihe/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/jihe/Cmower.java new file mode 100644 index 0000000000..3fb47fa7c5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/jihe/Cmower.java @@ -0,0 +1,21 @@ +package com.cmower.java_demo.jihe; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Cmower { + public static void main(String[] args) { + +List list1 = new ArrayList<>(); +list1.add("沉"); +list1.add("默"); +list1.add("王"); +list1.add("二"); + +//Collections.sort(list1); // 先要排序 +System.out.println(Collections.binarySearch(list1, "王")); // 2 + } +} + + From 3ccc4916029e61d1e3e93c9268aaa001ce8a814f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Thu, 6 Jun 2019 06:55:56 +0800 Subject: [PATCH 12/22] aa --- .../cmower/java_demo/duoxiancheng/Cmower.java | 39 +++++++++++++++++++ .../com/cmower/java_demo/xuliehua/Test.java | 37 ++++++++++++++++++ .../com/cmower/java_demo/xuliehua/Wanger.java | 34 ++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/duoxiancheng/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua/Wanger.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/duoxiancheng/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/duoxiancheng/Cmower.java new file mode 100644 index 0000000000..f96a0e9646 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/duoxiancheng/Cmower.java @@ -0,0 +1,39 @@ +package com.cmower.java_demo.duoxiancheng; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class Cmower { + + public static AtomicInteger count = new AtomicInteger(); + + public static int getCount() { + return count.get(); + } + + public static void addCount() { + count.incrementAndGet(); + } + + public static void main(String[] args) { + ExecutorService executorService = new ThreadPoolExecutor(10, 1000, 60L, TimeUnit.SECONDS, + new ArrayBlockingQueue(10)); + + for (int i = 0; i < 1000; i++) { + Runnable r = new Runnable() { + + @Override + public void run() { + Cmower.addCount(); + } + }; + executorService.execute(r); + } + executorService.shutdown(); + System.out.println(Cmower.count); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Test.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Test.java new file mode 100644 index 0000000000..ae9fbd4d81 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Test.java @@ -0,0 +1,37 @@ +package com.cmower.java_demo.xuliehua; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +public class Test { + + public static void main(String[] args) { + // 初始化 + Wanger wanger = new Wanger(); + wanger.setName("王二"); + wanger.setAge(18); + System.out.println(wanger); + + // 把对象写到文件中 + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("chenmo"));){ + oos.writeObject(wanger); + } catch (IOException e) { + e.printStackTrace(); + } + + Wanger.pre ="不沉默"; + + // 从文件中读出对象 + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("chenmo")));){ + Wanger wanger1 = (Wanger) ois.readObject(); + System.out.println(wanger1); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Wanger.java new file mode 100644 index 0000000000..503c1a7ce0 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua/Wanger.java @@ -0,0 +1,34 @@ +package com.cmower.java_demo.xuliehua; + +import java.io.Serializable; + +class Wanger implements Serializable { + private static final long serialVersionUID = -2095916884810199532L; + + private String name; + private int age; + + public static String pre = "沉默"; + transient String meizi = "王三"; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Wanger{" + "name=" + name + ",age=" + age + ",pre=" + pre + ",meizi=" + meizi + "}"; + } +} From ab88d1675d78a5c5cbf35db62d6741515ca93f9b Mon Sep 17 00:00:00 2001 From: qinggee Date: Tue, 11 Jun 2019 16:32:41 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java_demo/chenmo | Bin 0 -> 106 bytes java_demo/pom.xml | 17 ++++++- .../com/cmower/java_demo/xuliehua1/Test.java | 39 ++++++++++++++ .../cmower/java_demo/xuliehua1/Wanger.java | 48 ++++++++++++++++++ .../cmower/java_demo/xuliehua1/Wanger2.java | 34 +++++++++++++ .../cmower/java_demo/xuliehua1/Wanger3.java | 35 +++++++++++++ 6 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 java_demo/chenmo create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger2.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger3.java diff --git a/java_demo/chenmo b/java_demo/chenmo new file mode 100644 index 0000000000000000000000000000000000000000..2145ef3d4ddfd52fbb9b47624f63122b93faa356 GIT binary patch literal 106 zcmZ4UmVvdnh(RqmKUXg~H@`f!NG~g~EHOSMH8)?cqBJKnHKR1qP%k_&FFm!$_|eOA zn^vjvi7+uRc``63rl2)P< literal 0 HcmV?d00001 diff --git a/java_demo/pom.xml b/java_demo/pom.xml index c2699ec5b0..2fedad743a 100644 --- a/java_demo/pom.xml +++ b/java_demo/pom.xml @@ -1,5 +1,4 @@ - + 4.0.0 com.cmower @@ -45,6 +44,20 @@ 1.18.6 provided + + + + com.alibaba + fastjson + 1.2.54 + + + + org.codehaus.groovy + groovy-all + 2.4.7 + + diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Test.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Test.java new file mode 100644 index 0000000000..fc589e717e --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Test.java @@ -0,0 +1,39 @@ +package com.cmower.java_demo.xuliehua1; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectStreamField; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayList; + +public class Test { + public static void main(String[] args) { +// 初始化 +Wanger3 wanger = new Wanger3(); +wanger.setName("王二"); +wanger.setAge(18); +System.out.println(wanger); + +// 把对象写到文件中 +try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("chenmo"));) { + oos.writeObject(wanger); +} catch (IOException e) { + e.printStackTrace(); +} + +// 从文件中读出对象 +try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("chenmo")));) { + Wanger3 wanger1 = (Wanger3) ois.readObject(); + System.out.println(wanger1); +} catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); +} + + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger.java new file mode 100644 index 0000000000..6aaf65dbd5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger.java @@ -0,0 +1,48 @@ +package com.cmower.java_demo.xuliehua1; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +class Wanger implements Externalizable { + private String name; + private int age; + + public Wanger() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Wanger{" + "name=" + name + ",age=" + age + "}"; + } + +@Override +public void writeExternal(ObjectOutput out) throws IOException { + out.writeObject(name); + out.writeInt(age); +} + +@Override +public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + name = (String) in.readObject(); + age = in.readInt(); +} + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger2.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger2.java new file mode 100644 index 0000000000..55ab60d3b5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger2.java @@ -0,0 +1,34 @@ +package com.cmower.java_demo.xuliehua1; + +import java.io.Serializable; + +@SuppressWarnings("serial") +class Wanger2 implements Serializable { + private String name; + private int age; + + public Wanger2() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Wanger{" + "name=" + name + ",age=" + age + "}"; + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger3.java b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger3.java new file mode 100644 index 0000000000..95c1ada4e6 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/xuliehua1/Wanger3.java @@ -0,0 +1,35 @@ +package com.cmower.java_demo.xuliehua1; + +import java.io.Serializable; + +class Wanger3 implements Serializable { + private static final long serialVersionUID = 1L; + + private String name; + private int age; + + public Wanger3() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Wanger{" + "name=" + name + ",age=" + age + "}"; + } + +} From 9b1720f983e6354c5255018964b4e3394db7fff3 Mon Sep 17 00:00:00 2001 From: qinggee Date: Tue, 18 Jun 2019 15:10:43 +0800 Subject: [PATCH 14/22] a --- .../com/cmower/java_demo/groovy/Wanger.java | 20 ++++++++++++++ .../java/com/cmower/java_demo/tdd/Ticket.java | 14 ++++++++++ .../com/cmower/java_demo/tdd/TicketTest.java | 26 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/groovy/Wanger.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/groovy/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/groovy/Wanger.java new file mode 100644 index 0000000000..9c6a344450 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/groovy/Wanger.java @@ -0,0 +1,20 @@ +package com.cmower.java_demo.groovy; + +import java.util.ArrayList; +import java.util.List; + +public class Wanger { + + public static void main(String[] args) { + List list = new ArrayList<>(); + list.add("沉默"); + list.add("王二"); + + for (String s : list) { + System.out.println(s); + } + + + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java b/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java new file mode 100644 index 0000000000..37b6bb4aa5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java @@ -0,0 +1,14 @@ +package com.cmower.java_demo.tdd; + +import java.math.BigDecimal; + +public class Ticket { + + public BigDecimal sale(int count) { + if (count == 1) { + return new BigDecimal("99"); + } + return BigDecimal.ZERO; + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java b/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java new file mode 100644 index 0000000000..6ba65a8f8d --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java @@ -0,0 +1,26 @@ +package com.cmower.java_demo.tdd; + +import static org.junit.Assert.*; + +import java.math.BigDecimal; + +import org.junit.Before; +import org.junit.Test; + +public class TicketTest { + + private Ticket ticket; + + @Before + public void setUp() throws Exception { + ticket = new Ticket(); + } + + @Test + public void test() { + BigDecimal total = new BigDecimal("99"); + + assertEquals(total, ticket.sale(1)); + } + +} From a22c237bc7fa2536a93d5160ff41479730be6249 Mon Sep 17 00:00:00 2001 From: qinggee Date: Tue, 18 Jun 2019 16:33:20 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E5=95=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cmower/java_demo/tdd/Ticket.java | 8 +++++--- .../com/cmower/java_demo/tdd/TicketTest.java | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java b/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java index 37b6bb4aa5..3bcd6eab80 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java +++ b/java_demo/src/main/java/com/cmower/java_demo/tdd/Ticket.java @@ -3,12 +3,14 @@ import java.math.BigDecimal; public class Ticket { + private final static int PRICE = 99; public BigDecimal sale(int count) { - if (count == 1) { - return new BigDecimal("99"); + if (count < 0) { + throw new IllegalArgumentException("销量不能为负数"); } - return BigDecimal.ZERO; + + return new BigDecimal(PRICE * count); } } diff --git a/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java b/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java index 6ba65a8f8d..c348399277 100644 --- a/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java +++ b/java_demo/src/main/java/com/cmower/java_demo/tdd/TicketTest.java @@ -17,10 +17,25 @@ public void setUp() throws Exception { } @Test - public void test() { + public void testOne() { BigDecimal total = new BigDecimal("99"); assertEquals(total, ticket.sale(1)); } + + @Test(expected=IllegalArgumentException.class) + public void testNegative() { + ticket.sale(-1); + } + + @Test + public void testZero() { + assertEquals(BigDecimal.ZERO, ticket.sale(0)); + } + + @Test + public void test1000() { + assertEquals(new BigDecimal(99000), ticket.sale(1000)); + } } From 95efd8cf566cff5cf88647c28421320175fb27c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Tue, 23 Jul 2019 08:58:58 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java_demo/chenmo | Bin 0 -> 104 bytes java_demo/src/main/java/application.xml | 12 ++++++ .../java/com/cmower/java_demo/Pachong.java | 40 ++++++++++++++++++ .../main/java/com/cmower/java_demo/Test.java | 19 +++++++++ .../com/cmower/java_demo/ioc/Heshang.java | 5 +++ .../com/cmower/java_demo/ioc/Laofang.java | 11 +++++ .../com/cmower/java_demo/ioc/Laowang.java | 12 ++++++ .../java/com/cmower/java_demo/ioc/Test.java | 14 ++++++ .../java/com/cmower/java_demo/ioc/Xiaoer.java | 14 ++++++ .../com/cmower/java_demo/ioc/Xiaosan.java | 9 ++++ .../shejimoshi/zuhe/anquan/Cmower.java | 30 +++++++++++++ .../shejimoshi/zuhe/anquan/Diceng.java | 7 +++ .../shejimoshi/zuhe/anquan/Pirate.java | 9 ++++ .../shejimoshi/zuhe/anquan/Shangceng.java | 20 +++++++++ .../shejimoshi/zuhe/touming/Cmower.java | 30 +++++++++++++ .../shejimoshi/zuhe/touming/Diceng.java | 24 +++++++++++ .../shejimoshi/zuhe/touming/Pirate.java | 15 +++++++ .../shejimoshi/zuhe/touming/Shangceng.java | 20 +++++++++ .../zuhe/zixiawangshang/Cmower.java | 28 ++++++++++++ .../zuhe/zixiawangshang/Diceng.java | 7 +++ .../zuhe/zixiawangshang/Pirate.java | 19 +++++++++ .../zuhe/zixiawangshang/Shangceng.java | 21 +++++++++ 22 files changed, 366 insertions(+) create mode 100644 java_demo/chenmo create mode 100644 java_demo/src/main/java/application.xml create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Pachong.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Heshang.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Laofang.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Laowang.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaoer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaosan.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Diceng.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Pirate.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Shangceng.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Diceng.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Pirate.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Shangceng.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Diceng.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Pirate.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Shangceng.java diff --git a/java_demo/chenmo b/java_demo/chenmo new file mode 100644 index 0000000000000000000000000000000000000000..08191d9f7053c1e7637077dd8dea408e9caf0cf0 GIT binary patch literal 104 zcmZ4UmVvdnh(RSeKUXg~H@`f!NG~g~EHOSMH8)?cqBJKnHKR09FFY|XJ+DFej#``Y^EMCFZ7wdDU F2LQ0IB?$lk literal 0 HcmV?d00001 diff --git a/java_demo/src/main/java/application.xml b/java_demo/src/main/java/application.xml new file mode 100644 index 0000000000..643d04564b --- /dev/null +++ b/java_demo/src/main/java/application.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/java_demo/src/main/java/com/cmower/java_demo/Pachong.java b/java_demo/src/main/java/com/cmower/java_demo/Pachong.java new file mode 100644 index 0000000000..5aaf4a22d6 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Pachong.java @@ -0,0 +1,40 @@ +package com.cmower.java_demo; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLEncoder; + +public class Pachong { + + public static void main(String[] args) throws IOException { + String keyWord="º∆À„ª˙"; + keyWord=URLEncoder.encode(keyWord,"utf-8"); + System.out.println(keyWord); + URL url = new URL("http://opac.peihua.cn/opac_two/search2/searchout.jsp?suchen_word="+keyWord); + HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); + httpUrlConn.setRequestMethod("POST"); + httpUrlConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + // ªÒ»° ‰»Î¡˜ + InputStream input = httpUrlConn.getInputStream(); + InputStreamReader read = new InputStreamReader(input, "gbk"); + // ¥¥Ω®ª∫≥«¯ + BufferedReader br = new BufferedReader(read); + // ∂¡»°ƒ⁄»› + String result = br.readLine(); + while (result != null) { + System.out.println(result); + result=br.readLine(); + } + br.close(); + read.close(); + input.close(); + httpUrlConn.disconnect(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/Test.java b/java_demo/src/main/java/com/cmower/java_demo/Test.java new file mode 100644 index 0000000000..95cf387c93 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Test.java @@ -0,0 +1,19 @@ +package com.cmower.java_demo; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +public class Test { + private final static Lock lock = new ReentrantLock(); + + public static void main(String[] args) { + try { + lock.tryLock(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + System.out.println("finally"); + lock.unlock(); + } + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Heshang.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Heshang.java new file mode 100644 index 0000000000..5365548613 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Heshang.java @@ -0,0 +1,5 @@ +package com.cmower.java_demo.ioc; + +public interface Heshang { + void saodi(); +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Laofang.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Laofang.java new file mode 100644 index 0000000000..f314d89763 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Laofang.java @@ -0,0 +1,11 @@ +package com.cmower.java_demo.ioc; + +public class Laofang { + public static Heshang getSaodiseng() { + Xiaoer xiaoer = new Xiaoer(); + if (xiaoer.isYijinjing()) { + return new Xiaosan(); + } + return xiaoer; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Laowang.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Laowang.java new file mode 100644 index 0000000000..d62fc2be22 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Laowang.java @@ -0,0 +1,12 @@ +package com.cmower.java_demo.ioc; + +public class Laowang { + private Heshang saodiseng; + + public Laowang(Heshang saodiseng) { + this.saodiseng = saodiseng; + } + public void mingling() { + this.saodiseng.saodi(); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Test.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Test.java new file mode 100644 index 0000000000..5ae2f02b36 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Test.java @@ -0,0 +1,14 @@ +package com.cmower.java_demo.ioc; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class Test { + + public static void main(String[] args) { + ApplicationContext context = new ClassPathXmlApplicationContext("application.xml"); + Laowang laowang = (Laowang) context.getBean("laowang"); + laowang.mingling(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaoer.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaoer.java new file mode 100644 index 0000000000..6910ec4d7b --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaoer.java @@ -0,0 +1,14 @@ +package com.cmower.java_demo.ioc; + +public class Xiaoer implements Heshang { + + @Override + public void saodi() { + System.out.println("小二我在扫达摩院的地"); + } + + public boolean isYijinjing() { + // 星期三的时候小二和尚要练易筋经 + return false; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaosan.java b/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaosan.java new file mode 100644 index 0000000000..45d6925168 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/ioc/Xiaosan.java @@ -0,0 +1,9 @@ +package com.cmower.java_demo.ioc; + +public class Xiaosan implements Heshang { + + @Override + public void saodi() { + System.out.println("小三我在扫达摩院的地"); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Cmower.java new file mode 100644 index 0000000000..6ac41a692a --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Cmower.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo.shejimoshi.zuhe.anquan; + +public class Cmower { + + public static void main(String[] args) { +// boss 杰克 +Shangceng jieke = new Shangceng(); + +// 中层领导 瘪三 +Shangceng biesan = new Shangceng(); + +// 底层海盗 王二 +Diceng wanger = new Diceng(); + +biesan.add(wanger); +jieke.add(biesan); + +display(jieke); + } + +public static void display(Shangceng boos) { + for (Pirate pirate : boos.getChildren()) { + if (pirate instanceof Diceng) { + pirate.snatchGoldCoins(); + } else { + display((Shangceng) pirate); + } + } +} +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Diceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Diceng.java new file mode 100644 index 0000000000..4695ab2656 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Diceng.java @@ -0,0 +1,7 @@ +package com.cmower.java_demo.shejimoshi.zuhe.anquan; + +public class Diceng extends Pirate { + public void snatchGoldCoins() { + System.out.println("抢完金币,还得上交一大笔"); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Pirate.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Pirate.java new file mode 100644 index 0000000000..cabc6a79c4 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Pirate.java @@ -0,0 +1,9 @@ +package com.cmower.java_demo.shejimoshi.zuhe.anquan; + +public abstract class Pirate { + + public void snatchGoldCoins() { + System.out.println("抢金币了"); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Shangceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Shangceng.java new file mode 100644 index 0000000000..80aafbc2a8 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/anquan/Shangceng.java @@ -0,0 +1,20 @@ +package com.cmower.java_demo.shejimoshi.zuhe.anquan; + +import java.util.ArrayList; +import java.util.List; + +public class Shangceng extends Pirate { + private List component = new ArrayList<>(); + + public void add(Pirate pirate) { + component.add(pirate); + } + + public void remove(Pirate pirate) { + component.remove(pirate); + } + + public List getChildren() { + return this.component; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Cmower.java new file mode 100644 index 0000000000..bb362871e6 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Cmower.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo.shejimoshi.zuhe.touming; + +public class Cmower { + + public static void main(String[] args) { +// boss 杰克 +Shangceng jieke = new Shangceng(); + +// 中层领导 瘪三 +Shangceng biesan = new Shangceng(); + +// 底层海盗 王二 +Diceng wanger = new Diceng(); + +biesan.add(wanger); +jieke.add(biesan); + +display(jieke); + } + +public static void display(Pirate boos) { + for (Pirate pirate : boos.getChildren()) { + if (pirate instanceof Diceng) { + pirate.snatchGoldCoins(); + } else { + display(pirate); + } + } +} +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Diceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Diceng.java new file mode 100644 index 0000000000..c6768396d1 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Diceng.java @@ -0,0 +1,24 @@ +package com.cmower.java_demo.shejimoshi.zuhe.touming; + +import java.util.List; + +public class Diceng extends Pirate { + public void snatchGoldCoins() { + System.out.println("抢完金币,还得上交一大笔"); + } + + @Deprecated + public void add(Pirate pirate) throws UnsupportedOperationException { + throw new UnsupportedOperationException(); + } + + @Deprecated + public void remove(Pirate pirate) throws UnsupportedOperationException { + throw new UnsupportedOperationException(); + } + + @Deprecated + public List getChildren() throws UnsupportedOperationException { + throw new UnsupportedOperationException(); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Pirate.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Pirate.java new file mode 100644 index 0000000000..4a65c0cfe3 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Pirate.java @@ -0,0 +1,15 @@ +package com.cmower.java_demo.shejimoshi.zuhe.touming; + +import java.util.List; + +public abstract class Pirate { + + public abstract void add(Pirate pirate); + public abstract void remove(Pirate pirate); + public abstract List getChildren(); + + public void snatchGoldCoins() { + System.out.println("抢金币了"); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Shangceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Shangceng.java new file mode 100644 index 0000000000..82560a76d7 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/touming/Shangceng.java @@ -0,0 +1,20 @@ +package com.cmower.java_demo.shejimoshi.zuhe.touming; + +import java.util.ArrayList; +import java.util.List; + +public class Shangceng extends Pirate { + private List component = new ArrayList<>(); + + public void add(Pirate pirate) { + component.add(pirate); + } + + public void remove(Pirate pirate) { + component.remove(pirate); + } + + public List getChildren() { + return this.component; + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Cmower.java new file mode 100644 index 0000000000..d16bac4057 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Cmower.java @@ -0,0 +1,28 @@ +package com.cmower.java_demo.shejimoshi.zuhe.zixiawangshang; + +public class Cmower { + + public static void main(String[] args) { +// boss 杰克 +Shangceng jieke = new Shangceng(); + +// 中层领导 瘪三 +Shangceng biesan = new Shangceng(); + +// 底层海盗 王二 +Diceng wanger = new Diceng(); + +biesan.add(wanger); +jieke.add(biesan); + +display(wanger); + } + +public static void display(Pirate child) { + if (child.getParent() != null) { + display(child.getParent()); + } else { + child.snatchGoldCoins(); + } +} +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Diceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Diceng.java new file mode 100644 index 0000000000..f1d7d852f6 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Diceng.java @@ -0,0 +1,7 @@ +package com.cmower.java_demo.shejimoshi.zuhe.zixiawangshang; + +public class Diceng extends Pirate { + public void snatchGoldCoins() { + System.out.println("抢完金币,还得上交一大笔"); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Pirate.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Pirate.java new file mode 100644 index 0000000000..b07352467c --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Pirate.java @@ -0,0 +1,19 @@ +package com.cmower.java_demo.shejimoshi.zuhe.zixiawangshang; + +public abstract class Pirate { + + private Pirate parent; + + public Pirate getParent() { + return parent; + } + + public void setParent(Pirate parent) { + this.parent = parent; + } + + public void snatchGoldCoins() { + System.out.println("抢金币了"); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Shangceng.java b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Shangceng.java new file mode 100644 index 0000000000..518ca79121 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/shejimoshi/zuhe/zixiawangshang/Shangceng.java @@ -0,0 +1,21 @@ +package com.cmower.java_demo.shejimoshi.zuhe.zixiawangshang; + +import java.util.ArrayList; +import java.util.List; + +public class Shangceng extends Pirate { + private List component = new ArrayList<>(); + + public void add(Pirate pirate) { + pirate.setParent(this); + component.add(pirate); + } + + public void remove(Pirate pirate) { + component.remove(pirate); + } + + public List getChildren() { + return this.component; + } +} From 7597b3f66fe4b0f02dfa32c2bcdd1b787ebb2cf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Tue, 23 Jul 2019 08:59:28 +0800 Subject: [PATCH 17/22] Update pom.xml --- java_demo/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java_demo/pom.xml b/java_demo/pom.xml index c2699ec5b0..b795de5871 100644 --- a/java_demo/pom.xml +++ b/java_demo/pom.xml @@ -12,6 +12,7 @@ UTF-8 + 4.3.2.RELEASE @@ -45,6 +46,13 @@ 1.18.6 provided + + + + org.springframework + spring-context-support + ${spring.version} + From d2413fcaebffce04ee6f4b6200985bcfe6965e25 Mon Sep 17 00:00:00 2001 From: qinggee Date: Fri, 26 Jul 2019 14:05:57 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java_demo/chenmo | Bin 106 -> 0 bytes java_demo/chenmo.txt | 0 java_demo/chenmo/chenmo.txt | 0 ...7\346\234\254\346\226\207\346\241\243.txt" | 0 .../main/java/com/cmower/java_demo/Test.java | 27 ++++++++++++++++ .../com/cmower/java_demo/mianshiti/Test.java | 15 +++++++++ .../java/com/cmower/java_demo/nio/Wanger.java | 30 ++++++++++++++++++ ...1\351\273\230\347\216\213\344\272\214.txt" | 1 + 8 files changed, 73 insertions(+) delete mode 100644 java_demo/chenmo create mode 100644 java_demo/chenmo.txt create mode 100644 java_demo/chenmo/chenmo.txt create mode 100644 "java_demo/chenmo/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" create mode 100644 java_demo/src/main/java/com/cmower/java_demo/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/mianshiti/Test.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/nio/Wanger.java create mode 100644 "java_demo/\346\262\211\351\273\230\347\216\213\344\272\214.txt" diff --git a/java_demo/chenmo b/java_demo/chenmo deleted file mode 100644 index 2145ef3d4ddfd52fbb9b47624f63122b93faa356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmZ4UmVvdnh(RqmKUXg~H@`f!NG~g~EHOSMH8)?cqBJKnHKR1qP%k_&FFm!$_|eOA zn^vjvi7+uRc``63rl2)P< diff --git a/java_demo/chenmo.txt b/java_demo/chenmo.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/java_demo/chenmo/chenmo.txt b/java_demo/chenmo/chenmo.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git "a/java_demo/chenmo/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/java_demo/chenmo/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" new file mode 100644 index 0000000000..e69de29bb2 diff --git a/java_demo/src/main/java/com/cmower/java_demo/Test.java b/java_demo/src/main/java/com/cmower/java_demo/Test.java new file mode 100644 index 0000000000..f51763214b --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/Test.java @@ -0,0 +1,27 @@ +package com.cmower.java_demo; + +public class Test { + + public static void main(String[] args) { +char c = '沉'; +char a = '沉' + 1; +System.out.println(a); // 沊 + + +char b = '王'; +char d = '王' + 31; +System.out.println(d); // 玪 + +String str1 = String.valueOf(a) + String.valueOf(b); +System.out.println(str1); // 沊王 + +String str2 = String.valueOf(c) + String.valueOf(d); +System.out.println(str2); // 沉玪 + +System.out.println(str1.equals(str2)); // false +System.out.println(String. format("str1:%d | str2:%d", str1. hashCode(),str2. hashCode())); +// str1:890945 | str2:890945 + + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/mianshiti/Test.java b/java_demo/src/main/java/com/cmower/java_demo/mianshiti/Test.java new file mode 100644 index 0000000000..2a5a3af85f --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/mianshiti/Test.java @@ -0,0 +1,15 @@ +package com.cmower.java_demo.mianshiti; + +public class Test { + + public static void main(String[] args) { + final StringBuilder sb = new StringBuilder("沉默"); + changeParam(sb); + System.out.println(sb); // 输出 沉默王二 + } + + static void changeParam(final StringBuilder s) { + System.out.println("参数为" + s); + s.append("王二"); + } +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/nio/Wanger.java b/java_demo/src/main/java/com/cmower/java_demo/nio/Wanger.java new file mode 100644 index 0000000000..f37b114de3 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/nio/Wanger.java @@ -0,0 +1,30 @@ +package com.cmower.java_demo.nio; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.AsynchronousFileChannel; +import java.nio.channels.CompletionHandler; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.concurrent.ExecutionException; + +public class Wanger { + +public static void main(String[] args) throws IOException, InterruptedException, ExecutionException { + Path file = Paths.get("沉默王二.txt"); + AsynchronousFileChannel channel = AsynchronousFileChannel.open(file); + channel.read(ByteBuffer.allocate(100_000), 0, null, new CompletionHandler() { + public void completed(Integer result, ByteBuffer attachment) { + System.out.println(result); + } + + public void failed(Throwable exc, ByteBuffer attachment) { + System.out.println(exc.getMessage()); + } + }); + + System.out.println("主线程继续做事情"); + +} + +} diff --git "a/java_demo/\346\262\211\351\273\230\347\216\213\344\272\214.txt" "b/java_demo/\346\262\211\351\273\230\347\216\213\344\272\214.txt" new file mode 100644 index 0000000000..edc4ee1664 --- /dev/null +++ "b/java_demo/\346\262\211\351\273\230\347\216\213\344\272\214.txt" @@ -0,0 +1 @@ +一个有趣的程序员 \ No newline at end of file From 7654658888d85e92f9fbfbf529f4dc28a6bef0a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Sat, 27 Jul 2019 10:04:54 +0800 Subject: [PATCH 19/22] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index af099f9aee..af230a8185 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ java_demo/logs/error.log java_demo/src/main/main.iml java_demo/src/test/test.iml .idea/vcs.xml +.DS_Store From ab81208304e479c057aeaebf905ac1ecac3bda88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Sat, 3 Aug 2019 17:23:45 +0800 Subject: [PATCH 20/22] gengxin --- .../cmower/java_demo/dongtaidaili/Cmower.java | 16 +++++++++++++++ .../cmower/java_demo/dongtaidaili/Writer.java | 6 ++++++ .../java_demo/dongtaidaili/WriterHandler.java | 20 +++++++++++++++++++ .../java_demo/dongtaidaili/WriterImpl.java | 11 ++++++++++ 4 files changed, 53 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Writer.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterHandler.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterImpl.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Cmower.java new file mode 100644 index 0000000000..a500ca873c --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Cmower.java @@ -0,0 +1,16 @@ +package com.cmower.java_demo.dongtaidaili; + +import java.lang.reflect.Proxy; + +public class Cmower { + + public static void main(String[] args) { + WriterImpl writer = new WriterImpl(); + WriterHandler writerHandler = new WriterHandler(writer); + + Writer proxy = (Writer) Proxy.newProxyInstance(WriterImpl.class.getClassLoader(), + WriterImpl.class.getInterfaces(), writerHandler); + proxy.writeWords(); + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Writer.java b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Writer.java new file mode 100644 index 0000000000..dad4c22fa3 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/Writer.java @@ -0,0 +1,6 @@ +package com.cmower.java_demo.dongtaidaili; + +// 抽象类接口 +public interface Writer { + void writeWords(); +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterHandler.java b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterHandler.java new file mode 100644 index 0000000000..5013e11ce1 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterHandler.java @@ -0,0 +1,20 @@ +package com.cmower.java_demo.dongtaidaili; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; + +// 动态代理类:实际调用被代理类的方法和属性的类 +public class WriterHandler implements InvocationHandler { + private Object target; + public WriterHandler(Object target) { + this.target = target; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + System.out.println("invoke"); + Object result = method.invoke(target, args); + return result; + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterImpl.java b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterImpl.java new file mode 100644 index 0000000000..1473cfacbf --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/dongtaidaili/WriterImpl.java @@ -0,0 +1,11 @@ +package com.cmower.java_demo.dongtaidaili; + +// 被代理类(具体实现抽象接口的类) +public class WriterImpl implements Writer{ + + @Override + public void writeWords() { + System.out.println("写个锤子"); + } + +} From 4661fad3b83657a5a87d5b492836a4e17499a743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=89=E9=BB=98=E7=8E=8B=E4=BA=8C?= Date: Sun, 4 Aug 2019 00:49:32 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E5=86=85=E5=AD=98=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java_demo/chenmo~HEAD | Bin 104 -> 0 bytes java_demo/cmower1.txt | Bin 0 -> 1024 bytes .../java_demo/neicunyingshe/Cmower.java | 31 ++++++++ .../java_demo/neicunyingshe/Cmower1.java | 33 +++++++++ .../java_demo/neicunyingshe/Cmower2.java | 68 ++++++++++++++++++ java_demo/src/main/resource/cmower.txt | 1 + .../main/resource/cmower1.txt} | 0 java_demo/src/main/resource/fileToWriteTo.txt | 0 8 files changed, 133 insertions(+) delete mode 100644 java_demo/chenmo~HEAD create mode 100644 java_demo/cmower1.txt create mode 100644 java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower1.java create mode 100644 java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower2.java create mode 100644 java_demo/src/main/resource/cmower.txt rename java_demo/{chenmo.txt => src/main/resource/cmower1.txt} (100%) create mode 100644 java_demo/src/main/resource/fileToWriteTo.txt diff --git a/java_demo/chenmo~HEAD b/java_demo/chenmo~HEAD deleted file mode 100644 index 08191d9f7053c1e7637077dd8dea408e9caf0cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmZ4UmVvdnh(RSeKUXg~H@`f!NG~g~EHOSMH8)?cqBJKnHKR09FFY|XJ+DFej#``Y^EMCFZ7wdDU F2LQ0IB?$lk diff --git a/java_demo/cmower1.txt b/java_demo/cmower1.txt new file mode 100644 index 0000000000000000000000000000000000000000..5a7846fbd2acb2176c6ad9b08a22ea8f9b81202e GIT binary patch literal 1024 zcmaF1sq^LT8PEH=pX};+zo+MMLsxie($m%z&lYq%-P7>2f8vY%vtQ2G_GD-Gi|y+l YH*`PQJLg41E5j%l4S~@R7zQB#0F0X@7XSbN literal 0 HcmV?d00001 diff --git a/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower.java new file mode 100644 index 0000000000..62d79f21e5 --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower.java @@ -0,0 +1,31 @@ +package com.cmower.java_demo.neicunyingshe; + +import java.io.IOException; +import java.nio.CharBuffer; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.channels.FileChannel.MapMode; +import java.nio.charset.Charset; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class Cmower { + + public static void main(String[] args) { + CharBuffer charBuffer = null; + ClassLoader classLoader = Cmower.class.getClassLoader(); + Path path = Paths.get(classLoader.getResource("cmower.txt").getPath()); + try (FileChannel fileChannel = FileChannel.open(path)) { + MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_ONLY, 0, fileChannel.size()); + + if (mappedByteBuffer != null) { + charBuffer = Charset.forName("UTF-8").decode(mappedByteBuffer); + } + + System.out.println(charBuffer.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower1.java b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower1.java new file mode 100644 index 0000000000..6166b1d8ee --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower1.java @@ -0,0 +1,33 @@ +package com.cmower.java_demo.neicunyingshe; + +import java.io.IOException; +import java.nio.CharBuffer; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.channels.FileChannel.MapMode; +import java.nio.charset.Charset; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; + +public class Cmower1 { + + public static void main(String[] args) { +CharBuffer charBuffer = CharBuffer.wrap("沉默王二,《Web全栈开发进阶之路》作者"); + +Path path = Paths.get("cmower1.txt"); + +try (FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.READ, StandardOpenOption.WRITE, + StandardOpenOption.TRUNCATE_EXISTING)) { + MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_WRITE, 0, 1024); + + if (mappedByteBuffer != null) { + mappedByteBuffer.put(Charset.forName("UTF-8").encode(charBuffer)); + } + +} catch (IOException e) { + e.printStackTrace(); +} + } + +} diff --git a/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower2.java b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower2.java new file mode 100644 index 0000000000..c96beb4fbe --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/neicunyingshe/Cmower2.java @@ -0,0 +1,68 @@ +package com.cmower.java_demo.neicunyingshe; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.RandomAccessFile; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.channels.FileChannel.MapMode; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class Cmower2 { + + public static void main(String[] args) { +long start = System.currentTimeMillis(); +mappedFile(Paths.get("/Users/maweiqing/Movies/jialebi.mkv")); +long end = System.currentTimeMillis(); + +System.out.println(end-start); + } + +public static void inputStream(Path filename) { + try (InputStream is = Files.newInputStream(filename)) { + int c; + while((c = is.read()) != -1) { + + } + } catch (IOException e) { + e.printStackTrace(); + } +} + +public static void bufferedInputStream(Path filename) { + try (InputStream is = new BufferedInputStream(Files.newInputStream(filename))) { + int c; + while((c = is.read()) != -1) { + + } + } catch (IOException e) { + e.printStackTrace(); + } +} + +public static void randomAccessFile(Path filename) { + try (RandomAccessFile randomAccessFile = new RandomAccessFile(filename.toFile(), "r")) { + for (long i = 0; i < randomAccessFile.length(); i++) { + randomAccessFile.seek(i); + } + } catch (IOException e) { + e.printStackTrace(); + } +} + + +public static void mappedFile(Path filename) { + try (FileChannel fileChannel = FileChannel.open(filename)) { + long size = fileChannel.size(); + MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_ONLY, 0, size); + for (int i = 0; i < size; i++) { + mappedByteBuffer.get(i); + } + } catch (IOException e) { + e.printStackTrace(); + } +} +} diff --git a/java_demo/src/main/resource/cmower.txt b/java_demo/src/main/resource/cmower.txt new file mode 100644 index 0000000000..41de2f2ad5 --- /dev/null +++ b/java_demo/src/main/resource/cmower.txt @@ -0,0 +1 @@ +沉默王二,一个有趣的程序员 \ No newline at end of file diff --git a/java_demo/chenmo.txt b/java_demo/src/main/resource/cmower1.txt similarity index 100% rename from java_demo/chenmo.txt rename to java_demo/src/main/resource/cmower1.txt diff --git a/java_demo/src/main/resource/fileToWriteTo.txt b/java_demo/src/main/resource/fileToWriteTo.txt new file mode 100644 index 0000000000..e69de29bb2 From 45e8d3cdc32d5fc3dfd46a8c43be9e83f99cfad6 Mon Sep 17 00:00:00 2001 From: qinggee Date: Mon, 5 Aug 2019 15:49:30 +0800 Subject: [PATCH 22/22] Create Cmower.java --- .../java/com/cmower/java_demo/str/Cmower.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 java_demo/src/main/java/com/cmower/java_demo/str/Cmower.java diff --git a/java_demo/src/main/java/com/cmower/java_demo/str/Cmower.java b/java_demo/src/main/java/com/cmower/java_demo/str/Cmower.java new file mode 100644 index 0000000000..aa2fcb92bd --- /dev/null +++ b/java_demo/src/main/java/com/cmower/java_demo/str/Cmower.java @@ -0,0 +1,40 @@ +package com.cmower.java_demo.str; + +public class Cmower { + + public static void main(String[] args) { + String cmower = "沉默王二,一个有趣的程序员"; + + System.out.println(new StringBuilder(cmower).reverse()); + // 员序程的趣有个一,二王默沉 + + System.out.println(new StringBuffer(cmower).reverse()); + + char[] cmowers = cmower.toCharArray(); + StringBuilder sb = new StringBuilder(); + for (int i = cmowers.length - 1; i >= 0; i--) { + sb.append(cmowers[i]); + } + System.out.println(sb); + + int length = cmower.length(); + String reverse = ""; + for (int i = 0; i < length; i++) { + reverse = cmower.charAt(i) + reverse; + } + + System.out.println(reverse); + +char[] array = cmower.toCharArray(); +int end = cmower.length() - 1; +int halfLength = end / 2; +for (int i = 0; i <= halfLength; i++) { + char temp = array[i]; + array[i] = array[end - i]; + array[end - i] = temp; +} + +System.out.println(new String(array)); + } + +}