我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JDK10新特性详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JDK10新特性详解

1、局部变量var

      将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为null,因为不能判断具体类型,会报异常。

@Testpublic void test1(){    var number = 10;    var str    = "i like java";    var list   = new ArrayList<>();    var map    = new HashMap<>();    var set    = new HashSet<>();    list.add("test var is list");    map.put("1","test var is map");    set.add("test var is set");    System.out.println(number);    System.out.println(str);    System.out.println(list.toString());    System.out.println(map.toString());    System.out.println(set.toString());}

      结果:

10i like java[test var is list]{1=test var is map}[test var is set]

      var可以用于任何类型,基本类型,集合,以及实体类等等都可以,省略了我们在前面写入具体的类型,我们尽管var,让它自己去判断就好了。

2、copyOf方法

      在java.util.List、java.util.Set、java.util.Map新增加了一个静态方法copyOf,这些方法按照其迭代顺序返回一个不可修改的列表、集合或映射包含了给定的元素的集合。但是如果将返回后的集合继续修改,那么报异常。

@Testpublic void test2(){    var list = new ArrayList<>();    list.add("first");    list.add("second");    list.add("third");    var result = List.copyOf(list);    System.out.println(result.toString());}

      结果:

[first, second, third]
3、ByteArrayOutputStream

      Java.io.ByteArrayOutputStream,重载toString()方法,通过使用指定的字符集编码字节,将缓冲区的内容转换为字符串,以前是默认没有参数,现在加了一个编码的字符方法。

public static void main(String[] args) throws Exception {    String str = "我喜欢java";    ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes("utf-8"));    ByteArrayOutputStream bos = new ByteArrayOutputStream();    int c = 0;    while((c = bis.read()) != -1) {        bos.write(c);    }    //bos.toString() 默认的使用的UTF-8编码    System.out.println(bos.toString());}

JDK10新特性详解

JDK10新特性详解

      这个是我们正常的格式,但是当我们修改代码,str.getBytes("gbk")的时候,创建的txt为乱码,那么我们使用toString()的新增方法,替换gbk。

JDK10新特性详解

4、PrintStream、PrintWriter

      Java.io.PrintStream,Java.io.PrintWriter,这两个类都有三个新的构造方法,他们需要而外的参数charset

