java入门六:java基础终章

2023-11-16

1、static关键字

静态变量和类一起加载,final修饰后的类无法被继承
在这里插入图片描述

2、抽象类

①abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类。
抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。
②抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。
③抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
④子类继承抽象类,那么就必须要实现抽象类中没有实习那的抽象方法,否则该子类也要声明为抽象类
在这里插入图片描述

3、接口的定义与实现

①普通类:只有具体实现
②抽象类:具体实现和规范(抽象方法)都有!
③接口:只有规范!,自己无法写方法,专业的约束,约束和实现分离
④接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想,
⑤接口的本质是契约,就像法律一样,制定好了大家都得遵守
OO的精髓就是对对象的抽象,最能体现这一点的就是接口,为什么我们讨论设计模式都只针对具备了抽象能力的语言(C++、java、C#)就是因为设计模式所研究的,实际上就是如何合理的去抽象。
⑥声明类的关键字是class、声明接口的关键字是interface
在这里插入图片描述

4、N种内部类

内部类就是在一个类的内部再定义一个类,比如A类中定义一个B类,那么B类相对于A类来说就是称为内部类,而A类相对于B类来说就是外部类,内部类一共有如下四种
①成员内部类②静态内部类③局部内部类④匿名内部类

5、异常机制

5.1异常简介

异常的定义:程序在运行过程中可能会出现一些错误。比如: 使用了不存在的索引、两个不同类型的数据相加、文件找不到、网络连接失败、非法参数…这些错误我们称之为异常,它发生在程序运行的时候,影响了正常程序的执行流程
①检查性异常:最具代表性的检查性异常就是用户问题引起的异常,这是程序员无法预见的,例如打开一个不存在的文件,这些异常再编译时不能被简单的忽略掉
②运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略
③错误:错误不是异常,而是脱离了程序员的控制,错误在代码中通常被忽略,例如当栈溢出时,就报错,但是程序在编译的时候是检测不到的

5.2异常体系结构

java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类
在java API中已经定义了许多的异常类,这些异常类分为两大类,错误Error和异常Exception

5.2.1Error

①Error对象由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关
②java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需要的内存资源时,将出现OutOfMemoryError。这些异常发生时,java虚拟机(JVM)一般会选择线程终止

5.2.2Exception

在Exception分支中有一个重要的子类RuntimeException(运行时异常)
ArrayIndexOutOfBoundsException(数组下标越界)
NullPointerException(空指针异常)
ArithmeticException(算数异常)
MissingResourceException(丢失资源)
ClassNotFoundException(找不到类异常)
这些异常不是检查异常,程序可以选择捕获处理,也可以不处理
这些异常室友程序的逻辑错误引起的,程序应该从逻辑的角度尽可能避免这类异常的发生

Error和Exception的区别:Error时灾难性的知名的错误,是程序无法控制和处理的,当出现这些异常的时候,Java虚拟机(JVM)一般会选择终止线程,Exception通常情况下时可以被程序处理的,并且在程序中应该尽可能的去处理这些异常

5.3java异常处理机制

抛出异常
在这里插入图片描述

捕获异常:只要捕获到了异常或者是没捕获到但是报错了try里面的代码就不会在继续执行了,想要捕获多个异常注意从小到大书写异常
异常处理的五个关键字
try、catch、finally、throw、throws
在这里插入图片描述

5.4自定义异常

①创建自定义异常类,只需要继承Exception类即可
②在方法中通过throw关键字抛出异常
③如果在当前抛出异常的方法中处理异常,可以通过try-catch语句捕获并处理,否则在方法的声明处通过throws关键字指明要拍出给方法调用者的异常,继续进行下一步操作
④在出现异常方法的调用者中捕获并处理异常
在这里插入图片描述

shift+shift可以搜索文件
在这里插入图片描述
处理异常的常用规则
①处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
②对于不确定的代码,也可以加上try-catch,处理潜在的异常
③尽量去处理异常,切记只是简单的printStackTrace()去打印输出
④具体如何处理异常,要根据不同的业务需求和异常类型去决定
⑤尽量添加finally语句去释放占用的资源

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

java入门六:java基础终章 的相关文章

  • 相关概念地址笔记

    公平锁与非公平锁 https www jianshu com p f584799f1c77 java socket编程https www cnblogs com mingforyou p 3258418 html java四种引用类型htt
  • RocketMQ解析

    文章目录 1 单机版消息中心 2 分布式消息中心 2 1 问题与解决 2 1 1 消息丢失的问题 2 1 2 同步落盘怎么才能快 2 1 3 消息堆积的问题 2 1 4 定时消息的实现 2 1 5 顺序消息的实现 2 1 6 分布式消息的实
  • Think in java书籍阅读小结

    一 博客说明 本篇博客为本人看完think in java这本书后 个人查漏补缺的一些知识点 记录下来作为笔记使用 二 变量初始化顺序 在一个类里 变量初始化的顺序是由变量在类内的定义顺序决定的 即使变量定义大量遍布于方法定义的后面 那些变
  • (java基础学习)异常

    1 基本概念 java语言中 将程序中发生的不正常情况称为 异常 开发过程中的语法错误和逻辑错误不是异常 2 异常事件分为两大类 1 Error 错误 2 Exception 1 Error 错误 java虚拟机无法解决的严重问题 如 JV
  • java入门二:java流程控制

    1 用户交互Scanner java util Scanner是Java5的新特性 可以通过Scanner类来获取用户的输入 基本语法 Scanner s new Scanner System in 通过Scanner类的next 与nex
  • java入门一:java语法基础

    1 注释 标识符 单行注释 多行注释 文字 文档注释 文字 注释不会被编译 写给程序员看 平时写代码一定写注释 方便别人看的懂你的代码 或者写久了自己忘了干嘛的 关键字 abstract assert boolean int class 不
  • java进阶一:java集合

    1 集合简介 集合和数组类似 都是储存元素的容器 数组像是静态容器 长度一旦创建就不能再改变 元素类型必须统一 只能通过下标去索引元素等 集合像是动态容器 集合的长度可以动态的改变 元素类型可以不一致 可以用某个映射的关系去索引元素等 ja
  • Android校招复习全书(1)-j2se

    一 九种基本数据类型的大小 以及他们的封装类 关于JAVA基本数据类型 名称 解释 长度 位 默认值 封装类 byte 字节 8 0 Byte shot 短整型 16 0 Short int 整型 32 0 Integer long 长整型
  • 关于java中File类的总结

    1 File类只是操作文件 不涉及内容 2 File类的重要方法 设置完整路径 public File String filename 删除文件 public boolean delete 判断文件是否存在 public boolean e
  • JAV学习Object类

    Obj类 首先我们要认识到 Object类是我们所有类的顶层父类 所有类都是直接或者间接的继承自他 我们可以将它new出来也就是格式 Object obj new Object 我们罗列出来objct类的常用方法然后再一一介绍 方法名 ob
  • Java中局部变量、静态变量、静态方法的有效范围与调用

    1 局部变量 定义 在成员方法中定义的变量称为局部变量 方法中的形参也可以作为局部变量 例 public void method1 n i均为局部变量 int n for int i 0 i lt 5 i System out printl
  • c# 中MD5.ComputeHash() aes加密,在Java和golang中的实现

    类似移植C 代码需求 需要加密效果一致 C 中使用了AesCryptoServiceProvider加密 文档链接 AesCryptoServiceProvider 类 下载里面代码在Visul Studio2019中可以针对原加密字符解密
  • JDK源码系列 & JAVA语言数据类型Byte

    目录 类的继承结构图 类的Diagram图 类 类的注释 源码分析 全局变量 静态内部类 构造方法 静态方法 parseByte 静态方法 valueOf 静态方法 toString 静态方法 hashCode 静态方法 decode 静态
  • Java基础学习之函数式编程Comsumer接口(JDK8)

    前言 从毕业到现在正好三年 高难度的项目做了不少 但是基础这个东西一段时间不接触就会忘得一干二净 话不多说 开始今天的学习 1 Consumer接口 接触过 消费者 生产者 模式的同学 肯定对这个单词不陌生 在java8函数式编程和lamb
  • Java学习(对象与类)——文档注释,生成JavaDoc文件

    目录 注释的插入 类注释 方法注释 字段注释 通用注释 包注释 生成帮助文档JavaDoc 注释的插入 javadoc实用工具从下面几项中抽取信息 模块 包 公共类和接口 公共的和受保护的字段 公共的和受保护的构造器及方法 每个文档注释 包
  • 30--子类对象的实例化过程

    在继承的操作中 对于子类的实例化也是有要求的 即子类对象在实例化之前必须首先调用父类中的构造方法 然后再调用子类自己的构造方法 实例1 定义父类 package com qwy bean public class Person privat
  • java入门四:数组

    1 数组概述 数组是最简单的数据结构 是相同类型数据的有序集合 数组描述的是相同类型的若干个数据 按照一定的先后次序排列组合而成的 数组中 每一个数据称作一个数组元素 每个数组元素可以通过一个下标来访问他们 2 数组的声明创建 首先必须声明
  • Java基础学习之函数式编程Predicate接口(JDK8)

    前言 今天继续来学习函数式编程接口之Predicate接口 1 上源码 package javax persistence criteria import java util List public interface Predicate
  • java入门六:java基础终章

    1 static关键字 静态变量和类一起加载 final修饰后的类无法被继承 2 抽象类 abstract修饰符可以用来修饰方法也可以修饰类 如果修饰方法 那么该方法就是抽象方法 如果修饰类 那么该类就是抽象类 抽象类中可以没有抽象方法 但
  • Java基础学习之并发篇:手写阻塞队列ArrayBlockingQueue

    学习目标 我们都知道在并发编程中 阻塞队列在多线程中的场景特别有用 比如在生产和消费者模型中 生产者生产数据到队列 队列满时需要阻塞线程 停止生产 消费者消费队列 对队列为空时阻塞线程停止消费 在Java中有提供不同场景的阻塞队列 那么接下

随机推荐

  • OSI网络模型(TCP/IP五层模型)

    互联网由一系列的网络协议组成 这些协议的集合叫做OSI协议 按照功能可以划分为七层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 也就是我们常说的OSI七层模型 每一层使用下层提供的服务 并向上层提供服务 OSI七层模型只是一
  • uni-app store 状态管理学习,多写几遍就会了

    uni app使用了一段时间了 一直没有用到store 状态管理 还是应该学习一下 以后会用到的 1 使用hbuiderx创建uni app项目 2 与static同级创建store文件夹 store文件夹下创建index js 3 关键i
  • sqlserver数据类型转换(将 nvarchar 转换为数据类型 numeric 时出现算术溢出错误)

    一般情况下 sqlserver会自动完成数据转换 但这种转换有时候很容易出错 尤其是nvarchar转换为numeric时 如果能够明确数据类型 最好显式转换 举个我遇到的例子 SELECT FROM ITEM INFO TEST WHER
  • BLE学习(4):蓝牙地址类型和设备的隐私

    蓝牙地址也被称为蓝牙MAC地址 它能唯一标识一个蓝牙设备的48位的值 在蓝牙规范中 它被称为BD ADDR 蓝牙的地址类型可以分为两种 public addresses和random addresses 其中random addresses
  • visual studio2019创建运行第一个C++详细步骤与断点调试的简单认识

    是去官网下的社区版 可以用自己的微软账号登录也不需要网上找破解版了 安装过程还是很顺利的 下面在第一次使用vs2019下创建C 项目 依次helloworld 计算器类 首先明确 在vs中是使用项目来组织代码 使用解决方案来组织项目 所以首
  • adb连接及常用命令

    adb命令连接模拟器设备 以夜神模拟器为例 夜神模拟器默认端口为62001 adb connect 127 0 0 1 62001 当打开了多个模拟器 设备连接失败时 解决方法 查看连接的设备 可以查看连接的adb的设备情况 如果连接多个设
  • 02_计算机网络笔记-网络拓扑-交换机-VLAN

    文章目录 一般家庭的网络拓扑 交换机的基本原理与配置 虚拟局域网VLAN 个人博客 https blog csdn net cPen web 一般家庭的网络拓扑 光猫 调制解调器 1 光信号和电信号的转换 2 路由器的功能 可以拨号 账号和
  • MyBatis 采用注解方式批量更新数据 @Mapper @Update (包含2种方法)

    批量更新数据方法 1 注释db filed name 表示的是的数据库字段名字 entity name 表示的是你的实体字段 table name 表示你的表名 Update
  • ONNXRUNTUIME c++使用(分割网络)与相关资料(暂记)

    下面的教程是在linux系统上运行的 如果想在windows系统上运行 可以看官方链接或中文教程https bbs huaweicloud com blogs 335706 官方链接中有完整的VS的带 sln的项目 ONNXRUNTUIME
  • ES学习笔记之-ClusterState的学习

    前面研究过ES的get api的整体思路 作为编写ES插件时的借鉴 当时的重点在与理解整体流程 主要是shardOperation 的方法内部的调用逻辑 就弱化了shards 方法 实际上shards 方法在理解ES的结构层面 作用更大一些
  • JAVA获取IP地址、电脑Mac地址

    1 获取IP地址 注意 IP地址经过多次反向代理后会有多个IP值 其中第一个IP才是真实IP 所以不能通过 request getRemoteAddr 获取IP地址 如果使用了多级反向代理的话 X Forwarded For的值并不止一个
  • javaWeb项目中分页和模糊查询技术

    分页 需求 登录成功后 展现全部时 出现分页 思路 前端 1 设置分页按钮 以及分页数据 页码 总页数 总条数 2 设置分页请求 即点击上一页 下一页时发请求 后端 3 web xml映射 映射到Servlet能接收请求 4 Dao查询分页
  • opencv实践项目-人脸检测

    目录 1 opencv CascadeClassifier人脸检测步骤 2 CascadeClassifier分类器简介 2 1 从文件中加载级联分类器 2 2 目标检测方法 3 代码实现 1 opencv CascadeClassifie
  • SRVE0255E: A WebGroup/Virtual Host to handle /p2pd/servlet/dispatch has not been defined.

    Technote troubleshooting Problem Abstract When setting up IBM Cognos within IBM WebSphere the URI is not accessible The
  • 【MySQL】轻松学习 普通索引

    目录 引言 一 普通索引的创建 1 创建表时定义索引 2 已存在的表上创建索引 3 ALTER TABLE 语句创建索引 二 查看索引执行情况 引言 创建索引是指在某个表的一列或多列上建立一个索引 以便提高对表的访问速度 创建索引有3种方式
  • umijs----路由(修改路由的某一个path )

    1 在src下创建app js ts tsx 2 修改路由 export function patchRoutes routes routes为 umirc ts中设置的routes数组 可以使用数组的方法插入删除 运行时在最前面插入一个路
  • Webpack配置Vue热更新

    Webpack配置Vue热更新 需要的包 cnpm i vue webpack webpack cli webpack dev server html webpack plugin clean webpack plugin style lo
  • 【正点原子MP157连载】第七章 认识HAL库-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南

    1 实验平台 正点原子STM32MP157开发板 2 购买链接 https item taobao com item htm id 629270721801 3 全套实验源码 手册 视频下载地址 http www openedv com t
  • selenium4

    1 单选框和复选框 单选框 type radio 定位 gt 点击 判断是否被选中 元素 is selected 复选框 type checkbox 只选择一个 gt 同单选框一样 全选 定位所有复选框 遍历 判断是否被选中 点击 选择部分
  • java入门六:java基础终章

    1 static关键字 静态变量和类一起加载 final修饰后的类无法被继承 2 抽象类 abstract修饰符可以用来修饰方法也可以修饰类 如果修饰方法 那么该方法就是抽象方法 如果修饰类 那么该类就是抽象类 抽象类中可以没有抽象方法 但