高效告别996,开启java高效编程之门4-5twr进阶与特殊情况

扈江离与辟芷兮,纫秋兰以为佩。      2022-04-05     355

关键词:

1    重点:

1.1  TWR简介

1.2  class反编译查看TWR方式关闭物理流资源

 

 

2    TWR简介

◆Java7引入新特性
◆优雅关闭资源
◆一种Java语法糖

 

 

 

3    class反编译查看TWR方式关闭物理流资源idea内置工具class反编译

 

 

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.imooc.zhangxiaoxi.resource;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.junit.Test;

public class FileCopyTestNew {
    public FileCopyTestNew() {
    }

    @Test
    public void fileCopyTestNew() {
        String fileInputStreamUrl = "lib2/FileCopyTest.java";
        String fileOutputStreamUrl = "targetTest/target2.txt";

        try {
            FileInputStream fileInputStream = new FileInputStream(fileInputStreamUrl);
            Throwable var4 = null;

            try {
                FileOutputStream fileOutputStream = new FileOutputStream(fileOutputStreamUrl);
                Throwable var6 = null;

                try {
                    int conent;
                    try {
                        while((conent = fileInputStream.read()) != -1) {
                            fileOutputStream.write(conent);
                        }
                    } catch (Throwable var22) {
                        var6 = var22;
                        throw var22;
                    }
                } finally {
                    $closeResource(var6, fileOutputStream);
                }
            } catch (Throwable var24) {
                var4 = var24;
                throw var24;
            } finally {
                $closeResource(var4, fileInputStream);
            }
        } catch (FileNotFoundException var26) {
            var26.printStackTrace();
        } catch (IOException var27) {
            var27.printStackTrace();
        }

    }
}

 

 

 

 

 

 

4    课程缺失

 

 

 

5    资源关闭特殊情况

◆资源对象被return的情况下,由调用方关闭
◆ByteArraylnputStream等不需要检查关闭的资源对象,
◆使用Socket获取的InputStream和OutputStream对象不需要关闭

 

高效告别996,开启java高效编程之门3-26去重

1    重点:1.1  去重demo1.2  重写equals和hashcode方法(用lombok的标签@Data@AllArgsConstructor不需要重写方法)1.3  equals和hashcode的必要关系两个对象相等,hashcode一定相等两个对象不等,hashcode不一定不等hashcode相等,两个对... 查看详情

高效告别996,开启java高效编程之门3-1流式编程开场与案例场景概述

1    使用场景对集合数组处理的各种场景  2    案例选用第2章,购物车案例,通过3-2原始方法对集合的处理和3-3Stream流的处理。感受差异 查看详情

高效告别996,开启java高效编程之门3-6流操作分类

1    重点理解流程操作分类常用的方法  2    Stream流操作分类:2.1  流操作分类之中间操作(Intermediate):无状态操作——filter/map/peek等有状态操作——dictinct/sorted/limit等 2.2  流操作分类之... 查看详情

高效告别996,开启java高效编程之门2-15方法引用精讲

2-14课程和2-12重复了,所以没有发出来1  方法引用使用条件 判断方法引用是否满足场景的要求的时候,只需要看我们的出参和入参是否满足接口的要求即可 2  方法引用场景 四种方法引用类型:指向静态方法 ... 查看详情

高效告别996,开启java高效编程之门3-23汇总操作实战案例(代码片段)

1    重点:1.1  reducedemo组成1.2  准备数据1.3  并行计算 2    规约操作实战案例测试类:packagecom.imooc.zhangxiaoxi.stream;importcom.alibaba.fastjson.JSONObject;importcom.google.common.collect.Lists;importorg.junit.Test;i 查看详情

高效告别996,开启java高效编程之门4-3传统方式关闭流资源

1    重点:1.1  关闭输入流输出流顺序1.2  demo对比,本节目的:展现传统关闭流方式的繁琐1.3  demo对比自己错误,字节读取的时候用while循环1.4  demo对比自己错误,输入流输出流的创建 fileInputStream=newFileInputSt... 查看详情

