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);*/
}
}