第二周预习博客

2023-05-16

异常类型

Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。

Throwable

Throwable 是 Java 语言中所有错误与异常的超类。

Throwable 包含两个子类:Error(错误)和 Exception(异常)

Error(错误)

Error是非程序异常,即程序不能捕获的异常,一般是编译或者系统性的错误。

这类错误是不受检异常,非代码性错误。这种异常发生后,会直接导致JVM不可处理或者不可恢复的情况。

Exception(异常)

Exception是程序异常类,由程序内部产生。分为两类:运行时异常和编译时异常。

运行时异常

程序中可能出现这类异常时,会编译通过,但是在运行时会出现错误。程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。

非运行时异常

从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

常见的错误

  • RuntimeException

    • java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
    • java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。
    • java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等
    • java.lang.ClassNotFoundException 找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
    • java.lang.NegativeArraySizeException 数组长度为负异常
    • java.lang.ArrayStoreException 数组中包含不兼容的值抛出的异常
    • java.lang.SecurityException 安全性异常
    • java.lang.IllegalArgumentException 非法参数异常
  • IOException

    • IOException:操作输入流和输出流时可能出现的异常。
    • EOFException 文件已结束异常
    • FileNotFoundException 文件未找到异常
  • 其他

    • ClassCastException 类型转换异常类
    • ArrayStoreException 数组中包含不兼容的值抛出的异常
    • SQLException 操作数据库异常类
    • NoSuchFieldException 字段未找到异常
    • NoSuchMethodException 方法未找到抛出的异常
    • NumberFormatException 字符串转换为数字抛出的异常
    • StringIndexOutOfBoundsException 字符串索引超出范围抛出的异常
    • IllegalAccessException 不允许访问某类异常
    • InstantiationException 当应用程序试图使用Class类中的newInstance()方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常

throw和throws的区别
throw: 是真实抛出一个异常
throws: 是声明程序可能会抛出一个异常


常用类

  • 包装类
    基本数据类型包装类
    byteByte
    booleanBoolean
    shortShort
    charCharacter
    intInteger
    longLong
    floatFloat
    double Double
    Number类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number类提供了抽象方法:intValue()longValue()baozhuangleifloatValue()doubleValue(),意味着所有的“数字型”包装类都可以互相转型。
  • 字符串相关类

      String类代表不可变的字符序列

      StringBuilder类和StringBuffer类代表可变字符序列。

StringBuffer 线程安全,做线程同步检查, 效率较低

StringBuilder 线程不安全,不做线程同步检查,因此效率较高。建议采用该类。

  • 时间处理相关类

   在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。

  • Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒。
  • Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间以来的毫秒数。
  • boolean equals(Object obj)比较两个日期的相等性。
  • long getTime()返回毫秒数。
  • String toString()把此 Date 对象转换为以下形式的 String:

    dow mon dd hh:mm:ss zzz yyyy 其中:dow 是一周中的某一天 。


容器

Java容器类库是用来保存对象的。

Collection,独立元素的序列,这些元素都服从一条或多条规则。List、Set以及Queue都是Collection的一种,List必须按照顺序保存元素,而Set不能有重复元素,Queue需要按照排队规则来确定对象的顺序。
Map,Map是键值对类型,允许用户通过键来查找对象。Hash表允许我们使用另一个对象来查找某个对象。


