day58 异常 IO流

异常

         1异常处理机制

                编译时错误

                运行时错误

                代码逻辑错误

        2异常类结构图

        java.lang.Throwable 所有异常的父类  只有它能剖出异常

        java.lang.Error: extends Throwable 程序中的硬件严重问题不需要处理

        java.lang.Exception extends Throwable 异常 指出要捕获的处理条件

        3异常的分类

        1 RuntimeException异常及所有子类(运行时异常,非检查异常)

                空指针 下标越界 此类异常产生原因:逻辑错误 在程序中出现的几率比较小

        2Exception及子类异常(RunctimeException):检查异常 强制错误 编译错误

                SQLException  IOException

                此类异常产生原因:程序与其他第三方的程序进行数据交互时 要处理的异常

        4异常的处理方式:

                1try -catch

                        语法:

                        try{

                                可能出现的异常的代码

                                检查异常的代码

                                创建一个出现异常的异常类对象

                        }catch(Exception e){

                                匹配异常对象 

                                处理异常

                        }

        如果代码有可能出现多种异常时 是一起处理还是分开处理?

                分析有无逻辑关系 

        try带有多个catch时,catch的异常有无顺序要求?

                1如果catch多个异常有继承关系 先子类后父类。

        try有多个catch 是否可以使用一个父类异常捕获?

                解决方案相同,可以。

        finally:

                与try一起使用,表示程序是否出现异常,都必须要执行的代码。

        当代码中同时有return与finally时,先执行谁?

·

                问 final,finally,finalize三者区别?

                        final:修饰符,修饰类表示类不能被继承

                                                修饰成员方法   表示此方法不能被子类重写

                                                修饰变量,表示此变量不可更改

                        finally:与try一起使用 表示必须要执行的代码块 常用于释放资源

                        finalize:自动垃圾回收。

throws:在方法上声明异常

        语法:

                访问修饰符 返回值类型 方法名()throws 异常类名{};

         方法重写时,声明异常不能更广泛;

程序的异常处理是选择try-catch还是throws

        dao:产生数据库操作异常 使用throws

        service:(try catch)处理数据异常,throws产生业务逻辑异常

throw关键词:抛出异常对象

        语法: throw new 异常类构造方法();

自定义异常类:

        当API异常类型与业务逻辑异常不匹配时,自定义异常

        定义一个继承Exception的子类

        常与throw一起使用

        throw new 自定义异常类构造方法();

异常的关键词

        try: try块中放可能出现异常的或有检查异常的代码

        catch:捕获异常 并处理

        finally: 在异常处理机制与try一起使用,表示必须要执行的代码块,常用于释放资源

        throws:在方法上声明异常

        throw:抛出异常对象

IO流知识点:java.io包

【Java基础】I/O流 —— Java中的流都需要关闭吗?_outputstream需要关闭吗-CSDN博客

        File类及相关方法

        IO流的分类

        字节类结构图 应用

                ObjectOutputStream

                ObjectInputStream

        字符流类结构图 应用

        java.util.Properties应用(重)

        学习方式:

        输入和输出流成对使用

  File类及相关方法

      IO流的分类

                流(stream):数据从一端传输到另一端形成的有序数据流

                IO:对java程序数据进行输入和输出

                I :输入

                       数据传输到java程序中

                O:输出

                        把java程序中的数据写出到其他程序中

                2 IO流

                        按方向分:  输入输出

                        按读取字节大小分: 字节流   字符流(两字节)

                        按功能分:

                                节点(低端流) 直接操作数据

                                处理流(高端流) 装饰节点流 提高效率

