jdk8特性

Base64Test

package com.lv.jdk8;

import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.UUID;

/**
 * Created by lvyanghui
 * 2018/10/22 18:42
 */
public class Base64Test {

    public static void main(String[] args) throws UnsupportedEncodingException{


        String base64encodedString = Base64.getEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
        System.out.println("Base64 编码 :" + base64encodedString);


        // 解码
        byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
        System.out.println("Base64 解码 :" + new String(base64decodedBytes, "utf-8"));

        base64encodedString = Base64.getUrlEncoder().encodeToString("TutorialsPoint?java8".getBytes("utf-8"));
        System.out.println("Base64 编码字符串 (URL) :" + base64encodedString);

        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
        }
        byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
        String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
        System.out.println("Base64 编码字符串 (MIME) :" + mimeEncodedString);
    }
}

JavaScriptTest

package com.lv.jdk8;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
 * Created by lvyanghui
 * 2018/10/22 18:24
 */
public class JavaScriptTest {

    public static void main(String[] args) {

        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();

        ScriptEngine engine = scriptEngineManager.getEngineByName("nashorn");

        String name = "Runoob";
        Integer result = null;

        try { engine.eval("print('" + name + "')");
            result = (Integer) engine.eval("10 + 2");
        }catch(ScriptException e){
            System.out.println("执行脚本错误: "+ e.getMessage());
        }
        System.out.println(result.toString());
    }
}

LambdaTest

package com.lv.jdk8;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Created by lvyanghui
 * 2018/10/22 16:13
 */
public class LambdaTest {

    public static void main(String[] args) {

        List<String> name1 = new ArrayList<String>();
        name1.add("Google ");
        name1.add("Runoob ");
        name1.add("Taobao ");
        name1.add("Baidu ");
        name1.add("Sina ");

        List<String> name2 = new ArrayList<String>();
        name2.add("Google ");
        name2.add("Runoob ");
        name2.add("Taobao ");
        name2.add("Baidu ");
        name2.add("Sina ");


        System.out.println("不调用lambda表达式");
        sortByJdk7(name1);
        System.out.println(name1);

        System.out.println("调用lambda表达式");
        sortByJdk8(name2);
        System.out.println(name2);



    }


    public static void sortByJdk7(List<String> names){

        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
    }

    public static void sortByJdk8(List<String> names){

        //Collections.sort(names,(s1,s2) -> s1.compareTo(s2));
    }
}

LocalDateTest

package com.lv.jdk8;

import java.time.*;

/**
 * Created by lvyanghui
 * 2018/10/22 18:30
 */
public class LocalDateTest {

    public static void main(String[] args) {

        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("当前时间:" + currentTime);


        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("date1:" + date1);


        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();
        System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);

        LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);
        System.out.println("date2: " + date2);

        // 12 december 2014
        LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);
        System.out.println("date3: " + date3);

        // 22 小时 15 分钟
        LocalTime date4 = LocalTime.of(22, 15);
        System.out.println("date4: " + date4);

        // 解析字符串
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("date5: " + date5);



        // 获取当前时间日期
        ZonedDateTime date6 = ZonedDateTime.parse("2015-12-03T10:15:30+05:30[Asia/Shanghai]");
        System.out.println("date6: " + date6);
        ZoneId id = ZoneId.of("Europe/Paris");
        System.out.println("ZoneId: " + id);
        ZoneId currentZone = ZoneId.systemDefault();
        System.out.println("当期时区: " + currentZone);

    }
}

MethodTest

package com.lv.jdk8;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lvyanghui
 * 2018/10/22 16:30
 */
public class MethodTest {

    public static void main(String[] args) {
        List<String> names = new ArrayList<String>();
        names.add("Google ");
        names.add("Runoob ");
        names.add("Taobao ");
        names.add("Baidu ");
        names.add("Sina ");

        //names.forEach(System.out::println);
    }
}

OptionalTest

package com.lv.jdk8;

import java.util.Optional;

/**
 * Created by lvyanghui
 * 2018/10/22 18:15
 */
public class OptionalTest {

    public static void main(String[] args) {

        Integer value1 = null;

        Integer value2 = new Integer(10);

        Optional<Integer> a = Optional.ofNullable(value1);
        Optional<Integer> b = Optional.of(value2);

        System.out.println(sum(a,b));

    }

    public static Integer sum(Optional<Integer> a, Optional<Integer> b){

        // Optional.isPresent - 判断值是否存在
        System.out.println("第一个参数值存在: " + a.isPresent());
        System.out.println("第二个参数值存在: " + b.isPresent());

        // Optional.orElse - 如果值存在,返回它,否则返回默认值
        Integer value1 = a.orElse(new Integer(2));

        //Optional.get - 获取值,值需要存在
        Integer value2 = b.get();
        return value1 + value2;
    }
}

StreamTest

package com.lv.jdk8;

/**
 * Created by lvyanghui
 * 2018/10/22 16:38
 */
public class StreamTest {

    public static void main(String[] args) {

        /*System.out.println("使用jdk8");

        List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");

        long count = strings.stream().filter(string -> string.isEmpty()).count();
        System.out.println("空字符串数量为: " + count);

        count = strings.stream().filter(string -> string.length() == 3).count();
        System.out.println("字符串长度为 3 的数量为: " + count);


        List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
        System.out.println("筛选后的列表: " + filtered);

        String mergered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
        System.out.println("合并字符串: " + mergered);



        List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);


        List<Integer> squaresList = numbers.stream().map(i -> i*i).distinct().collect(Collectors.toList());
        System.out.println("平方数列表: " + squaresList);



        List<Integer> integers = Arrays.asList(1,2,13,4,15,6,17,8,19);
        IntSummaryStatistics stats = integers.stream().mapToInt((x) -> x).summaryStatistics();
        System.out.println("列表中最大的数 : " + stats.getMax());
        System.out.println("列表中最小的数 : " + stats.getMin());
        System.out.println("平均数 : " + stats.getAverage());
        System.out.println("列表数量: " + stats.getCount());
        System.out.println("所有数之和 : " + stats.getSum());


        Random random = new Random();
        random.ints().limit(10).sorted().forEach(System.out::println);

        // 并行处理
        count = strings.parallelStream().filter(string -> string.isEmpty()).count();
        System.out.println("空字符串数量为: " + count);*/
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值