泛型

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,分为泛型类、泛型接口、泛型方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二周预习博客 的相关文章

  • Typora修改主题样式

    Typora修改主题样式 设置 外观 主题 xff0c 单击 打开主题文件夹 打开主题文件夹 xff0c 选择github css进行修改 在设置 通用中 xff0c 勾选 开启调试模式 右键单击 xff0c 检查元素 在调试模式中进行样式
  • LeetCode中需要用到数据结构的各种方法(Java)

    String 1 获取指定下标的字符char xff1a charAt index 2 连接两个字符串 xff1a str1 concat str2 3 比较 xff1a equals str 4 返回子串 xff1a substring
  • sql的子查询中,in和exists的区别。(exists比in效率高的原因)

    下述仅为简略性的概况 xff0c 子查询中为何exists的效率比in的高 xff0c 建议读者多查阅其他资料了解 数据库中 xff0c 我们都有一个通识 xff0c 就是关于子查询中 xff0c 关键字 exists 的效率是要比关键字
  • 如何使用smb共享文件(win10),可多人同时下载

    本文为转载 xff1a SMB文件共享教程 知乎 Server Message Block SMB xff0c 是一种文件共享协议 当文件原件在你的A电脑上 xff0c 而你想在局域网下用你的手机 iPad或是另一台电脑来访问A电脑上的该文
  • 基于javafx的简单画图应用

    代码比较简单 xff0c 但初次接触javafx xff0c 会不知道从哪里下手 xff0c 多与其他人交流看看代码能让我们事半功倍 代码内容我就不多做解释 xff0c 自己有个思路知道有哪些函数该怎么下手就好 效果 xff1a 一共就只有
  • 【SpringBoot】日志文件基础教程

    日志的作用 发现和定位问题 在程序的执行过程中 如果出现了错误 我们就可以轻松的找到这个bug记录用户的登录日志 可以发现是正常用户还是恶意用户记录系统的操作日志 方便数据恢复记录程序的执行时间 SpringBoot的日志 我们在执行起项目
  • Royal TSX常见问题:解决远程桌面(RDP)连接错误

    Royal TSX mac版是一款帮助用户管理桌面的Mac桌面管理软件 xff0c Royal TSX for mac为你提供方便安全的访问远程系统 Royal TSX专为服务器管理员 系统工程师 开发人员和IT信息工作者开发设计 xff0
  • 二叉树的创建和基本操作(详解)

    文章目录 二叉树的创建 xff08 使用先序遍历 xff09 递归实现二叉树的遍历 xff1a 先序遍历 xff1a 中序遍历 xff1a 后续遍历 xff1a 一些二叉树基本操作 xff1a 求树的深度 xff1a 求树的结点个数 xff
  • c++内存四区以及new、delete用法

    c 43 43 内存四区 c 43 43 被执行时 xff0c 将内存大方向划分了四个区域 代码区 xff1a 存放函数体的二进制代码 xff0c 由操作系统进行管理的全局区 xff1a 存放全局变量和静态变量以及常量栈区 xff1a 由编
  • 【尚硅谷】HTML5+CSS3学习笔记 (七)CSS动画(含大量源码)

    xff08 七 xff09 CSS动画 61 61 本部分更多内容欢迎订阅专栏HTML 43 CSS学习专栏 xff0c 将持续更新 61 61 目录 xff1a xff08 七 xff09 CSS动画7 1 过渡 xff08 transi
  • 解决Vue报错解决Invalid prop: type check failed for prop “model“. Expected Object, got Array的问题

    在写项目的时候发生了类型匹配不符合的问题 xff0c 准确来说就是变量期望拿到的是一个对象 xff0c 但是实际上赋值给变量的是一个数组 这里我出现的问题是我的变量定义为对象 xff0c 却没有注意直接把res data xff08 数组
  • test测试类

    span class token keyword package span com span class token punctuation span chen span class token punctuation span test
  • 使用MariaDB数据库进行开发过程中遇到中文乱码的解决方式

    使用环境 xff1a idea2020版 Navicat Premium 步骤为 1 更改MariaDB默认编码格式 xff1a 在MariaDB目录的data下新建文件my cnf xff0c 并配置内容 然后重启MariaDB服务 my
  • Ubuntu22.04 VScode 安装与 OpenCV C++配置

    标题 xff1a Ubuntu22 04 VScode 安装与 OpenCV C 43 43 配置 OpenCV C 43 43 环境搭建详细图文移步 VScode 安装 下载安装包 Ubuntu软件商店安装的会出现无法输入中文 xff0c
  • Github + Hexo 搭建个人博客超详细教程

    Github 43 Hexo 搭建个人博客超详细教程 本文目录 generated with DocToc 网站搭建 本文目录1 安装node js2 添加国内镜像3 安装Git4 注册Github账号5 创建git仓库6 安装Hexo7
  • Maven的删除、安装、配置

    Maven的删除 安装 配置 文章目录 Maven的删除 安装 配置 64 toc 一 Maven删除二 下载安装Maven三 配置环境四 搭建本地仓库五 阿里云镜像六 从中央仓库下载需要的文件 点我进Gitee仓库 一 Maven删除 我
  • 2022年12月编程语言排行榜,数据来了!

    2022年迎来了最后一个月 xff0c 我们可以看到 xff0c 在这一年中编程语言起起伏伏 xff0c 有的语言始终炙手可热 xff0c 而有的语言却逐渐 没落 日前 xff0c 全球知名TIOBE编程语言社区发布了12月编程语言排行榜
  • 修改Keil工程的文件名

    在工程文件目录中 xff0c 将 uvprojx和 uvoptx重命名为目标文件名在工程文件目录中 xff0c 将包含原工程名的文件删除 xff0c 包括编译生成的Objects Listings和DebugConfig文件夹打开重命名好的
  • 聊聊ICMP协议及ping过程

    在当我们判断网络是否连通时 xff0c 使用最多的命令是ping xff0c traceroute xff0c 其是基于ICMP协议实现 xff0c 那么ICMP协议是什么 xff1f ICMP协议 ICMP xff08 Internet
  • Seata安装启动

    一 下载 https github com seata seata releases download v1 4 2 seata server 1 4 2 zip 二 启动 在安装路径下cmd seata server bat h 127