字节流

           类结构

                InputStream          OutputStream

                FileInputStream      FileOutputStream

                BufferedInputStream(包装流)  

                ObjectInputStream

        常用方法:

         2. 1 输入流
                          int read()
                                  从输入流中读取数据的下一个字节。
                                  返回值 ,返回单个字节 ,文件结尾返回-1
                         int read(byte[] b)
                                  从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
                                  返回值:每次读取的字节的数量 ,文件结尾返回-1
                         int read(byte[] b, int off, int len)
                                  将输入流中最多 len 个数据字节读入 byte 数组。
                                  返回值:每次读取的字节的数量 ,文件结尾返回-1
                         void close()
                                   关闭此输入流并释放与该流关联的所有系统资源。
              2.2 输出流
                    void close()
                              关闭此输出流并释放与此流有关的所有系统资源。
                     void flush()
                              刷新此输出流并强制写出所有缓冲的输出字节。
                     void write(byte[] b)
                              将 b.length 个字节从指定的 byte 数组写入此输出流。
                     void write(byte[] b, int off, int len)
                              将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
                    abstract  void write(int b)
                              将指定的字节写入此输出流。

 FileInputStream fileInputStream = new FileInputStream("e:/dnf怀旧/a.txt");int read ;while ((read = (fileInputStream.read())) != -1){System.out.print((char) read);}fileInputStream.close();FileOutputStream fileOutputStream = new FileOutputStream("e:/dnf怀旧/a2.txt");fileOutputStream.write("advsdv".getBytes());fileOutputStream.write("ad1v32131s31dv".getBytes());fileOutputStream.close();

节点流 高端流

        1BufferedInputstream

 

        2常用方法:

                输入流

                        int read():读取单个字符 到文件结尾返回-1

                        int read(char [])

java.util.Properties

硬编码和软编码的区别?

线程:

程序 进程 线程的区别?

程序:按一定顺序编写指令集合,存储在磁盘上

进程:运行程序,系统为每个进程分配一定的内存空间

线程:在进程内部可以独立运行的代码块

        同一进程中 可以有多个线程(共享堆区的数据) 多个线程共享所在进程的内存空间

        线程结束 ,进程不会结束; 进程结束相关线程强制结束

        同一个进程中, 多个线程同时进行 ;

        以抢占cpu(时间切片)方式运行  并发运行

创建线程的几种方式

        定义一个线程类  继承java.lang.Thread  重写run方法

启动线程的方法

        start(): 启动线程的方法

        run():线程启动后运行的方法

        setName()  getName() 线程设置名字的方法

        Thread.currentThread()返回当前线程对象

线程的生命周期

线程的分类

线程调度的几种方法

线程同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解现代JavaScript:从语言特性到应用实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 JavaScript作为一门动态、解释性脚本语言&…

网络工程师笔记8

华为VRP系统 设备管理方式 web管理方式 命令行管理方式 修改命令:undo 基础配置命令

INFINI Labs 产品更新 | Easysearch 1.7.1发布

INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1。此次版本重点修复历史遗留 Bug 、网友们提的一些需求等。以下是本次更新的详细说明。 INFINI Console v1.23.0 INFINI Console 是一款非常轻量级的多集…

express+mysql+vue,从零搭建一个商城管理系统9--添加商户

提示:学习express,搭建管理系统 文章目录 前言一、新建models/shop.js二、新建routes/shop.js三、修改routes下的index.js四、添加商户总结 前言 需求:主要学习express,所以先写service部分 一、新建models/shop.js models/shop.…

PortSwigger 基于dom的漏洞-利用 DOM 破坏来启用 XSS

进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析 function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadys…

#QT(串口助手-实现)

1.IDE:QTCreator 2.实验 3.记录 (1)在widget.h中加入必要文件,并且定义一个类指针 (2)如果有类的成员不知道怎么写,可以通过以下途径搜索 (2)设置串口数据 void Widget…

海王星(Neptune)系列和大禹(DAYU)系列OpenHarmony智能硬件配置解决方案

海王星(Neptune)系列和大禹(DAYU)系列OpenHarmony智能硬件对OS的适配、部件拼装配置、启动配置和文件系统配置等。产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}_。 解决方案的目录树规则如下&…

推理判断01-程永乐-图形1

课程安排 出题形式 图形推理 1、位置规律 图形题目

首尔之春在线资源最新电影1080p高清

