JAVA从零学re从零开始的JAVA学习05——<javaSE阶段二基础版>

day05 网络编程、junit、反射、注解

  1.网络编程

    网络通信协议:计算机之家通信必须遵守的协议

    TCP/IP协议:

      TCP:面向连接的通信协议需要三次握手

      UDP:不需要建立协议传输效率高但可能会丢失数据

    网络通信的三要素:ip 协议 端口号

    IP地址有IPv4 IPv6两种:格式类是127.0.0.1

    端口号:进程之间的通信  分发送端和接受端

      TCP通信:Socket、ServerSocket

      构造方法:Socket(String host ,int port)

      成员方法:

        

 

 

       构造方法:ServerSocket(int port):绑定到指定的端口号上

        

 

 

       通信:服务端开启端口等待接受,使用accept创建Socket对象 再各自使用输入输出流上传和回写数据

        DUP通信:无需建立通信协议

         

          

  2.junit、反射、注解

    junit的使用:引出jar包概念

      导入jar包后 使用@Test可以执行代码  注意事项:要没有参数列表 返回值为void 不能使用static修饰

      @After 在Test之后 @Before在Tese之后

    反射的概述:java文件编译后的class文件运行后会进入内存中在方法区内创建class对象 而这个class对象

          包含了成员变量、构造方法、成员变量等  这里获取到是class对象不是实例化对象

    Class类无法直接获取 但是Class实例化对象class包含其所有信息所以可以获取class对象来操作这个类

    获取class对象的三种方法:

      类名.class  实例化对象.getclass  Class.forName("全类名")Class类的静态方法

      方法:getSimpleName获取简单类名  getName获取完整类名

    解剖:

      

 

 

       构造方法对象:Constructor  用反射技术 使用的参数也是需要放射类作参数

        获取方法:Constructor<?>[] getConstructors()  获取类的所有公共构造方法。

             Constructor<?>[] getDeclaredConstructors()获取类声明的所有构造方法。

             Constructor<T> getConstructor(Class<?>... parameterTypes)  获取指定公共构造方法。

             Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)  获取指定构造方法。

       Constructor创建实例化的方法:newInstance()无参 (xx)有参——传递的是实际参数

        在用私有构造方法是需要暴力破解: con3.setAccessible(true);//取消con3构造方法的权限检查-->暴力反射

       

      成员方法对象:Method

        获取方法:

            

 

       Method方法的信息:

            

 

 

 

        Method调用方法执行: Object invoke(Object obj, Object... args)  执行成员方法

        调用私有方法时也需要使用暴力破解:setAccessible(true)

 

      成员变量对象:field

        获取方法:

            

 

        成员变量方法的信息:

            

 

           成员变量的获取和设置:get(var )非public 需要暴力破解/ set(var ,obj)

  注解

    注解的概述:Annotation代码级别的注解,元素据。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素 进行说明,注释。

      

 

      自定义注解:  

         构造:本质上是一个接口 public abstract@interface xx{ 修饰符 数据类型 xx()【default x】}

            八种基本类型 4个String、Class、注解、枚举类型

            在赋值上 只有有一个属性 且 名为value()可以直接赋值不用写=

      元注解:修饰注解的注解  有两个常用的:Target用来指定注解位置、Retention用来指定注解的生命周期

          使用方式({ElementType.xxx...})(RetentionPolicy.RUNTIME)

 

      

 

 

         注解解析:注解生存周期一般只研究 Runtime 解析就是获取注解数据的过程

     

 

         注解可以创建对象 可以获取到注解的属性值 我们可以通过自己编写的代码实现对程序的控制

 

posted @ 2020-02-09 16:12  袁德华  阅读(170)  评论(0)    收藏  举报