java8特性(一)

一、default 关键字

  • 在jdk1.8以前接⼝⾥⾯是只能有抽象⽅法,不能有任何⽅法的实现的
  • jdk1.8⾥⾯打破了这个规定,引⼊了新的关键字default,使⽤default修饰⽅法,可以在接⼝⾥⾯
  • 定义具体的⽅法实现
    • 默认⽅法: 接⼝⾥⾯定义⼀个默认⽅法,这个接⼝的实现类实现了这接⼝之后,不⽤管这个default修饰的⽅法就可以直接调⽤,即接⼝⽅法的默认实现
public interface Animal {
   void run();
   void eat();
   default void breath(){
       System.out.println("使⽤氧⽓呼吸");
   }
}
  • 注意
    • 若两个接口同时有默认的同名实现方法 ,另一个类同时实现这两个接口会报错,解决办法就是重写这个同名方法

二、Base64编解码

  • 什么是Base64编码
    Base64是⽹络上最常⻅的⽤于传输8Bit字节码的编码⽅式之⼀,Base64就是
    ⼀种基于64个可打印字符来表示⼆进制数据的⽅法 基于64个字符A-Z,a-z,0-9,+,/的编码⽅式,是⼀种能将任意⼆进制数据⽤64种字元组合成字符串的⽅法,⽽这个⼆进制数据和字符串资料之间是可以互相转换的,在实际应⽤上,Base64除了能将⼆进制数据可视化之外,也常⽤来表示字串加密过后的内容
    推荐⼀个⽂章: https://blog.csdn.net/wo541075754/article/details/81734770

  • 早期java要使⽤Base64怎么做
    使⽤JDK⾥sun.misc套件下的BASE64Encoder和BASE64Decoder这两个类

BASE64Encoder encoder = new BASE64Encoder();
     BASE64Decoder decoder = new BASE64Decoder();
     String text = "⼩滴课堂";
     byte[] textByte = text.getBytes("UTF-8");
     //编码
     String encodedText = encoder.encode(textByte);
     System.out.println(encodedText);
     //解码
     System.out.println(new String(decoder.decodeBuffer(encodedText),"UTF-8"));
  • 缺点:编码和解码的效率⽐较差,公开信息说以后的版本会取消这个⽅法
    Apache Commons Codec有提供Base64的编码与解码 缺点:是需要引⽤Apache
    Commons Codec
  • jdk1.8之后怎么玩?(⾸选推荐)
    Jdk1.8的java.util包中,新增了Base64的类
    好处:不⽤引包,编解码销量远⼤于 sun.misc 和 Apache Commons Codec
 Base64.Decoder decoder = Base64.getDecoder();
 Base64.Encoder encoder = Base64.getEncoder();
 String text = "⼩滴课堂";
 byte[] textByte = text.getBytes("UTF-8");
 //编码
 String encodedText = encoder.encodeToString(textByte);
 System.out.println(encodedText);
 //解码
 System.out.println(new String(decoder.decode(encodedText), "UTF8"));

猜你喜欢

转载自blog.csdn.net/lin819747263/article/details/102712291