java se 导原码_Java SE 8新功能导览:Java开发世界中的重大变化

java se 导原码

我很自豪,像其他专业团队成员一样,是采用OpenJDK的成员之一,但是从过去8个月就加入了,我们经历了Java SE 8 开发,编译,编码,讨论等各个阶段,直到将其付诸实践为止。 。 它于2014年3月18日发布,现在可供您使用。

我很高兴宣布本系列“ Java SE 8新功能介绍 ”,我将在其中编写示例,以简化Java SE 8知识的获取,开发经验,新功能以及将利用您的知识的API,增强您的编码方式,并提高生产率。 希望您喜欢它,就像我在编写时一样。


我们将浏览Java SE 8中的新主要和重要功能(项目和API),该平台旨在支持更快,更轻松的Java开发。 我们将学习Project Lambda ,这是一种支持Java代码中lambda表达式的新语法。

检查新的Stream API以处理集合并管理并行处理。

使用DateTime API计算时间跨度,以表示,管理和计算日期和时间值。

除了Nashorn外,还有一个新引擎可以更好地支持Java虚拟机使用JavaScript代码。

最后,我还将介绍一些鲜为人知的功能,例如将字符串连接到列表的新方法,以及其他将在日常任务中为您提供帮助的其他功能。

有关Java SE 8功能和教程的更多信息,我建议您也参考Java教程官方网站和Java SE 8 Java API文档

我们将在本系列文章中讨论的主题包括:

  1. 安装Java SE 8,注意事项和建议。
  2. 引入Java SE 8的主要功能后,变化很大。
  3. 使用lambda表达式和方法引用。
  4. 使用流遍历集合。
  5. 使用新的DateTime API计算时间跨度
  6. 使用Nashorn从Java运行JavaScript。
  7. 其他新功能和API更改。
  1. 安装Java SE 8,注意事项和建议。

    1. 在Windows上安装Java SE 8

      为了在Microsoft Windows上运行Java SE 8,请首先检查您拥有的版本。 Windows 8、7,Vista和XP支持Java SE 8。 具体来说,您将需要这些版本。 对于Windows 8或8.1,您需要Windows的桌面版本。 不支持Windows RT。 您可以在任何版本的Windows 7以及最新版本的Windows Vista和Windows XP上运行Java SE 8。 在基于Server的Windows版本上,您可以运行2008和64位版本的2012。如果要在Java Applet上运行,则需要64位浏览器,这些浏览器可以包括Internet Explorer 7.0及更高版本,Firefox 3.6和更高版本。以上版本以及Windows上支持的Google Chrome,但Mac上不支持。您可以从以下网址下载Java SE 8的Java开发者工具包:

      1. URL java.oracle.com它将带您到当前的Java主页。
      2. 单击Java SE。
      3. 在热门下载下。 然后单击Java 8的下载链接。
    2. 在Mac上安装Java SE 8

      为了在Mac OS X上使用Java SE 8,必须具有运行Mac OS X 10.7.3的基于Intel的Mac,即Lion或更高版本。 如果您使用的是Mac的旧版本,则将无法编程或运行Java 8应用程序。 为了安装Java SE 8,您需要在Mac上具有管理权限。 并且为了在浏览器中运行Java applet,您将需要使用Safari或Firefox等64位浏览器.Google Chrome是32位浏览器 ,并且不能用于此目的 。 Windows上的SE,同一网站上有MAC OS .dmg版本可供下载和安装。 实际上包含所有操作系统版本。 但是,我们的重点是Windows和MAC。

    现在,您已经准备好在Windows和MAC OS X平台上开始使用Java SE 8进行编程。

    大概安装完Java SE 8之后,让我们深入了解第一点,并简要地了解一下Java SE 8的主要功能,以在我们最喜欢的IDE上开始我们的编码之旅。

  2. 引入Java SE 8的主要功能后,变化很大。

    JSR 337:Java SE 8发行内容概述

    Java SE 8是Java编程语言和Java虚拟机的主要发行版。 它包括许多更改。 有些语言比Lambda表达式语言具有更大的覆盖范围,但是我将同时讨论主要变化和一些次要变化。

    JSR 335:Lambda表达式

    可能最受关注的是Project Lambda,这是一组新的语法功能,可让Java开发人员充当函数程序员。 这包括lambda表达式,方法引用和其他一些功能。

    JSR 310:日期和时间API

    有一个用于管理日期和时间的新API。 替换旧的类。 这些较旧的类仍在Java Runtime中,但是在构建新的应用程序时,您可能希望转到这些新功能集,这些功能可以简化代码并使编程方式更加直观。 有一些新类可以管理本地日期,时间和时区,以及计算不同时间之间的差异。

    流API

    添加了用于管理集合的新工具,包括列表,地图,集合等。流允许您处理集合中的每个项目,而无需编写明确的循环代码。 它还使您可以将处理分为多个CPU。 因此,对于大型,复杂的数据集,您可以看到显着的性能改进。

    纳斯霍恩项目

    Nashorn JavaScript引擎也是Java SE 8的新功能。 这是一个全新JavaScript引擎,从头开始编写,可以使用JavaScript进行编码,但可以集成Java类和对象。Nashorn的目标是在Java中使用本机JVM实现轻量级高性能JavaScript运行时。 该项目旨在使Java开发人员能够通过JSR-223将JavaScript嵌入Java应用程序中,并使用jrunscript命令行工具开发独立JavaScript应用程序。在有关Nashorn的文章中,我将描述如何从命令行运行Nashorn代码。 还有如何在单独的文件中编写JavaScript,然后从Java代码执行这些文件。

    并发API增强。

    并发框架也有增强,使您可以管理和累积多个线程中的值。 还有许多较小的变化。

    字符串,数字有新工具

    在字符串类和其他新类中,有一些用于创建分隔列表的新工具。 有一些用于汇总数字的工具,包括整数,双精度数,双精度数等等。

    其他新功能

    还有一些工具可以更好地检测空情况,我将在本系列中介绍所有这些工具。

    我将介绍使用新的便捷方法处理文件的方法。