高效告别996,开启java高效编程之门5-1guava开场

1    重点:1.1  Guava工具集简介1.2  Guava和jdk8如何避免null  2    GoogleGuava 工具集简介Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字... 查看详情

高效告别996,开启java高效编程之门4-3传统方式关闭流资源

1    重点:1.1  关闭输入流输出流顺序1.2  demo对比,本节目的:展现传统关闭流方式的繁琐1.3  demo对比自己错误,字节读取的时候用while循环1.4  demo对比自己错误,输入流输出流的创建 fileInputStream=newFileInputSt... 查看详情

高效告别996,开启java高效编程之门3-13实战:常用终端操作之最大/最小/计数

1    重点1.1  max,min,count方法最大/最小/计数 2    Demo之Maxdemo:@TestpublicvoidmaxTest(){OptionalDoubleoptional=list.stream().mapToDouble(sku->sku.getTotalPrice()).max();System.out.println(optional.getA 查看详情

高效告别996,开启java高效编程之门4-5twr进阶与特殊情况

1    重点:1.1  TWR简介1.2  class反编译查看TWR方式关闭物理流资源  2    TWR简介◆Java7引入新特性◆优雅关闭资源◆一种Java语法糖   3    class反编译查看TWR方式关闭物理流资源(idea内置工具c... 查看详情

高效告别996,开启java高效编程之门3-2传统方式处理业务逻辑

1    重点1.1    对sort方法使用的理解  2    代码演练需求: 根据第一章需求,女盆友提出需求*1打印所有商品*2图书类的商品一定给买*3最贵的买两件*4打印最贵的两件商品的名称和总价 测试类:pack... 查看详情

高效告别996,开启java高效编程之门3-5stream流概念解析

3-4讲的没有意义,直接过了1    重点概念解析中的定义Stream流的组成Stream流和集合的区别 2    概念解析定义:从支持数据处理操作的源生成的元素序列。 解释:元素序列:和集合一样,流也是一个接口,可以... 查看详情

高效告别996,开启java高效编程之门3-16收集器与预定义收集器概述

1    重点:1.1  collect/Collect/Collectors的区别  2    收集器概述:2.1  收集器的作用:将流中的元素累积成一个结果2.2  作用于终端操作collect上2.3  collect/Collector/Collectors的区别collect是流收集的一个方法... 查看详情

高效告别996,开启java高效编程之门3-7实战:常用中间操作演示之:过滤/映射/扁平化filter/map/flagmap

1    重点filter方法的使用map方法的使用flatMap方法的使用forEach方法的使用 2    map和flatMap的区别:map的作用很容易理解就是对rdd之中的元素进行逐一进行函数操作映射为另外一个rdd。flatMap的操作是将函数应用于rdd之... 查看详情

java之函数编程(代码片段)

前言    本系列文章为在《告别996,开启Java高效编程之门》学习过程中的学习笔记和课外资料补充,希望可以方便自己和其他需要的同学查阅。Lambda表达式简介    ①Java8引入的函数式编程风格;    ②可以理解... 查看详情

java之函数编程(代码片段)

前言    本系列文章为在《告别996,开启Java高效编程之门》学习过程中的学习笔记和课外资料补充,希望可以方便自己和其他需要的同学查阅。Lambda表达式简介    ①Java8引入的函数式编程风格;    ②可以理解... 查看详情

如何优化java代码及提高执行效率

张小喜告别996实现高效编程减少开发压力开启Java高效编程之门(完整版高清视频)百度网盘  链接:https://pan.baidu.com/s/1kKaGzsXHu3Cy7MqvIY7r3g提取码:aizj复制这段内容后打开百度网盘手机App,操作更方便哦   若资源有... 查看详情

[java并发编程实战]构建一个高效可复用缓存程序(含代码)

[Java并发编程实战]构建一个高效可复用缓存程序(含代码)  查看详情