JDK8后的实用新特性(基础版)

1:java9:(官方不支持版本)

(1):可以创建私有接口方法可以在接口下的默认方法中使用

(2):增加了try自动关闭io流

public static void main(String[] args) throws FileNotFoundException {
    File source = new File("d:/demo.jpg");
    File target = new File("d:/demo1.jpg");
    //通过try块自动关闭资源
    //final InputStream fis; 在外侧声明流对象需要添加final关键字
    try (InputStream fis = new FileInputStream(source);
         OutputStream fos = new FileOutputStream(target);){
        byte[] bs = new byte[1024];
        int len;
        //利用read方法循环读取的字节数据,并进行处理
        while((len = fis.read(bs)) != -1){
            System.out.println(len);
            //将读取到到字节数组写入到输出流
            fos.write(bs,0,len);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

在try里面定义多个流要用分号隔开,而且在try里面定义的流变量默认加

2:Java10:(官方不支持版本)

(1)局部类型判断:使用var关键字

//局部类型推断,使用var关键字。var关键字适用于绝大多类型,比如集合
var list = new ArrayList<String>();
list.add("ABC");
var map = new LinkedHashMap<String,String>();
map.put("A","B");

但是要注意的是

var xxx=NULL;是编译错误的 因为NULL推断不出什么类型

(2):不可变集合:顾名思义,一个集合的内容不可发生变化,不可变集合不是用new关键字创建的,使用List.copyOf(list)方法;

final var list = new ArrayList<String>();//使用final关键字只是不能修改地址,而无法阻止在集合中添加元素
//使用copyOf()方法
List<String> copyList = List.copyOf(list);
copyList.add("A");//运行时会报错,抛出异常。因为该集合类型是不可变集合

3:JDK11提供了新的String方法

  • String str = "www.imooc.com";

  • boolean isblank =str.isBlank(); //判断字符串是空白,可以都是空格,长度不为0,如果长度为0,判断也是为true

  • boolean isempty = str.isEmpty();//判断字符串是否为空,长度为0

  • String result1 = str.strip();//去除首尾空白(包括半角和全角空白,而trim()只能去掉半角空白)

  • String result2 = str.stripTrailing();//去除尾部空白

  • String result3 = str.stripLeading();//去除首部空白

  • String copyStr = str.repeat(2);//复制几遍字符串

  • long lineCount = str.lines().count();//行数统计

4:Java12:switch case 优化

老版本我就不多说了 看一下新版本吧

//新版switch方法,简便了许多
public void newSwitch(){
    int day = new Random().nextInt(7):
    int result = switch (day) {
        case 0,1,2 -> 88;
        case 3 -> 99;
        case 4,5 -> 101;
        case 6 -> 120;
        default -> -1;
    };
    System.out.println(result);
}

注意此时在switch的case下 没有了break

5:Java13 :增加文本快特性 (所见即所得)

String str2 = """
    <html>
      <head>
      </head>
      <body>
          我是正文
      </body>
    </html>
    """;//格式特点是文本块用"""包裹,输入的是什么文本,输出的就是什么文本,所见即所得;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓@酌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值