阅读更多

5顶
1踩

编程语言

转载新闻 Java 9 新特性,看这里就明白了

2018-02-26 10:24 by 副主编 jihong10102006 评论(2) 有9079人浏览
1、Java9 新特性之---目录结构

包含jdk8及以前的jdk版本,所有目录结构以及目录含义如图:


jdk9之后,目录结构发生变化如图:

这个新特性只要了解下就可以了,这个目录结构是方便为了接下来新特性做保证

2、Java9新特性之---JShell工具

怎么理解,怎么用呢?这个只是针对于java9来说,相当于cmd工具,你可以和cmd一样,直接写方法等等,不过我认为只是适用于初学者做一些最简单的运算和写一些方法:

在cmd中打开这个工具:

进入工具后可以做一些简单的java操作

等等,我认为只适用于初学者学习java不用其他编辑工具就可以学习java

3、Java9新特性之---模块化

一个大型的项目,比如淘宝商城等,都会包含多个模块,比如订单模块,前台模块,后台管理模块,广告位模块,会员模块.....等等,各个模块之间会相互调用,不过这种情况下会很少,只针对特殊情况,如果一个项目有30个模块系统进行开发,但是只要某个单独模块运行时,都会带动所有的模块,这样对于jvm来说在内存和性能上会很低,所以,java9提供了这一个特性,某一个模块运行的时候,jvm只会启动和它有依赖的模块,并不会加载所有的模块到内存中,这样性能大大的提高了。写法上如下:

一个项目中的两个模块,模块之间通过module-info.java来关联,在IDEA编辑器右键创建package-info.java

在这个两个模块java9Demo和java9Test中,java9demo编写一个实体类Person,在java9Test调用这样一个过程
这个是java9Demo 将 java9Test 模块需要的文件导出 exports 把它所在的包导出

然后在java9Test模块中创建一个package-info.java,引入java9Demo模块导出包名

这样就可以直接在java9Test中引入Person实体类了,这只是一个简单的例子。exports 控制着那些包可以被模块访问,所以不被导出的包不能被其他模块访问

4、Java9新特性之---多版本兼容Jar包

怎么理解呢?

好多公司用的jdk大部分还是老版本,jdk6,7 都有,他们都不敢升级主要是因为兼容的问题,但是java9做到了这一点,就是不管公司的项目是用的java6,7,8甚至5,他都可以兼容不出错,打个比方,你之前用的是iphone5,现在出现了iPhone6,iphone7,iphon8和iphone9,但是你不敢买9,因为你自己已经适应了iphone5的所有手机的运行流程,6,7,8每个手机的运行流程不一样,但是这个9很强大,它能够识别你现在所用的版本iphone是5,所以当你升级到iphone9的时候,你的这个手机运行流程还是iphone5的流程,只是在原有基础上拥有了更多的iphone9的所有优势。

5、Java9新特性之---接口Interface的升级



6、Java9新特性之---钻石操作符的升级



7、Java9新特性之---异常处理try升级

首先看下jdk6,7,8,9 的try catch的比较
Java6处理方式:

java7,8 共同的处理方式:

java9的处理方式:

这下子应该一幕了然了吧

8、Java9新特性之---特殊标识符增加限制

java8 之前 String _ ="hello"; 这样的标识符可以用,java9就用不到。

9、Java9新特性之---String底层存储结构更换

java8之前 String的底层结构类型都是 char[] ,但是java9 就替换成 byte[] 这样来讲,更节省了空间和提高了性能


之所以替换是因为 之前一直是最小单位是一个char,用到两个byte,但是java8是基于latin1的,而这个latin1编码可以用一个byte标识,所以当你数据明明可以用到一个byte的时候,我们用到了一个最小单位chat两个byte,就多出了一个byte的空间。所以java9在这一方面进行了更新,现在的java9 是基于ISO/latin1/Utf-16 ,latin1和ISO用一个byte标识,UTF-16用两个byte标识,java9会自动识别用哪个编码,当数据用到1byte,就会使用iSO或者latin1 ,当空间数据满足2byte的时候,自动使用utf-16,节省了很多空间

同理,StringBuilder StringBuffer也更换了底层数据结构

10、Java9新特性之---Stream API 新方法的添加

在原有Stream API 新添加了4个方法,takeWhile dropWhile ofNullable iterate(新重载方法)
首先解释 takeWhile 当达到一定条件就结束:输出结果为45 43,如图

而 dropWhile 则和takeWhile 相反
ofNullable, 在java8中 Stream中的元素不能完全为null,否则空指针异常,而在java9的升级中,允许创建null
iterate 不加条件无线循环


11、Java9新特性之---引进HttpClient

以往我们都是通过maven添加httpclient ,java9直接引入即可
Java9所有特性都是为了提高性能和内存。
  • 大小: 167.8 KB
  • 大小: 119.2 KB
  • 大小: 121.4 KB
  • 大小: 13.2 KB
  • 大小: 23.5 KB
  • 大小: 107.3 KB
  • 大小: 30.7 KB
  • 大小: 10.4 KB
  • 大小: 8.2 KB
  • 大小: 65.2 KB
  • 大小: 47.1 KB
  • 大小: 47 KB
  • 大小: 63 KB
  • 大小: 42.8 KB
  • 大小: 62.2 KB
  • 大小: 58.8 KB
  • 大小: 29.2 KB
  • 大小: 308.2 KB
  • 大小: 41.2 KB
  • 大小: 83.2 KB
