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)
使用方式({ElementType.xxx...})(RetentionPolicy.RUNTIME)
      
注解解析:注解生存周期一般只研究 Runtime 解析就是获取注解数据的过程
     
注解可以创建对象 可以获取到注解的属性值 我们可以通过自己编写的代码实现对程序的控制

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号