@Testpublic void test3() throws FileNotFoundException, UnsupportedEncodingException {    String str = "我也特别喜欢java";    var pri    = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt");    pri.println(str);    pri.flush();    pri.close();}

      我这个路径是mac电脑的,如果你是windows,可以写“d:/aa.txt“ 不过都需要提前创建好txt文件夹

      结果为:

JDK10新特性详解

      但是我们这个txt默认的都是utf-8格式的,如果突然改成gbk的话,格式会不匹配出现乱码,毕竟txt文件格式要和输出的格式一致才可以,这是我们可以使用一下。

var pri = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt","gbk");

      我们直接在后面添加一个格式参数就可以直接解决啦

5、Reader:transferTo方法

Java.io.Reader:transferTo从这个Reader中读取所有字符串,并按照所读取的顺序将字符串写入给指定的Writer

@Testpublic void test4() throws IOException {    var reader = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/tentsuuhou/Desktop/11.txt"), "utf-8"));    var p = new PrintWriter(new File("/Users/tentsuuhou/Desktop/12.txt"));    reader.transferTo(p);    p.flush();    p.close();    reader.close();}

      结果:12.txt文件将11.txt文件拷贝过来了,注意编码格式也要一致才可以。用这个方法方便了许多。

6、Formatter、Scanner

      java.util.Formatter、java.util.Scanner新增三个构造方法,除了其他参数之外,都需要一个charset参数,将11.txt内容替换成这样

JDK10新特性详解

@Testpublic void test5() throws FileNotFoundException {    var scan = new Scanner(new FileInputStream(new File("/Users/tentsuuhou/Desktop/11.txt")),"utf-8");    scan.useDelimiter(" |,");    while(scan.hasNext()) {        System.out.println(scan.next());    }}

      scan.useDelimiter(" |,"); 这是空格或者‘,’ 都要分割,如下结果为:

JDK10新特性详解

7、垃圾收集器的优化
1、JDK9垃圾收集器 :新生代:ParNew收集器;老年代:Parallel Old收集器   Stop The World2、JDK10垃圾收集器:JDK10:G1(Garbage-Frist)全收集器

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JDK10新特性详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JDK10新特性详解

1、局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为null,因为不能判断具体类型,会报异常。@Testpublic void test1(){ var number = 10
2023-06-02

关于jdk9、jdk10、jdk11、jdk12、jdk13新特性说明

JDK 9特性说明:1. 模块化系统(Jigsaw):引入了一种新的模块化系统,允许将Java SE平台和应用程序分割成一组互相依赖的模块。2. JShell:引入了一个交互式的Java编程工具,可以在命令行中立即编写和执行Java代码片段
2023-08-08

JDK 新特性篇:JDK 10 新特性详解

JDK 10 是 Java 开发工具包的一个版本,其中包含了一些新的特性和改进。下面是 JDK 10 的一些新特性的详细解释:1. 局部变量类型推断:JDK 10 引入了局部变量类型推断的功能,使得在声明变量时可以使用 var 关键字代替具
2023-09-14

JDK 新特性篇:JDK 9 新特性详解

JDK 9 是 Java 平台的一次重大更新,引入了许多新的特性和改进。以下是 JDK 9 的一些主要新特性的详细解释。模块化系统(Module System):JDK 9 引入了一个全新的模块化系统,它允许将代码和资源以模块的形式组织和封
2023-09-13

Java8新特性详解

陈老老老板 说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油。 本文是介绍Java8新特性与常用方法(此篇只做大体介绍了解,之后会把重
2023-08-17

JDK11新特性详解

1、增强局部变量类型推断varConsumer consumer = t -> System.out.println(t.toUpperCase());Consumer consumer = (var t)
2023-06-02

JDK9新特性详解

1、Java9新特性之目录结构 包含jdk8及以前的jdk版本,所有目录结构以及目录含义如图: jdk9之后,目录结构发生变化如图: 这个新特性只要了解下就可以了,这个目录结构是方便为了接下来新特性做
2023-06-02

Tapestry5新特性详解

Tapestry5是一个轻量级的、开源的Java Web框架,它提供了一种简化Web开发的方式。下面是Tapestry5的一些新特性的详解:1. 组件化:Tapestry5采用组件化的开发模式,将页面划分为多个可复用的组件,每个组件都有自己
2023-09-22

JDK12的新特性详解

本篇内容介绍了“JDK12的新特性详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、JDK12之Shenandoah低暂停时间垃圾收集器
2023-06-02

JDK8的新特性详解

本篇内容介绍了“JDK8的新特性详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、Lambda演变过程@Data@ToString@No
2023-06-02

Android 7.0新特性详解

谷歌正式在I/O大会现场详细介绍了有关Android 7.0的大量信息。目前,我们已经知道,新一代Android操作系统将支持无缝升级,能够通过Vulkan API来在中低硬件配置设备上实现流 畅.游戏体验以及更多的Emoji表情。不过,A
2022-06-06

Hadoop3.x新特性详解

Hadoop 3.x版本带来了许多新的特性和改进,使其更加强大和高效。以下是Hadoop 3.x的一些主要新特性:HDFS Erasure Coding:Hadoop 3.x引入了HDFS Erasure Coding,这是一种新的数据保护
Hadoop3.x新特性详解
2024-02-29

Java8新特性Stream流详解

陈老老老板 说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油。 本文是介绍Java8新特性Stream流常用方法超详细教学
2023-08-17

详解Java中switch的新特性

这篇文章主要介绍了Java中switch的新特性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-20

Java8新特性StreamAPI实例详解

这篇文章主要为大家介绍了Java8新特性StreamAPI实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

Android5.0新特性详解之全新的动画

在Material Design设计中,为用户与app交互反馈他们的动作行为和提供了视觉上的连贯性。Material主题为控件和Activity的过渡提供了一些默认的动画,在android L上,允许自定义这些动画: Touch feed
2022-06-06

Java8新特性之Collectors.joining()实例详解

在项目中我们常常要对list集合的数据做一些字符串拼接/处理等相关操作,下面这篇文章主要给大家介绍了关于Java8新特性之Collectors.joining()的相关资料,需要的朋友可以参考下
2023-01-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录