随机推荐

  • python matplotlib cannot import name ‘artist‘ from ‘matplotlib‘

    问题 xff1a import matplotlib pyplot as plt 报错 cannot import name 39 artist 39 from 39 matplotlib 39 无法从 matplotlib 导入名称 ar
  • 解决tomca导包 - org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method manageApp

    文章目录 前言两步解决导包到tomcat的问题总结 前言 本次问题是一次javaWeb导包部署到tomcat服务器上出现的问题 xff0c 问题原因 xff1a 是由于导包到idea上的jar包库 xff0c tomcat并没有该jar包
  • flex水平与垂直布局 弹性布局 垂直居中 水平平均分布

    弹性盒子元素会平均地分 span class token doctype lt DOCTYPE html gt span span class token tag span class token tag span class token
  • node基础学习

    node学习链接Node js 简介 1 node退出码 1 2 3 console log 111 process exit 0 默认情况下 xff0c 退出码为 0 xff0c 表示成功 console log 222 不执行 2 no
  • Java实现AI机器人聊天

    文章目录 前言一 账号注册申请密钥二 参数详情三 Java集成1 调用接口2 响应数据 四 效果总结 前言 OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或实现代码等场景 提供一系列具有不同学习训练的模型 xff0c 适用于
  • ubuntu20.04开启root用户并免密登录

    非root用户下命令行是有配色的 xff0c 切换到root用户就没有颜色了 所以先切换到当前用户目录 xff0c 把该用户的颜色配置文件复制到root用户下 xff1a span class token function sudo spa
  • Java快速排序

    快速排序是基于二分的思想 xff0c 对冒泡排序的一种改进 主要思想是确立一个基数 xff0c 将小于基数的数放到基数左边 xff0c 大于基数的数字放到基数的右边 xff0c 然后在对这两部分进一步排序 xff0c 从而实现对数组的排序
  • C#Socket通信与RabbitMQ消息中间件,控制台小项目

    1 实现的功能 xff1a 两个控制台Teacher xff0c 与Student xff0c 也是实体类 通过Socket发送老师与学生消息 xff0c 到服务端 xff0c 老师1s发一次 xff0c 学生0 5s发一次 xff0c 持
  • Ubuntu22.04服务器版本配置静态IP地址

    1 进入文件 etc netplan 00 installer config yam vim etc netplan 00 installer config yaml 2 配置文件内容 network ethernets ens33 dhc
  • Ubuntu22.04如何配置samba服务

    前言 xff1a 搭建过程全在root用户下完成 xff0c 如不是root用户请在命令前加上sudo 1 如果不确定自己是否安装了samba服务的可以先行查看一下 dpkg l grep smabd 2 查看完成后没有则可以下载samba
  • 求素数的两种方法(c++)

    求素数的两种方法效率最高 xff08 c 43 43 xff09 xff08 一 xff09 常规方法 给定一个数n要求它是否为素数 xff0c 只需用n依次初从2到根号n xff0c 如果都不能被整除那么该数为素数 代码如下 xff1a
  • 【Android】ViewPager + RadioGroup + Fragment 实现底部导航栏和页面切换

    1 效果预览 2 activity main xml 布局文件 lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt RelativeLayout xmlns android 6
  • 如何在Ubuntu20.04上安装chrome

    我们将从官方网站上下载安装文件 xff0c 然后从命令进行安装 具体步骤如下 打开终端 xff0c 使用wget下载最新的Google Chrome deb软件包 xff1a wget https span class token oper
  • java.sql.SQLException: 数字溢出 的解决办法

    Java sql SQLException xff1a 数字溢出 的错误 原因 xff1a 1 使用的jdbc驱动与数据库版本不匹配引起的 xff0c 把版本改为一致 xff1b 2 可能是数据库的某个NUMBER类型的字段超出对应实体类属
  • firewalld防火墙

    一 xff0c 防火墙的分类 1 xff0c 软硬件形式 xff1a 软件防火墙 xff1b 硬件防火墙 xff1b 芯片级防火墙 2 xff0c 防火墙技术 xff1a 包过滤型 xff1b 应用代理型 3 xff0c 防火墙结构 xff
  • 《Linux内核设计与实现》

    文章目录 前言第1章 xff1a Linux内核简介第3章 xff1a 进程管理进程进程描述符及任务结构分配进程描述符进程描述符的存放进程状态设置当前进程的状态进程上下文切换进程家族树 进程创建写时拷贝fork 线程在linux中的实现创建
  • Python配置OpenCV

    一 背景 有个任务需要进行图像样本扩充 xff0c 本人想要使用cv2来帮忙扩充电脑重装过系统 xff0c 之前的环境都没有了参考之前自己写的博客 xff0c 使用Anaconda安装失败了 xff0c 一直显示下面的错误 xff0c 目前
  • 逆置整数(非数组)

    Description 读入一个非负整数N xff0c 请将它反向输出 Input 有多个测试用例 xff0c 每个测试用例占一行 xff0c 是一个非负整数 N xff08 0 N lt 231 xff09 Output 为每个测试用例输
  • 基于java学习安装jdk后环境配置正常也编译运行时出错

    安装了jdk和jre xff0c 环境配置也正常 xff0c 但是用DOS cmd命令 xff09 时分别输入java version和javac version xff0c 发现信息显示不一致 xff0c 出现两个版本的jdk 刚开始没觉
  • 第二周预习博客

    异常类型 Java通 过API中Throwable类的众多子类描述各种不同的异常 因而 xff0c Java异常都是对象 xff0c 是Throwable子类的实例 xff0c 描述了出现在一段编码中的 错误条件 当条件生成时 xff0c