打开下面这个链接就可以看到 首尔之春在线资源最新电影1080p高清 如果链接打不开,就复制下面的网址到浏览器打开 https://www.zhufaka.cn/liebiao/A09504AE3BF8BD06 用阿里云盘下载,下载完成之后,用迅雷播放 首尔之春在线资源最新电影10…

winui开发笔记(五)应用程序图标

应用程序图标、发布者、显示名称大部分都在package.appxmanifest清单文件中,可以正常打开,也可以使用xml文本编辑器打开。 以下是一个正常的应用程序中所有的与图标相关的图片: 但是设置之后会有一圈白,包括在电脑最下边一行&…

HDFS简介与部署以及故障排错(超简单)

文章目录 一、HDFS介绍1、简介2、结构模型3、文件写入过程4、文件读取过程5、文件块的存放6、存储空间管理机制6.1 文件删除和恢复删除6.2 复制因子配置6.3 文件命名空间6.4 数据复制机制 二、环境搭建(单机版)1、修改主机名2、配置ssh免密登录3、Hadoop…

自然语言:信息抽取技术在CRM系统中的应用与成效

一、引言 在当今快速变化的商业环境中,客户关系管理(CRM)已成为企业成功的关键因素。CRM系统的核心在于有效地管理客户信息,跟踪与客户的每一次互动,以及深入分析这些数据以提升客户满意度和忠诚度。在我最近参与的一个…

O2O:Offline–Online Actor–Critic

IEEE TAI 2024 paper 1 Introduction 一篇offline to online 的文章,有效解决迁移过程出现的performance drop。所提出的O2AC算法首先在离线阶段添加一项BC惩罚项,用于限制策略靠近专家策略;而在在线微调阶段,通过动态调整BC的权…

【STM32F103】WDG看门狗

本系列在之前介绍时钟树的文章中有稍微提一下看门狗WDG(Watch Door Dog)。 简单来说,可以当成是一个计数器,一旦这个计数器溢出则单片机复位。因为我们需要每隔一段时间就把这个计数器的值清零(喂狗)。 I…

并发编程并发安全性之Lock锁及原理分析

ReentrantLock 用途:锁是用来解决线程安全问题的 重入锁-> 互斥锁 满足线程的互斥性意味着同一个时刻,只允许一个线程进入到加锁的代码中。多线程环境下,满足线程的顺序访问 锁的设计猜想 一定会涉及到锁的抢占,需要有一个标记来实现互…

C#不可识别的数据库格式解决方法

1.检查数据库文件路径和文件名: 确保指定的路径和文件名拼写正确,而且文件确实存在于指定的位置。使用绝对路径或相对路径都是可行的,但要确保路径的正确性 string connectionString "ProviderMicrosoft.ACE.OLEDB.12.0;Data SourceE:…

数字人解决方案——阿里EMO音频驱动肖像生成能说话能唱歌的逼真视频

前言 数字可以分为3D数字人和2D数字人。3D数字人以虚幻引擎的MetaHuman为代表,而2D数字人则现有的图像或者视频做为输入,然后生成对口型的数字人,比如有SadTalker和Wav2Lip。 SadTalker:SadTalker是一种2D数字人算法,…

Lichee Pi 4A:RISC-V架构的开源硬件之旅

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板,它凭借出色的性能和丰富的接口,吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构,还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

Java 反射详解:动态创建实例、调用方法和访问字段

“一般情况下,我们在使用某个类之前已经确定它到底是个什么类了,拿到手就直接可以使用 new 关键字来调用构造方法进行初始化,之后使用这个类的对象来进行操作。” Writer writer new Writer(); writer.setName("少年");像上面这个…

Java生成 word报告

Java生成 word报告 一、方案比较二、Apache POI 生成三、FreeMarker 生成 在网上找了好多天将数据库信息导出到 word 中的解决方案,现在将这几天的总结分享一下。总的来说,Java 导出 word 大致有 5 种。 一、方案比较 1. Jacob Jacob 是 Java-COM Bri…