那么,什么时候可以使用Java SE 8?

答案是,现在。 它于2014年3月18日发布。对于使用Java构建客户端站点应用程序的开发人员,JavaFX富互联网应用程序框架现在支持Java 8。 而且大多数Java企业版供应商也都支持Java 8。 是否立即迁移到Java SE 8取决于您正在处理的项目类型。

对于许多服务器和客户端站点应用程序,它立即可用。

尚不支持Android。

Android开发人员要当心; 目前,Android不支持Java SE 8语法和API。

直到最近,Android才采用了一些最新的Java 7语法。 因此,Android可能需要一些时间才能支持此最新语法或最新API。 但是对于所有其他Java开发人员来说,值得一看的是这些新功能。

那IDE呢?

所有主要的Java开发环境都支持Java SE 8。 包括Oracle的NetbeansIntellij IdeaEclipse 。 在本系列中,我将使用Netbeans版本8在Netbeans中进行所有演示,可以从https://netbeans.org/downloads/下载。

但是,在开始研究本系列之前,让我们先检查一下,我们可能已经安装了Java SE 8,并在Netbeans下启动了一个新项目,该项目将包含我们将要编写的所有代码。 然后开发一个lambda代码来测试我们的项目是否可以在Java SE 8中正常工作。

或者,您可以从我的Github帐户下载系列源代码,使用Netbeans打开它,然后按照我接下来显示的内容以及即将发布的系列代码进行操作。

Github上的项目: https : //github.com/mohamed-taman/JavaSE8-Features

带有Lambda表达式的Java SE 8上的Hello world应用程序。

