千锋教育-做有情怀、有良心、有品质的IT职业教育机构

位置:首页 > 行业动态

Java技术新发展,来千锋哈尔滨Java开发培训快速学习

时间:2018-03-14 15:57:25  |  来源:千锋教育  |  作者:千锋

  Java 9 已经在 JavaOne 大会发布许久,千锋哈尔滨Java开发培训老师将在本文中将为我们梳理 Java 9 所具备的新功能。

哈尔滨Java开发培训.jpg

  JShell:交互式 Java REPL

  很多编程语言都已经具有了交互式编程环境,如今 Java 也加入了这个具有REPL [读取、评估、打印、循环]功能的俱乐部。 交互式shell可以让你轻松完成 Java 类、接口、枚举、对象、语句等的测试任务。使用 JShell 进行测试时无需部署整个解决方案。JShell也就是Java Shell的缩写,可以在终端窗口执行JShell命令将其启动,然后就可以直接在命令行中输入并执行 java 代码了。

  使用这个工具的绝佳好处之一是,我们可以轻松测试我们的微服务,而不需要一遍又一遍地部署它们。这有助于加速终极组件的开发、迭代和质量。

  私有接口方法

  Java 8为我们提供了接口中的默认和静态方法实现,但是,我们无法在接口中创建私有方法。如果接口中有多个默认方法包含相同功能,通常,我们会重构这些方法,调用一个可复用的私有方法。在Java 8中,你可以在接口中创建私有方法。随着 Java 9的发布,这个问题得以解决,现在我们可以向接口添加私有辅助方法来解决这种类型的问题。

  public interface MyInterface {

  default void interfaceDefaultMethod() { init(); }

  default void interfaceSecondDefaultMethod() { init(); }

  // This is the declaration of the Private Method in Interface

  private void init() { ... }

  }

  Java 9 模块系统

  Java 9的一大变化是引入了模块系统(Jigsaw 项目)。一直到 Java 8 版本,我们都在使用 Monolithic Jars 来设计基于 Java 语言的应用程序。这种设计有两个主要的基本问题:难以封装代码,并且系统不同部分之间缺乏明确依赖的概念。为了避免这些根本问题,Java 9 引入了模块系统。模块系统主要有如下好处:

  1. JDK、JRE、JAR等被分割成小的模块,我们可以只使用我们需要的模块即可。这有助于缩小小型设备应用程序的尺寸。

  2. 对封装提供强力支持。

  3. 内部 Non-Critical API 被隐藏,因为模块安全地隐藏了不需要的内部细节。这大大提高了应用程序的安全性。

  改进的 Javadoc

  我们一直以来都使用 Google 来搜索问题,才能找到正确的 Javadoc 页面。使用 Java 9这个问题得以解决,Javadoc 现在支持在 API 文档中的进行搜索。

  HTTP/2客户端

  Java 9 中有新的 HTTP/2 客户端 API 来处理 HTTP 调用。它代替了老旧的 `HttpURLConnection` API,并提供对 WebSocket 和 HTTP/2 的支持。

  HttpClient newHttpClient = HttpClient.newHttpClient();

  Uri uriObject = Uri.create("https://developersjournal.in");

  HttpRequest request = HttpRequest.newBuilder(uriObject)

  .header("User-Agent", "DJ")

  .GET()

  .build();

  HttpResponse resp = client.send(req, HttpResponse.BodyHandler.asString());

  新版字符串

  Java 9 提供简化版的字符串格式,有助于清楚区分主要、次要、安全和补丁新版本。新版本的字符串格式符合当前的行业惯例,特别是语义版本控制(Server)。格式如下:

  $MAJOR.$MINOR.$SECURITY.$PATCH

  $MAJOR 是主要版本增加的版本号,例如 JDK 9,其中包含由 Java SE 平台规范指定的重要新功能。主要版本包含新功能和对现有功能的改,这些功能将提前计划和公布。

  $MINOR 是为每个次要新增加的版本号,例如错误修复,标准 API 的修订,或相关平台规范范围之外的功能实现。

  $SECURITY是针对安全新版本增加的版本号,其中包含关键修复程序,包括提高安全性所需的修补程序。

  $PATCH是包含已经一起测试的安全性和高优先级客户修补程序的版本的版本号。

  多版本兼容 JAR

  Java 9 扩展了 JAR 文件格式,以便在单个存档中共享多个 Java 版本的类文件。

  多版本 JAR(MRJAR)包含针对特定 Java 平台版本的类和资源的附加版本目录。使用 jar 工具 --release 选项指定版本化目录。

  改进的 Stream API

  改进的 Stream API 允许对对象序列化数据的传入流进行过滤,以提高安全性和鲁棒性。

  对象序列化客户端可以容易地验证其输入,并且导出的远程方法调用(RMI)对象也可以容易地验证调用参数。

  序列化客户端实现了在 ObjectInputStream 上设置的过滤器接口。对于 RMI,用RemoteServerRef 导出对象,该 RemoteServerRef 将 MarshalInputStream 上的过滤器设置为在未调用时验证调用参数。

  当然,Java9有了,Java10也不远了。想要进一步了解Java吗?来千锋教育,学全新Java知识。

