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 导原码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux将日期和日历信息追加到文件中_Linux任务调度

crontab 任务调度crontab 进行定时任务的设置概述 任务调度&#xff1a;是指系统在某个时间执行的特定的命令或程序。任务调度分类&#xff1a;1.系统工作&#xff1a;有些重要的工作必须周而复始地执行&#xff0c;如病毒扫描等 。2.个别用户工作&#xff1a;个别用户可能希望…

android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)

本文首发于微信公众号——世界上有意思的事&#xff0c;搬运转载请注明出处&#xff0c;否则将追究版权责任。交流qq群&#xff1a;859640274。大家好久不见&#xff0c;又有一个多月没有发文章了。不知道还有哪些读者记得我的 从零开始仿写抖音App 的系列文章&#xff0c;这个…

爱默生E系列服务器机柜托盘,艾默生通信电源PS48300-3B/1800 一体化室内机柜

PS48300-3B/1800电源系统PS48300-3B/1800电源系统是艾默生网络能源集多年开发和网上运行经验&#xff0c;采用 DSP控制技术&#xff0c;为满足3G网络需求而设计的高可靠、高功率密度、高性能、全数 字化通信电源系统。根据交流配电和机柜高度。一、特点 1、休眠节能专利技术&am…

功能Java示例 第8部分–更多纯函数

这是第8部分&#xff0c;该系列的最后一部分称为“ Functional Java by Example”。 我在本系列的每个部分中发展的示例是某种“提要处理程序”&#xff0c;用于处理文档。 在上一期文章中&#xff0c;我们已经使用Vavr库看到了一些模式匹配&#xff0c;并且还将故障也视为数据…

tensorflow 小于_坐姿不对,屏幕就变模糊!教你用TensorFlow做一款“隐形背背佳”...

大数据文摘出品作为一个上班族&#xff0c;每天坐在电脑前那么久&#xff0c;难免出现腰酸背痛的情况&#xff0c;时间长了甚至脊柱都歪曲变形了&#xff0c;这可不行&#xff01;一定要克制住自己的坐姿。这里有款“隐形背背佳”&#xff0c;要不要了解一下&#xff1f;一位名…

python里随机抽取样本_概率分布和抽样分布基础知识及Python实现

本文主要介绍推论统计中的概率分布和抽样分布,本文结构如下: 一、概率分布 随机变量:在一定条件下,某件事情可能发生或者不发生,这个事件就叫随机事件。例如抛硬币哪面朝上。随机变量X就是用来量化随机事件的函数,是将随机事件每一个可能出现的结果映射到数值的一个函数。…

php 创建目录_使用SMB绕过PHP远程文件包含限制

译文声明本文是翻译文章&#xff0c;文章原作者mannulinux&#xff0c;文章来源&#xff1a;mannulinux.org 原文地址&#xff1a;http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html译文仅供参考&#xff0c;具体内容表达…

eas系统服务器地址,EAS7.0EAS7.5服务端及其客户端标准配置介绍

金蝶EAS是基于JavaEE的大型企业应用。目前服务端支持以下主流软硬件环境。适用版本&#xff1a;EAS7.0 EAS703 EAS7.51.金蝶EAS服务端支持的软硬件环境注&#xff1a;标志为部署支持的环境&#xff0c;可以正常安装配置&#xff0c;但是正式运行前需联系金蝶技术支持。2.客户端…

Java的Kafka:构建安全,可扩展的消息传递应用程序

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 当今的用户希望可以通过其计算机&#xff0c;手机&#xff0c;平板电脑或任何其他设备访问您的应用程序&#xff01; …

background复合属性顺序_CSS有哪些好用的字体属性?

本文创建于2020年9月&#xff0c;以下为正文&#xff1a;CSS中有哪些字体属性呢&#xff1f;font&#xff1a;复合属性。设置或检索对象中的文本特征。font-style&#xff1a;设置或检索对象中的字体样式。用于定义字体的风格&#xff0c;如&#xff1a;斜体&#xff08;italic…

转译和编译_10个有趣又能编译为JavaScript的语言,你用过哪些?

