专栏首页Java技术栈JDK8之新特性扩展篇

JDK8之新特性扩展篇

之前分篇章讲了一些JKD8中添加的新特性,还有一些新特性这里也一并讲下。

BASE64

base64编码解码已经被加入到了jdk8中了。

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Test {
    public static void main(String[] args) {
        String text = "hello javastack";

        String encoded = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded);

        String decoded = new String(Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded);
    }
}

Date/Time API(JSR 310)

新的时间、日期。

Clock clock = Clock.systemUTC();
System.out.println(clock.instant());
System.out.println(clock.millis());

输出:

2017-09-06T07:26:18.541Z
1504682778593

可以代替 System.currentTimeMillis()方法。

另外,可以看下LocalDate、LocalTime、LocalDateTime、Duration的用法。

Nashorn JavaScript引擎

可以运行js代码的引擎。

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");

System.out.println(engine.getClass().getName());
System.out.println("Result:" + engine.eval("function f() { return 10; }; f() * 24;"));

输出:

jdk.nashorn.api.scripting.NashornScriptEngine
Result:240.0

JVM内存取消永久代

JDK8使用了Metaspace(JEP 122)替换永久代(PermGen space)。参数使用-XX:MetaSpaceSize和-XX:MaxMetaspaceSize代替原来的-XX:PermSize和-XX:MaxPermSize。

还有一些别的新特性,个人觉得某些新特性用处不是很大。

本文分享自微信公众号 - Java技术栈(javastack),作者:javastack

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • hashCode和identityHashCode的区别你知道吗?

    hashCode 关于hashCode参考之前的文章,点击参考之前文章。 identityHashCode identityHashCode是System里面提...

    Java技术栈
  • 高级JAVA码农必须搞清楚它们的区别:instanceof、isInstance、isAssignableFrom

    instanceof、isInstance、isAssignableFrom这几个有没有接触过,或者接触过部分? 定义 a instanceof B a是B...

    Java技术栈
  • 字符串拼接+和concat的区别

    +和concat都可以用来拼接字符串,但在使用上有什么区别呢,先来看看这个例子。 public static void main(String[] args) ...

    Java技术栈
  • redis 学习笔记(2)-client端示例代码

    redis提供了几乎所有主流语言的client,java中主要使用二种:Jedis与Redisson

    菩提树下的杨过
  • Java基础-day09-对象;类;封装 学生管理系统

    Java基础-day09-对象&类&封装 学生管理系统 ●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★ ? ?...

    奋斗蒙
  • 第3章 学生管理系统案例

    1.2 学生管理系统案例实现 1.2.1 创建学生类: 1.2.1.1 案例代码九:

    用户2398817
  • 【小家Java】Java第二API之apache的commons-lang3工具包史上最完整的讲解(书写优雅代码必备工具)

    apache提供的众多commons工具包,号称Java第二API,而common里面lang3包更是被我们使用得最多的。因此本文主要详细讲解lang3包里面几...

    BAT的乌托邦
  • java如何获得数据库表中字段等相关的信息

    gfu
  • java如何获得数据库表中各字段的字段名

    ydymz
  • 这几个IDEA高级调试技巧,用完就是香

    测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可

    Java识堂

扫码关注云+社区

领取腾讯云代金券