步骤(如果浏览我的代码,则不需要):

  1. 打开NetBeans 8 –>从文件–>新建项目–>从左侧,然后选择Maven –>从右侧,然后选择Java应用程序 –>单击下一步。
  2. 请遵循以下屏幕截图变量定义,或更改为您喜欢的名称和值–>然后单击“完成”。

    JDK8-SES-P1-1
  3. 如果一切正常,则在项目导航器上应具有以下结构:

    JDK8-SES-P1-2
  4. 单击项目“ Java8Features” –>单击“ 文件” ,从上层菜单–>然后单击 项目属性”
  5. 类别 ->从左侧选择Source ,然后检查“ Source / Binary format”是否为1.8。 –>从左侧打开Build ,然后选择Compiler ,然后检查“ Java Platform”是否指向您当前的JDK 8安装–>单击“ 确定”
  6. 如果没有JDK 8,则转到工具 –>选择, Java平台 –> 添加平台 –>然后选择Java标准版 –>然后指向已安装的JDK 8。
  7. 现在,我们的项目已配置为可与Java 8配合使用,因此让我们添加一些Lambda代码。
  8. “ eg.com.tm.java8.features”包上,右键单击,然后从概述包“ eg.com.tm.java8.features.overview”下的菜单中选择“ 新建” ->“ Java接口” ->“将其命名为可打印 ”。单击完成
  9. 实现Printable接口,如下所示:
    /*
     * Copyright (C) 2014 mohamed_taman
     *
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     */
     
    package eg.com.tm.java8.features.overview;
     
    /**
     *
     * @author mohamed_taman
     */
    @FunctionalInterface
    public interface Printable {
         
        public void print();
    }
  10. 在同一软件包上,添加以下名为“ Print”的类,其主要方法如下:
    /*
     * Copyright (C) 2014 mohamed_taman
     *
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     */
     
    package eg.com.tm.java8.features.overview;
     
    import static java.lang.System.out;
    /**
     *
     * @author mohamed_taman
     */
    public class Print {
         
        public static void main(String[] args) {
            
            Printable job = ()-> out.println("Java SE 8 is working "
                                            + "and Lambda Expression too.");
             
            job.print();
        }
         
    }
  11. 右键单击Print class并选择Run 。 如果一切正常,那么您应该看到以下输出。
    ------------------------------------------------------------------------
    Building Java8Features 1.0-SNAPSHOT
    ------------------------------------------------------------------------
    --- exec-maven-plugin:1.2.1:exec (default-cli) @ Java8Features ---
    Java SE 8 is working and Lambda Expression too.
    ------------------------------------------------------------------------
    BUILD SUCCESS
  12. 祝贺您的Java SE 8项目运行良好,让我们解释一下我们编写的内容。

    这些代码大多数都可以在Java 7上运行 ,但是Java SE 8中在这里添加了一个注释,即FunctionalInterface 。 如果未正确为Java 8配置Netbeans环境,则此注释将导致错误,因为它不会被识别为有效的Java代码。 我没有看到错误,所以这很好地表明了Eclipse正在按我的期望工作。

    接下来,我将打开名为Print.java的此类定义。 这是一个具有main方法的类,因此我可以将其作为控制台应用程序运行,并且它具有新的Java 8语法的关键行。

    它正在创建一个功能接口的实例,我刚刚使用lambda表达式向您展示了,该表达式是Java在Java 8之前不存在的一种语法样式。我将在下一篇文章的早期部分解释这种语法的作用。

    但是,您现在只需要知道,如果这段代码没有引起任何错误,那么Netbeans就会再次将其识别为有效的Java语法。 我正在创建该接口的实例,然后调用该接口的print方法。 因此,我将运行代码。

    我将单击工具栏上的“运行”按钮,然后在控制台中看到成功的结果。 我创建了一个对象,该对象是使用lambda表达式的该接口的实例。 我已经调用了它的方法,并将其输出到控制台。 因此,如果一切正常,那么您的状态就很好。 您已经准备好开始在Netbeans中使用Java SE 8进行编程。 如果您在使用过程中遇到任何问题,请返回之前的步骤并逐步进行操作。 一次一步

资源:

  1. Java教程,Lambda表达式
  2. JSR 310:日期和时间API
  3. JSR 337:Java SE 8发行内容
  4. OpenJDK网站
  5. Java平台,标准版8,API规范

翻译自: https://www.javacodegeeks.com/2014/06/java-se-8-new-features-tour-the-big-change-in-java-development-world.html

java se 导原码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值