一、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:///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"));