今日一言:
She's articulate, strong, persuasive,
arugumentative, beautiful and she's
my dearest, dearest friend.
——《五十度灰》
JAVA JDK(4)—— jdk8特性
参考资料:
目录:
- jdk5
- jdk6
- jdk7
- jdk8
JDK 8
特性还有很多没有详细给出,我只给出我经常用到或可能会用到的。
1. 接口的默认方法与静态方法
public interface testInterface {
default void printHello(){
System.out.println("Hello World!");
}
static void switchMode(int mode){
System.out.println("You switch mode " + mode );
}
}
main函数
public static void main(String[] args) {
testInterface.switchMode(1);
testJava8 test = new testJava8();
test.printHello();
}
2. Lambda 表达式
场景1:新建接口对象(单函数接口)
// before
new Thread(new Runnable() {
@Override
public void run() {
out.println("Done");
}
}).start();
// lambda
new Thread(()->out.println("Done")).start();
场景2:逐个调用List成员的某个函数
public class testJava8 {
public testJava8(){}
static testJava8 create(final Supplier<testJava8> test ){
return test.get();
}
void SomeOneDoSomething( final testJava8 test ){
out.println("test has done");
}
void DoSomething(){
out.println("done");
}
public static void main(String[] args) {
testJava8 test = testJava8.create(testJava8::new);
ArrayList<testJava8> arrayList = new ArrayList<>();
arrayList.add(test);
arrayList.forEach(testJava8 :: DoSomething);
arrayList.forEach(test::SomeOneDoSomething);
}
}
3. 重复注解和类型注释
参考资料:博客园 - JAVA 注解的几大作用及使用方法详解
- 要用好注解,必须熟悉java 的反射机制,从上面的例子可以看出,注解的解析完全依赖于反射。
- 不要滥用注解。平常我们编程过程很少接触和使用注解,只有做设计,且不想让设计有过多的配置时
4. base64加解密API
public static void main(String[] args) {
String base64 = Base64.getEncoder().encodeToString("test base64".getBytes());
out.println(base64);
String string = new String(Base64.getDecoder().decode(base64));
out.println(string);
}