day58 异常 IO流

news2024/11/19 7:29:27

异常

         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.coloradmin.cn/o/1492008.html

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

相关文章

Licky‘s Escape 现已在苹果应用商店上线!

Pixelcraft 隆重推出 Aavegotchi 的首款手机游戏 —— Lickys Escape! Lickys_Escape_Launch1_2024--1- 与 Licky 一起潜入 Gotchiverse吧!Licky是一只憨厚但勇敢的Lickquidator,但它的任务出了差错。被一群卑鄙的 Gotchis 抓走后&#xff0c…

户外、春衣、养发……阿里妈妈经营指南揭秘38消费热点

在春天这个万象更新的季节,春天生意也在升温。 内容平台上,#成都醉美樱花季 #春天穿什么 互动增长率分别达到了156倍、252倍;#初春氛围感穿搭 #春游记 的互动增长率分别达到了77倍、24倍……“赏花”“穿搭”“居家锻炼”等和春天有关的消费…

计算机组成原理之机器:计算机系统的基本概念

计算机组成原理之机器 笔记来源:哈尔滨工业大学计算机组成原理(哈工大刘宏伟) Chapter1:计算机系统的基本概念 1.1 计算机系统简介 从物理构成的角度对计算机系统分层 计算机组成原理主要关注微体系结构(Mirco-arc…

2024年3月6日 十二生肖 今日运势

小运播报:2024年3月6日,星期三,农历正月廿六 (甲辰年丁卯月己巳日),法定工作日。 红榜生肖:牛、猴、鸡 需要注意:鼠、虎、猪 喜神方位:东北方 财神方位:正…

知识图谱辅助的个性化推荐系统

知识图谱辅助的个性化推荐系统 将从下面4个方面展开: 推荐系统的基础知识知识图谱辅助的推荐方法介绍基于embedding的知识图谱推荐方法混合型知识图谱推荐方法 推荐系统的基础知识 1、什么是推荐系统 在当前互联网时代,推荐系统是所有面向用户的互联…

《剑指offer》14--剪绳子(整数拆分)[C++]

目录 题目描述 贪心算法 输出结果 题目描述 把一根绳子剪成多段,并且使得每段的长度乘积最大。 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释:…

Java基于SpringBoot的在线视频教育平台的设计与实现论文

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线视频教育平台,它彻底改变了过…

Vue基础篇

Vue Vue是一套用于构建用户界面的渐进式JavaScript框架 什么是渐进式? Vue可以自底向上逐层地应用; 当构建简单应用时, 只需一个轻量小巧的核心库; 当构建复杂应用时, 可以引入各式各样的Vue插件 Vue具有以下特点: 采用组件化模式, 提高代码复用率且让代码更好维护 声明式编…

Claude3发布,ChatGPT-4 跌下神坛!兄弟相残?

就在3月5号凌晨,大家还在睡梦中的时候,Anthropic在X上低调的发布了Claude3,没有华丽的辞藻,没有大篇幅的介绍,只是简单的发了个帖子...... 几行简单的文字,浓缩着其一年多来的努力~ 真是让人不禁感叹&…

【STM32F103】WDG看门狗

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

【主题广范|见刊快】2024年可再生能源与智能电网国际学术会议(ICRESG 2024)

【主题广范|见刊快】2024年可再生能源与智能电网国际学术会议(ICRESG 2024) 2024 International Conference Renewable Energy and Smart Grid 本次会议汇聚了来自全球各地的专家学者,共同探讨可再生能源与智能电网领域的最新研究成果、技术进展和未来发展趋势。会…

linux kernel物理内存概述(六)

目录 伙伴系统 1、什么是伙伴? 2、伙伴系统的分配原理 3、伙伴系统回收 伙伴系统 1、什么是伙伴? 伙伴必须是大小相同并且在物理上连续的两个或者多个页。 2、伙伴系统的分配原理 首先根据内存分配接口函数gfp_t gfp_mask,找到内存分…

vue iis 配置

下载安装两个IIS模块 1). 传送门:URL Rewrite 2). 传送门:Application Request Routing 注 : 只有在 服务器的主页 有Application Request Routing 部署VUE网站 生成网站 在VUE项目打包生成出发布文件,即文件夹 dist,此处忽略 复制到你需要存放网站的…

【OpenGL】(1) 专栏介绍:OpenGL 库 | 3D 计算机图形应用 | GPGPU 计算 | 3D 建模和 3D动画 | 渲染技术介绍

🔗 《C语言趣味教程》👈 猛戳订阅!!! 💭 写在前面:本专栏主要内容是关于 3D 计算机图形技术的学习,重点是学习与此技术相关的 3D 实时渲染 (3D real-time rendering) 技术。我们会以…

c语言经典测试题11

1.题1 #include <stdio.h> int main() { int a[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p a 5, *q NULL; *q *(p5); printf("%d %d\n", *p, *q); return 0; }上述代码的运行结果是什么呢&#xff1f; 我们来分析一下&#xff1a;我们创建了一个数…

什么是AJAX?它的运用场景有哪些?

文章目录 前言一、什么是AJAX二、AJAX原理是什么三、为什么需要AJAX四、AJAX的使用五、AJAX的应用场景 前言 AJAX 即 Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创…

网络协议栈--应用层--HTTP协议

目录 本节重点理解应用层的作用, 初识HTTP协议 一、应用层二、HTTP协议2.1 认识URL2.2 urlencode和urldecode2.3 HTTP协议格式2.4 HTTP的方法2.4 HTTP的状态码2.5 HTTP常见的Header属性 三、最简单的HTTP服务器3.1 HttpServer.hpp3.2 HttpServer.cc3.3 HttpClient.cc3.4 log.hp…

MySQL之表基本操作及重要概念

前言 表就相当于文件夹中的excel文件&#xff0c;表中的每一条记录就是excel中的一条记录&#xff0c;字段就是表格的表头&#xff0c;记录就是表格中的每一行数据本文将详细介绍表相关操作、mysql存储引擎、字段数据类型及约束条件等知识。 存储引擎 计算机中存储的文件格式…

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图&#xff1a;Discuz X3.5的系统信息&#xff0c;上传许可为1024MB(1GB) 论坛为局域网论坛&#xff0c;仅供内部同事交流使用&#xff01; 使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图&#xff1a;选择上传附件&#xff08;提示可以最大上传100M&#xff09;…

新模型Claude 3实测!各项能力超强,确实比GPT-4好用

2024最新教程Claude 3注册账号&#xff0c;小白教程包教包会 过去不到一个月&#xff0c;OpenAI 扔出 Sora 这个重磅炸弹后成为全球焦点&#xff0c;不断推出的视频更是赚足眼球、热度不减。昨晚&#xff0c;Anthropic 突然惊喜上线&#xff0c;时隔八个月携着 Claude 3 走来&…