当前位置: 代码迷 >> 综合 >> Java高级之注解、泛型以及数据的加密和解密
  详细解决方案

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

热度:52   发布时间:2024-01-25 18:10:23.0

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>{@Overridepublic 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