上一篇:哈尔滨Java程序员培训课哪个好?我的经验错不了
下一篇:返回列表

新开班信息

  • HTML5班 03.26 抢座
    HTML5班 10.30 开班

锋神榜

MORE>>
  • 徐帅

    学员姓名:徐同学
    入职单位:枭*科技
    入职月薪:11000
    时间:2016.05.26
     

  • 潘玉珠

    学员姓名:潘同学
    入职单位:酷*互动
    入职月薪:13000
    时间:2016.05.20
     

  • 张子豪

    学员姓名:张同学
    入职单位:斑*实业
    入职月薪:14000
    时间:2015.12.08
     

  • 黄伯驹

    学员姓名:黄同学
    入职单位:福*中金
    入职月薪:12000
    时间:2015.12.07
     

  • 韩庆

    学员姓名:韩同学
    入职单位:宽*是风
    入职月薪:17000
    时间:2015.09.17
     

  • 郑大哲

    学员姓名:郑同学
    入职单位:腾*众创
    入职月薪:16500
    时间:2015.11.02
     

  • 钱学明

    学员姓名:钱同学
    入职单位:数*科技
    入职月薪:16000
    时间:2015.11.04
     

  • 孙建刚

    学员姓名:孙同学
    入职单位:快*
    入职月薪:14000
    时间:2015.06.12
     

  • 郭立辉

    学员姓名:郭同学
    入职单位:本*生活网
    入职月薪:14000
    时间:2015.10.08
     

  • 张学超

    学员姓名:张同学
    入职单位:泰*集团
    入职月薪:13800
    时间:2015.06.11
     

哈尔滨校区咨询电话

17710405956
0元入学 获取资料 申请试听
  • 大连地址:大连市甘井子区软件园路2号B8座二楼
    咨询电话:0411-39026086 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 北京天丰利校区:北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-65025129-602
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训、好程序员
  • 郑州地址:郑州市金水区纬五路21号河南教育综合楼(经纬中学楼)6/7/8层
    咨询电话:0371-55911950 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 深圳科技园校区:深圳市南山区科苑南路高新技术产业园R3-B栋5层
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋3楼
    深圳西部硅谷校区:深圳市宝安区宝安大道5010号西部硅谷B座A605-619
    咨询电话:0755-86681178/9-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 武汉地址:武汉市东新区光谷大道77号金融港B26栋9楼
    咨询电话:027-59905902 027-59905908 027-59905909
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 成都旅游校区:成都市一环路西二段17号四川旅游青羊校区内
    成都华立校区:成都一环路西二段17号华立大厦3楼
    咨询电话:028-83178771 028-61967740
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 西安南二环校区:西安市二环南路西段60号永安大厦4层
    西安科技园校区:西安市雁塔区高新六路52号立人科技园C座西区4层
    咨询电话:029-85260160 029-85261030 029-85260960
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 杭州地址:浙江江干区九堡旺田书画城3层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS课程培训、Android课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A四层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 了解千锋动态
    关注千锋教育服务号

  • 扫码匿名提建议
    直达CEO信箱