Java高级之注解、泛型以及数据的加密和解密

1.注解

      用在类,属性,方法,构造方法,参数上,作为程序的一部分

常见注解:

@Override 用在方法上,表示此方式是重写的方法

@Deprecated 用在方法上,表示此方法已经过时,不推荐使用

@SuppressWarnings("serial") 用在类,属性,方法上,用来忽略指定的警告

   

元注解:对注解进行注解的注解

@Target : 注解的使用范围

ElementType.TYPE; 类

ElementType.FIELD 属性

ElementType.METHOD 方法

ElementType.PARAMETER 参数

ElementType.CONSTRUCTOR 构造方法

ElementType.LOCAL_VARIABLE 局部变量

ElementType.ANNOTATION_TYPE 注解类型

ElementType.PACKAGE 包

ElementType.TYPE_PARAMETER 类型参数

ElementType.TYPE_USE 类型

@Retention: 说明注解存在的生命周期

RetentionPolicy.SOURCE 只在源代码中存在,编译成class的时候会丢弃

RetentionPolicy.CLASS   存在于class文件中,加载成Class对象的时候会丢弃

RetentionPolicy.RUNTIME 程序运行时还存在

@Documented :此注解是否可文档化

@Inherited: 注解是否可被继承

自定义注解

作业:

1.梳理类的加载与反射机制

2.常用的注解

3.元注解类型

4.如何自定义注解

  

  


 2. 泛型

        泛型:类型参数化

        定义的时候没有明确具体的类型,等到调用的时候再确定要使用的类型

1.泛型类

public class MyClass<A>{}

  在调用泛型类的时候如果没有将泛型具体化,默认会用Object代替

2.泛型接口

public interface MyInterface<D> {

public void test(D d);

}

    

泛型接口的实现必须是泛型类:  

        

 public class MyClass<D> implements MyInterface<D>{

@Override

public void test(D d) {



             }

}

3.泛型方法

  public <E> void change(E e){}

  

   使用extends限定泛型的范围

 public <E extends 父类> void change(E e){}

4.使用?通配符

 public void abc(ArrayList<? extends Number> list){

for(Number m:list){

System.out.println(m);

                         }

  }


3.数据的加密和解密

1.Base64:

          加密:

                

Encoder coder = Base64.getEncoder();

String mimaStr = coder.encodeToString(msg.getBytes());

         解密:

  

Decoder coder = Base64.getDecoder();

byte[] bs = coder.decode(mima);

String msg = new String(bs);

2.MD5

3.SHA

发布了52 篇原创文章 · 获赞 38 · 访问量 2499

猜你喜欢

转载自blog.csdn.net/weixin_44364444/article/details/104024789