点击上方“IT平头哥联盟”&#xff0c;选择“置顶或者星标”你的关注意义重大&#xff01;来源&#xff1a;https://www.sitepoint.com/现代应用相比普通的网页有不同的要求。但是浏览器是一个有着一套(大部分)固定可用的技术的平台&#xff0c;JavaScript依然是web应用的核心语…

OPC服务器如何采集设备的信息,如何将OPC服务器采集的设备数据转为MQTT方式,实现云端发布或订阅...

通过与PLC、智能仪表等硬件设备&#xff0c;以及OPC服务器、数据库等软件建立通讯&#xff0c;进行实时数据采集监控&#xff0c;然后将相关数据转换为数据库、OPC&#xff0c;以及MQTT、HTTP等多种服务接口&#xff0c;实现各类自动化与信息化系统软件灵活对接。MQTT智能网关案…

微信小程序摄像头监控_微信必备黑科技小程序!

↑点击上方蓝字关注极物推荐欢迎分享到朋友圈-不花冤枉钱&#xff0c;历史见真谛对于喜欢购物的朋友们&#xff0c;这绝对是一把利器。只需把商品链接复制粘贴到上面&#xff0c;就可以轻松的查阅到该商品的历史价格&#xff0c;轻松直观的了解商品过去的价格波动&#xff0c;同…

无线打印 airprint 服务器,如何让 Windows 的共享打印机支持 AirPrint

对很多办公室环境来说&#xff0c;局域网共享打印机往往都是刚需&#xff0c;而如果局域网内的设备大多为 Windows 设备&#xff0c;通过 网络共享 的方式就可以轻松将所连接的 USB 打印机共享到局域网。但对同一个局域网内的 Apple 设备而言&#xff0c;因为很多打印机的 Mac …

硒测试中所需的功能和示例

所需功能是用于声明一组基本要求&#xff08;例如浏览器&#xff0c;操作系统&#xff0c;浏览器版本等的组合&#xff09;的类&#xff0c;以对Web应用程序执行自动跨浏览器测试。 当我们尝试通过Selenium自动化测试来自动化测试脚本时&#xff0c;我们需要考虑这些组合&…

边沿触发是什么意思_集基耦合双稳电路,集成化单稳电路,数字逻辑电路,门电路,触发器...

1).箝位器能把脉冲电压维持在某个数值上而使波形保持不变的电路称为箝位器。它也是整形电路的一种。例如电视信号在传输过程中会造成失真&#xff0c;为了使脉冲波形恢复原样&#xff0c;接收机里就要用箝位电路把波形顶部箝制在某个固定电平上。下图中反相器输出端上就有一个箝…

鲸鱼优化算法_盘点 35 个 Java 代码优化细节

代码优化&#xff0c;一个很重要的课题。可能有些人觉得没用&#xff0c;一些细小的地方有什么好修改的&#xff0c;改与不改对于代码的运行效率有什么影响呢&#xff1f;这个问题我是这么考虑的&#xff0c;就像大海里面的鲸鱼一样&#xff0c;它吃一条小虾米有用吗&#xff1…

powerbi导入地图_Power BI系列教程之powerBI功能介绍及使用导引(一)

作为从事数据分析相关工作的小伙伴&#xff0c;我们总会遇到一些工作是每周、每月甚至每天都是重复做的工作&#xff0c;这个时候我们有没有一种结构化的方法来处理这一些数据呢&#xff1f;答案是肯定的&#xff0c;微软为了满足广大职场数据分析人员的需求&#xff0c;开发了…

模糊搜索怎么实现_干货 | 你真的了解自己是怎么搜索的吗_01

「干货」栏目的开启是为了帮大家科普学习关于品牌出海、数字营销与跨境电商行业相关的知识&#xff0c;以及我们在业内会遇到的情况和一些规避的方法。第一讲搜索者我们整个搜索营销活动都是围绕搜索者展开的我们的目的是把搜索者转化为我们的销售机会所以&#xff0c;研究搜索…

linux shc shell脚本_详解shell脚本加密解密软件—gzese和shc

概述以我个人的需求为例&#xff0c;有时写一个脚本需要传密码&#xff0c;如果直接把密码写在脚本里会存在安全问题&#xff0c;一般是把密码写在脚本里&#xff0c;作为参数传给脚本&#xff0c;而保存密码的脚本&#xff0c;使用某种手段加密&#xff0c;令其不可读但是可执…