来自: sohu
5
1
评论 共 2 条 请登录后发表评论
2 楼 me胡唯 2018-03-01 08:28
有些许地方与作者理解不一致. 是我理解的有问题, 还是作者的笔误?
1 楼 th270 2018-02-28 08:41
学习了。很受用

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Java 9 逆天的十大新特性

    在介绍java9之前,我们先来看看java成立到现在的所有版本。 1990年初,最初被命名为Oak; 1995年5月23日,Java语言诞生; 1996年1月,第一个JDK-JDK1.0诞生; 1996年4月,10个最主要的操作系统供应商申明将在...

  • Java8新特性-Base64

    这里需要弄明白的就是一个Base64字符是8个bit,但是有效部分只有右边的6个bit,左边两个永远是0。 那么怎么用6个有效bit来表示传统字符的8个bit呢?8和6的最小公倍数是24,也就是说3个传统字节可以由4个Base64字符来...

  • Java8新特性Stream流详解

    既然我们已经知道了这些强大的内置收集器,接下来就让我们尝试构建自定义收集器吧。比如说,我们希望将流中的所有人转换成一个字符串,包含所有大写的名称,并以|分割。为了达到这种效果,我们需要通过Collector.of...

  • Java8新特性Stream流的概念和使用【详解】

    ❤:热爱Java学习,期待一起交流! 作者水平有限,如果发现错误,求告知,多谢! 有问题可以私信交流!!! 目录 引言 Stream流的概念 为什么要使用Stream流? Stream的两个基础的特征: Stream流的获取 ...

  • 放大招了,肝了一篇8万字的Java8新特性总结,赶快收藏

    Java8到底有哪些新特性,冰河都为你总结好了,先收藏后学习,肝就完了!!

  • Java基础知识面试题(2020最新版)

    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...

  • 【Java8新特性】重复注解与类型注解,你真的学会了吗?

    写在前面 在Java8之前,在某个类或者方法,字段或者参数上标注注解时,同一个注解只能标注一次。但是在Java8中,新增了...(JDK1.5新特性)。 2.作用 告诉javac编译器或者java开发工具……向其传递某种信息,作为一

  • JAVA9 String新特性,说说你不知道的东西

    字符串是java绕不去的路,于是乎这两天准备搞明白java字符串的内部的一些底层机制,JDK9,在各种书上都学不到的东西,去国外网站偷学了一波 哈哈 OpenJDK 压缩字符串: http://openjdk.java.net/jeps/254 字符串...

  • 重学Java 8新特性 | 第1讲——我们为什么要学习Java 8新特性?

    为什么我们一定要学习Java 8新特性?

  • 7.3万字肝爆Java8新特性,我不信你能看完!(建议收藏)

    Java8新特性全在这儿了!!

  • Java14 新特性解读

    Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

  • java1.4升级到java1.5 新特性

    前几天和一位腾讯的技术大牛聊天,聊到关于jdk的很多支持,包括jvm的优化,gc的调用机制,1.4-到1.8每次升级版本的新特性等,做软件这行这么多年了,一直在使用java,但是却从来没有细细的研究每个版本新特性到底有什么不同...

  • java复习笔记5--java8新特性之流式编程

    对于java来说,我们最常用的面向对象编程属于命令式编程(Imperative Programming)这种编程范式。常见的编程范式还有逻辑式编程(Logic Programming),函数式编程(Functional Programming)。函数式编程java8也...

  • Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

    Java8 Stream横空出世,让我们从繁琐冗长的迭代中解脱出来,集合数据操作变得优雅简洁。 这些操作:集合的filter(筛选)、归约(reduce)、映射(map)、收集(collect)、统计(max、min、avg)等等,一行代码即可...

  • java怎么制作游戏,看完这篇彻底明白了

    Java虚拟机内存模型 Java虚拟机内存模型中定义的访问操作与物理计算机处理的基本一致! Java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又单独的有自己的工作...

  • 简介java5、java6、java7、java8、java9

    我们在IDEA里面也可以看到languagelevel里面的信息,这里也大致写了下各个版本JDK的新特性。JAVA1.3普通的原始的JAVA,基本语法相信大家都见过了JAVA1.4assert关键字JAVA5枚举类型、泛型、自动拆装箱JAVA6@Override...

  • Java8新特性浅析

    本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的API有一定的了解,例如:流...

  • java8新特性lambda表达式

    lambda表达式是java8新增的一个语法元素,也是java8最重要新特性,增加lambda新特性是java语言持续保持活力和创新性的必然要求,因为lambda表达式是近几年计算机语言设计的重点关注领域,包括随spark而火起来的scala...

  • asp代码ASP基于WEB个人博客网页设计(源代码+论文+答辩)

    asp代码ASP基于WEB个人博客网页设计(源代码+论文+答辩)本资源系百度网盘分享地址

Global site tag (gtag.js) - Google Analytics