引言:
  
  点击--》java9 新特性 详解
  
  点击--》java8 新特性 详解
  
  正题:
  
  1、局部变量var
  
  将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为null,因为不能判断具体类型,会报异常。
  
  @Test
  
  public 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());
  
  }
  
  结果:
  
  10
  
  i 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,这些方法按照其迭代顺序返回一个不可修改的列表、集合或映射包含了给定的元素的集合。但是如果将返回后的集合继续修改,那么会保异常
  
  @Test
  
  public 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:toString(Charset)
  
  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());
  
  }
  
  这个是我们正常的格式,但是当我们修改代码,str.getBytes("gbk")的时候,创建的txt为乱码,那么我们使用toString()的新增方法,替换gbk
  
  4、PrintStream、PrintWriter
  
  Java.io.PrintStream,Java.io.PrintWriter,这两个类都有三个新的构造方法,他们需要而外的参数charset
  
  @Test
  
  public void test3() throws FileNotFoundException, UnsupportedEncodingException {
  
  String str = "我也特别喜欢java";
  
  var pri = new PrintWriter(www.fengshen157.com/ "/Users/tentsuuhou/Desktop/11.txt");
  
  pri.println(str);
  
  pri.flush();
  
  pri.close();
  
  }
  
  我这个路径是mac电脑的,如果你是windows,可以写“d:/aa.txt“ 不过都需要提前创建好txt文件夹
  
  结果为:
  
  但是我们这个txt默认的都是utf-8格式的,如果突然改成gbk的话,格式会不匹配出现乱码,毕竟txt文件格式要和输出的格式一致才可以,这是我们可以使用一下
  
  var pri = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt","gbk");
  
  我们直接在后面添加一个格式参数就可以直接解决啦
  
  5、Reader:transferTo方法
  
  Java.io.Reader:transferTo从这个Reader中读取所有字符串,并按照所读取的顺序将字符串写入给指定的Writer
  
  @Test
  
  public void test4() throws IOException {
  
  var reader = new BufferedReader(new www.michenggw.com 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内容替换成这样
  
  @Test
  
  public void test5() throws FileNotFoundException {
  
  var scan = new Scanner(new FileInputStream(new File(www.dasheng178.com"/Users/tentsuuhou/Desktop/11.txt")),"utf-8");
  
  scan.useDelimiter(" |,");
  
  while(scan.hasNext()) {
  
  System.out.println(scan.next());
  
  }
  
  }
  
  scan.useDelimiter(" |,"); 这是空格或者‘,’ 都要分割,如下结果为:
  
  7、垃圾收集器的优化
  
  7.1 JDK9垃圾收集器
  
  新生代:ParNew收集器;老年代:Parallel Old收集器 Stop The World
  
  7.2 JDK10垃圾收集器
  
  JDK10:G1(Garbage-Frist)全收集器

java10 新特性 详解的更多相关文章

  1. ES6,ES2105核心功能一览,js新特性详解

    ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...

  2. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  3. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  4. Java9 新特性 详解

    作者:木九天   <   Java9 新特性 详解  > Java9 新特性 详解 摘要: 1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方 ...

  5. 点击--》java9 新特性 详解

    引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...

  6. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  7. Java8 Stream新特性详解及实战

    Java8 Stream新特性详解及实战 背景介绍 在阅读Spring Boot源代码时,发现Java 8的新特性已经被广泛使用,如果再不学习Java8的新特性并灵活应用,你可能真的要out了.为此, ...

  8. JDK8新特性详解(二)

    Stream流的使用 流操作是Java8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作.Stream类中每一个方法都对应集合上的一 ...

  9. JavaScript ES6 新特性详解

    JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读 const ,  let and var 的区别: const , let 是 ES6 中用于声明变量的新关键字. ...

随机推荐

  1. Memached、Redis、Mongodb的区别

    性能 ​ • 性能都很高,redis和memached差不多 > Mongodb 操作 ​ • Memached:数据结构单一,只有key/value数据结构 ​ • Redis有五种数据类型 ...

  2. 【Python学习笔记】正则表达式

    Ref:https://deerchao.net/tutorials/regex/regex.htm#greedyandlazy 1. 常用元字符 2.字符转义 查找元字符本身时,需要使用\来取消这些 ...

  3. 2019网易笔试题C++--丰收

    题目描述 又到了丰收的季节,恰好小易去牛牛的果园里游玩. 牛牛常说他多整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第 ...

  4. 【Ansible】ansible 任务失败控制

    任务失败控制 Ansible 通常默认会确保检测模块和命令的返回码并且会快速失败 – 专注于一个错误除非你另作打算. 有时一条命令会返回 0 但那不是报错.有时命令不会总是报告它 ‘改变’ 了远程系统 ...

  5. webbrowser 模块的 open()方法

    webbrowser 模块的 open()函数可以启动一个新浏览器,打开指定的 URL.在交 互式环境中输入以下代码: >>> import webbrowser >>& ...

  6. Ajax请求返回Error:200无数据的解决方法

    先看代码 $.ajax({ type:"GET", url:"https://****/charts/data/genre2.json", dataType:& ...

  7. js多条件if语句简写发生Uncaught SyntaxError: Unexpected token }

    改写原生js 多条件if判断语句时,采用三元方法,发生Uncaught SyntaxError: Unexpected token } function compareImgSize() { var ...

  8. 前端_CSS

    目录 CSS语法 CSS的四种引入方式 CSS选择器 CSS属性操作 补充 示例(一些小模板) CSS语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 1 2 3 4 5 6 7 ...

  9. 灵悟礼品网上专卖店Sprint计划

    一.现状 小组成员初步了解了所做项目的大致内容,需要时间一步一步分析和规划. 二.部分需求索引卡 第一个阶段没有具体功能的实现,只是先把所要做的项目思路理清,并把相应的数据库建立好. 三.任务认领 产 ...

  10. php 把数字转化为大写中文

    PHP 数字转大写中文 PHP入门小菜鸟一枚.下午要求写一个把数字转成大写中文的脚本,百度了一波,几十个博客和网站都是用的那四个代码,第一个运行不了,第二个有问题,不合要求,第三个第四个太长,懒得看, ...