首页 > 编程语言 >Java9比Java8改进了什么

Java9比Java8改进了什么

时间:2023-06-13 20:22:53浏览次数:42  
标签:Java 读取 G1 InputStream 改进 线程 日志 Java9 Java8


1)引入了模块系统,采用模块化系统的应用程序只需要这些应用程序所需的那部分JDK模块,而非是整个JDK框架了,减少了内存的开销。

2)引入了一个新的package:java.net.http,里面提供了对Http访问很好的支持,不仅支持 Http1.1而且还支持HTTP2。

3)引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动  jshell ,在 jshell 中直接输入表达式并查看其执行结果。

4)增加了List.of()、Set.of()、Map.of()和Map.ofEntries()等工厂方法来创建不可变集合

5)HTML5风格的Java帮助文档

6)多版本兼容 JAR 功能,能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本。

7)统一 JVM 日志可以使用新的命令行选项-Xlog 来控制JVM 上 所有组件的日志记录。该日志记录系统可以设输出的日志消息的标签、级别、修饰符和输出目标等。

8)垃圾收集机制
Java 9 移除了在 Java 8 中 被废弃的垃圾回收器配置组合,同时把G1设为默认的垃圾回收器 现.因为相对于Parallel来说,G1会在应用线程上做更多的事情,而Parallel几乎没有在应用线 上做任何事情,它基本上完全依赖GC线程完成所有的内存管理。这意味着切换到G1将会为应线程带来额外的工作,从而直接影响到应用的性能

9)I/O 流新特性
java.io.InputStream 中增加了新的方法来读取和复制 InputStream 中包含的数据。

readAllBytes:读取 InputStream 中的所有剩余字节。

readNBytes: 从 InputStream 中读取指定数量的字节到数组中。
transferTo:读取 InputStream 中的全部字节并写入到指定的 OutputStream 中 。

标签:Java,读取,G1,InputStream,改进,线程,日志,Java9,Java8
From: https://www.cnblogs.com/huigui-mint/p/17478660.html

相关文章

  • JAVA8 十大新特性详解
    一、接口的默认方法Java8允许我们给接口添加一个非抽象的方法实现,只需要使用default关键字即可,这个特征又叫做扩展方法,示例如下:代码如下:interfaceFormula{   doublecalculate(inta);    defaultdoublesqrt(inta){       returnMath.sqrt(a); ......
  • Java8 Stream List Map:Stream 流对象汇总 求和 某个属性 BigDecimal MDouble
    测试实体(数字对象使用MDouble):importcom.mchweb.common.lang.MDouble;importlombok.*;@Getter@Setter@Builder(toBuilder=true)@NoArgsConstructor@AllArgsConstructorpublicclassUser{privateMDoublemoney;}importcom.mchweb.common.lang.MDouble;imp......
  • java8随手记(包含idea连接远程分支出现Nothing to update问题)
    Steam流一、映射1.map()和.flatMap()map将数据放入集合中,返回Steam流中。例如:map集合{1,2,3},返回Steam流[a,b,c,{1,2,3}]flatMap将将集合中的数据,返回Steam流中.例如:flatMap集合{1,2,3},返回Steam流中[a,b,c,1,2,3]注意:add与addAll有同样的效果。   ......
  • java8 日期 API
    获取时间LocalDatelocalDate=LocalDate.now();LocalDateTimelocalDateTime=LocalDateTime.now();LocalDatetoday=LocalDate.of(2023,6,12);方法名描述dayofWeekInMonth创建一个新的日期,值为同一个月中每一周的第几天firstDayOfMonth创建一个新的日期......
  • 4.3 线性回归的改进-岭回归
    1.带有L2正则化的线性回归-岭回归岭回归,其实也是一种线性回归。只不过在算法建立回归方程时候,加上正则化的限制,从而达到解决过拟合的效果2.APIsklearn.linear_model.Ridge(alpha=1.0,fit_intercept=True,solver="auto",normalize=False)具有l2正则化的线性回归alpha:正......
  • Java8新特性Stream之list转map及问题解决
    List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap具体用法实例如下://声明一个List集合Listlist=newArrayList();list.add(newPerson("1001","小A"));list.add(newPerson("1002","小B"));list.add(......
  • 聊聊结合业务需求给出合理的技术解决方案,改进现有模块功能,提高系统的可扩展性,封装性,稳
    针对提高系统的可扩展性、封装性、稳定性,改进现有模块功能,以下是我给出的一些技术解决方案:使用面向对象编程的设计模式:可以采用一些设计模式如单例模式、工厂模式、观察者模式等,来提高系统的可扩展性和封装性。应用微服务架构:可以将系统拆分成多个独立的服务,使得每个服务都可......
  • java8如何校验ssh-keygen生成的公私钥
    如果你的公私钥文件不是PEM格式的,而是其他格式,如OpenSSH格式(通常以`id_rsa`和`id_rsa.pub`命名),你可以使用Java的`JSch`库来验证它们的有效性。下面是一个示例代码,演示如何使用`JSch`库验证OpenSSH格式的公私钥对:首先,你需要在项目中引入JSch库的依赖。你可以使用Maven或手动下载并......
  • java8函数式编程
    1.什么是函数式编程每个人对函数式编程的理解不尽相同。但其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。2.Lambda表达式Stream<String>stream=Stream.of("张三","李四");2.1collect(toList())List<String>names=stream.collect(Colle......
  • Java8 时间日期库的使用方法
    1、Java8新的时间日期库的20个使用示例http://ifeve.com/20-examples-of-date-and-time-api-from-java8/2、Java8日期/时间(DateTime)API指南http://www.importnew.com/14140.html3、JAVA8:健壮、易用的时间/日期APIhttp://www.importnew.com/14857.html......