xerga 2 лет назад
Родитель
Сommit
fb4c204e80

BIN
JavaSE/day22/a.mp4


BIN
JavaSE/day22/b.mp4


BIN
JavaSE/day22/c.mp4


+ 2 - 2
JavaSE/day22/src/com/lovecoding/day22/tcp02/ClentTCP.java

@@ -12,8 +12,8 @@ public class ClentTCP {
     public static void main(String[] args) throws IOException {
 
         while (true){
-            //192.168.18.13
-            Socket socket = new Socket("192.168.18.31",8888);
+            //192.168.18.31
+            Socket socket = new Socket("192.168.18.10",8888);
             //Scanner
             OutputStream outputStream = socket.getOutputStream();
             //发送数据

+ 21 - 0
JavaSE/day23/day23.iml

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

+ 36 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Emp.java

@@ -0,0 +1,36 @@
+package com.lovecoding.day23.relect;
+
+public class Emp {
+
+    static {
+        System.out.println("emp初始化");
+    }
+    String name;
+
+    Integer age;
+
+    public Emp(String name, Integer age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public Emp() {
+
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+}

+ 17 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test01.java

@@ -0,0 +1,17 @@
+package com.lovecoding.day23.relect;
+
+public class Test01 {
+
+
+    public static void main(String[] args) {
+
+        //Class 描述 String类的
+        Class stringClass = String.class;
+
+        Class integerClass = int.class;
+
+        //class
+        Class<Emp> empClass = Emp.class;
+
+    }
+}

+ 21 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test02.java

@@ -0,0 +1,21 @@
+package com.lovecoding.day23.relect;
+
+public class Test02 {
+
+
+
+    public static void main(String[] args) throws ClassNotFoundException {
+        //四种方式
+        Class<Emp> empClass = Emp.class;
+
+        Emp emp = new Emp();
+        Class<? extends Emp> aClass = emp.getClass();
+
+        Class<?> aClass1 = Class.forName("com.lovecoding.day23.relect.Emp");
+
+        Class<?> aClass2 = ClassLoader.getSystemClassLoader().loadClass("com.lovecoding.day23.relect.Emp");
+
+        System.out.println(aClass2);
+
+    }
+}

+ 26 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test03.java

@@ -0,0 +1,26 @@
+package com.lovecoding.day23.relect;
+
+public class Test03 {
+
+
+    public static void main(String[] args) throws ClassNotFoundException {
+        //四种方式
+        new B();
+        //静态的
+        System.out.println(C.C);
+    }
+}
+
+class A {
+
+}
+class B extends A{
+
+}
+
+class C{
+    static {
+        System.out.println("C初始化");
+    }
+    public static String C = "C"; //String
+}

+ 45 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test04.java

@@ -0,0 +1,45 @@
+package com.lovecoding.day23.relect;
+
+public class Test04 {
+
+
+    public static void main(String[] args) throws ClassNotFoundException {
+        //不会初始化
+        // 使用某个类的静态的常量(static  final)
+        System.out.println(AA.bb);
+
+        //通过子类调用父类的静态变量,静态方法,只会导致父类初始化,不会导致子类初始化,即只有声明静态成员的类才会初始化
+        System.out.println(DD.CC);
+
+
+        //用某个类型声明数组并创建数组对象时,不会导致这个类初始化
+        Emp[] emps = new Emp[2];
+
+
+
+    }
+}
+
+class AA {
+    static{
+        System.out.println("AA类的初始化");
+    }
+    public static final String bb = "123";
+}
+
+class BB{
+
+}
+
+class CC {
+    static{
+        System.out.println("CC类的初始化");
+    }
+    public static String CC = "CC";
+}
+
+class DD extends CC {
+    static{
+        System.out.println("DD类的初始化");
+    }
+}

+ 21 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test05.java

@@ -0,0 +1,21 @@
+package com.lovecoding.day23.relect;
+
+public class Test05 {
+
+
+    public static void main(String[] args) throws ClassNotFoundException {
+        // 类加载器
+        ClassLoader c1 = String.class.getClassLoader();
+        System.out.println("加载String类的类加载器:" + c1); //跟加载器 获取不到 返回null
+
+        //ClassLoader c2 = Class.forName("sun.util.resources.cldr.zh.TimeZoneNames_zh").getClassLoader();
+        //System.out.println("加载sun.util.resources.cldr.zh.TimeZoneNames_zh类的类加载器:" + c2); 扩展
+
+        ClassLoader c3 = Test05.class.getClassLoader();
+        System.out.println("加载当前类的类加载器:" + c3);
+
+        //组合
+        System.out.println(c3.getParent());
+        System.out.println(c3.getParent().getParent());
+    }
+}

+ 7 - 0
JavaSE/day23/src/com/lovecoding/day23/relect/Test06.java

@@ -0,0 +1,7 @@
+package com.lovecoding.day23.relect;
+
+public class Test06 {
+    public static void main(String[] args) {
+
+    }
+}

+ 4 - 0
JavaSE/day23/src/com/lovecoding/day23/relect02/A.java

@@ -0,0 +1,4 @@
+package com.lovecoding.day23.relect02;
+
+public interface A {
+}

+ 4 - 0
JavaSE/day23/src/com/lovecoding/day23/relect02/B.java

@@ -0,0 +1,4 @@
+package com.lovecoding.day23.relect02;
+
+public interface B {
+}

+ 4 - 0
JavaSE/day23/src/com/lovecoding/day23/relect02/Person.java

@@ -0,0 +1,4 @@
+package com.lovecoding.day23.relect02;
+
+public class Person {
+}

+ 44 - 0
JavaSE/day23/src/com/lovecoding/day23/relect02/Student.java

@@ -0,0 +1,44 @@
+package com.lovecoding.day23.relect02;
+
+public class Student  extends Person/*父类*/ implements A,B /*接口*/ {
+
+    //构造
+    public Student() {
+    }
+
+    public Student(String name, Integer age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    //属性
+    private String name;
+
+    private Integer age;
+
+
+    //方法
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Student{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+}

+ 97 - 0
JavaSE/day23/src/com/lovecoding/day23/relect02/Test01.java

@@ -0,0 +1,97 @@
+package com.lovecoding.day23.relect02;
+
+import org.junit.Test;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class Test01 {
+
+    @Test
+    public void test04() throws Exception {
+        //获取 class
+        Class studentClass = Student.class;
+
+        Class superclass = studentClass.getSuperclass();
+        System.out.println(superclass);
+
+        Class[] interfaces = studentClass.getInterfaces();
+
+        for (Class anInterface : interfaces) {
+            System.out.println(anInterface);
+        }
+    }
+
+    @Test
+    public void test03() throws Exception {
+        //属性
+        //获取 class
+        Class studentClass = Student.class;
+
+        Object o = studentClass.newInstance();
+
+        Field[] declaredFields = studentClass.getDeclaredFields();
+
+        for (Field declaredField : declaredFields) {
+
+            System.out.println(declaredField);
+        }
+
+        Field name = studentClass.getDeclaredField("name");
+        //设置可操作
+        name.setAccessible(true);
+        Object o1 = name.get(o);
+        System.out.println(o1);
+
+        name.set(o,"王五");
+        Object o2 = name.get(o);
+        System.out.println(o2);
+    }
+
+    @Test
+    public void test02() throws Exception {
+        //获取 class
+        Class studentClass = Student.class;
+
+        Object o = studentClass.newInstance();
+        //方法
+        Method[] declaredMethods = studentClass.getDeclaredMethods();
+
+        for (Method declaredMethod : declaredMethods) {
+            System.out.println(declaredMethod);
+        }
+        //获取setName
+        Method setName = studentClass.getDeclaredMethod("setName", String.class);
+
+        //执行 setName
+        Object ls = setName.invoke(o, "李四");
+        System.out.println(ls);
+
+        System.out.println(o);
+    }
+
+    @Test
+    public void test01() throws Exception {
+        //获取 class
+        Class studentClass = Student.class;
+
+        //构造方法
+        Constructor[] declaredConstructors = studentClass.getDeclaredConstructors();
+
+        for (Constructor declaredConstructor : declaredConstructors) {
+            System.out.println(declaredConstructor);
+        }
+
+        //根据参数获取
+        Constructor s1 = studentClass.getDeclaredConstructor(String.class, Integer.class);
+        //创建
+        Object zs = s1.newInstance("张三", 22);
+        // = new Student("张三", 22)
+        System.out.println(zs);
+
+    }
+
+
+
+}

BIN
JavaSE/out/production/day22/com/lovecoding/day22/tcp02/ClentTCP.class