JAVA复习之异常处理、 常用类和枚举类型

Java考试复习 java考试复习 1) 判断题、单选题、填空题看网上测试; 注意!!!(单选题答案里面的粗黑的有分号是代表同时满足;填空题答案里面的粗黑的有分号是代表其中一个就满足) 第1章 (做错的题目) 判断题 java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×) 解释: PPT解释(Java有一个系统级的线程,对内存的使用进行跟踪,该线程可以在系统空闲时对不用的内存进行回收,使程序员从繁忙的内存管理中解放出来。) JAVA虽然有垃圾回收机制,但是不能在指定的时间释放内存对象,只能在程序运 阅读详情

一、异常

在这里插入图片描述

在这里插入图片描述

1、异常分类

在这里插入图片描述
空指针异常(IndexOutBoundsException)、数据类型转换异常(NumberFormatException)

2、捕捉处理异常

在这里插入图片描述

3、异常中断机制

在这里插入图片描述

4、finally代码块

在这里插入图片描述
以下特殊情况下。finally块不会被执行:
①在finally代码块中产生了异常;
②在前面的代码中使用了System.exit()退出程序;
③程序所在的线程死亡;
在这里插入图片描述

5、使用throws关键字抛出异常(一)

在这里插入图片描述
在这里插入图片描述

6、使用throws关键字抛出异常(二)

在这里插入图片描述

7、throws关键字和throw关键字的区别?

①throws用在方法声明后面,表示抛出异常,由方法的调用者处理,而throw用在方法体内,用来制造一个异常,由方法体内的语句处理;
②throws是声明这个方法会抛出这种类型的异常,以便使它的调用者知道要捕捉这个异常,而throw是直接抛出一个异常实例;
③throws表示出现异常的一种可能性,并不一定会产生这些异常,但如果使用throw,就一定会产生某种异常;

8、异常的使用原则

①不要过度使用异常;②不要使用过于庞大的try-catch块;③避免使用catch(Exception e);④不要忽略捕捉到的异常,遇到异常一定要及时处理,⑤如果父类抛出多个异常,则覆盖方法必须抛出相同的异常或其异常的子类,不能抛出新异常;

二、Java常用类和枚举类型

1、为什么java会提供包装类?

因此java是一种面向对象的编程语言,为了能把基本数据类型当作对象出来,java提供了包装类的概念;
在这里插入图片描述
在这里插入图片描述

2、Integer类

在这里插入图片描述

public class Demo {
	public static void main(String[] args) {
		int num = Integer.parseInt("456"); // 将字符串转换为int类型
		Integer iNum = Integer.valueOf("456"); // 通过构造函数创建一个Integer对象
		System.out.println("int数据与Integer对象的比较:" + iNum.equals(num));
		String str2 = Integer.toBinaryString(num); // 获取数字的二进制表示
		String str3 = Integer.toHexString(num); // 获取数字的十六进制表示
		String str4 = Integer.toOctalString(num); // 获取数字的八进制表示
		String str5 = Integer.toString(num, 15); // 获取数字的十五进制表示
		System.out.println("456的二进制表示为:" + str2);
		System.out.println("456的十六进制表示为:" + str3);
		System.out.println("456的八进制表示为:" + str4);
		System.out.println("456的十五进制表示为:" + str5);
	}
}

2、Integer类【抽象类不能直接创实例对象】

在这里插入图片描述

3、Math类

在这里插入图片描述
在这里插入图片描述

public class ExponentFunction {
	public static void main(String[] args) {
		System.out.println("e的平方:" + Math.exp(2)); // 取e的2次方
		System.out.println("以e为底数,2的对数:" + Math.log(2)); // 取以e为底2的对数
		System.out.println("以10为底数,2的对数:" + Math.log10(2)); // 取以10为底2的对数
		System.out.println("4的算术平方根:" + Math.sqrt(4)); // 取4的平方根
		System.out.println("8的立方根:" + Math.cbrt(8)); // 取8的立方根
		System.out.println("2的平方:" + Math.pow(2, 2)); // 取2的2次方
	}
}

在这里插入图片描述

5、Random类

在这里插入图片描述
案例之微信抢红包:

import java.util.Random;
import java.util.Scanner;


public class RedBags { // 创建一个RedBags类
	public static void main(String[] args) {
		System.out.println("—————————模拟微信抢红包—————————\n");
		Scanner sc = new Scanner(System.in); // 控制台输入
		System.out.print("请输入要装入红包的总金额(元):");
		double total = sc.nextDouble(); // 输入“红包的总金额”
		System.out.print("请输入红包的个数(个):");
		int bagsnum = sc.nextInt(); // 输入“红包的个数”
		double min = 0.01; // 初始化“红包的最小金额”
		Random random = new Random(); // 创建随机数对象random
		if (total / bagsnum == 0.01) { // 红包总金额与个数的商为0.01时
			for (int i = 1; i < bagsnum; i++) {
				double money = min; // 让每个包中的金额均为最小金额0.01
				total -= money; // 红包中的剩余金额
				System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
			}
		} else if (total / bagsnum < 0.01) { // 红包总金额与个数的商小于0.01时
			System.out.println("要保证每个人都能分到1分钱哦!");
			return; // 不再执行第22行以下的代码,例如第46行
		} else {
			for (int i = 1; i < bagsnum; i++) { // 设置“循环”
				/*
				 * 本次红包可用最大金额 = 可分配金额 - (红包总数 * 已发出的红包数) * 红包的最小金额
				 */
				double max = total - (bagsnum - i) * min;
				double bound = max - min; // 设置随机金额的取值范围
				/*
				 * 据随机金额的取值范围,随机生成红包金额。 由于nextInt(int
				 * bound)只能用整型做参数,所以先将bound乘100(小数点向右挪两位)
				 * 获取到一个整数后,将这个整数除100(小数点向左挪两位) 并转换成与金额相同的浮点类型
				 */
				double safe = (double) random.nextInt((int) (bound * 100)) / 100;
				double money = safe + min; // 最后加上红包的最小金额,以防safe出现0值
				total = total - money; // 替换total的值
				System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
			}
		}
		// 输出剩余金额
		System.out.println("第" + bagsnum + "个红包:" + String.format("%.2f", total) + "元");
		sc.close(); // 关闭控制台输入
	}
}

6、Date类

在这里插入图片描述

import java.util.Date;

public class DateTest {
	public static void main(String[] args) {
		Date date = new Date(); // 创建现在的日期
		long value = date.getTime(); // 获得毫秒数
		System.out.println("当前日期、时间:" + date);
		System.out.println("从基准时间到当前时间所经过的毫秒数为:" + value);
	}
}

7、DateFormat类

在这里插入图片描述

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DateFormatTest {
	public static void main(String[] args) {
		// 创建日期
		Date date = new Date();
		// 创建不同的日期格式
		DateFormat df1 = DateFormat.getInstance();
		DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
		DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
		DateFormat df4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.US);
		DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd");
		DateFormat df6 = new SimpleDateFormat("yyyy年MM月dd日");
		// 将日期按照不同格式进行输出
		System.out.println("-------将日期时间按照不同格式进行输出------");
		System.out.println("按照Java默认的日期格式: " + df1.format(date));
		System.out.println("按照Java默认的日期格式: " + df1.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,系统默认区域:" + df2.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE,区域为中国 : " + df3.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,区域为美国: " + df4.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd: " + df5.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日: " + df6.format(date));
	}
}

8、枚举类型

枚举类型常被用于设置常量
由于枚举类型是一种数据类型,而且被视为一系列具有名称的常量的集合,所以被赋予了在程序编译时检查数据类型的功能。
在这里插入图片描述
使用枚举类型的优势:
①传入的参数必须是我们定义的类型;
②传入具体的值;
③避免了两个常量等于同一个值的问题;

Java复习线路 以下是一种Java复习线路,帮助你系统地复习Java:1. Java基础语法 2. 面向对象编程 3. 异常处理 4. 集合框架 5. IO操作 6. 多线程编程 7. 网络编程 8. 数据库操作 9. Web开发 阅读详情

相关推荐

复习Java异常处理&Java面试题List和Set的区别,Array和ArrayList的区别&生活【记录一个咸鱼大学生三个月的奋进生活】008

记录一个咸鱼大学生三个月的奋进生活008复习Java(异常处理)异常分类常见的异常及其含义异常处理方法(try、catch、throw、throws、finally)异常对象的常用方法学习Java面试题(List和Set的区别,Array和ArrayList的区别)List和Set的区别Array和ArrayList的区别健身照片分享 复习Java(异常处理) 不寻常的事就是异常,并不只是错误,异常处理是Java语言健壮性的体现。 异常分类 这时候就可以去我之前的帖子:复习Java封装继承&Java

coiokok的博客 3354

【springboot异常处理】用异常信息枚举类处理异常,使用自定义异常封装异常对象,返回统一异常处理结果

1.目录: 异常信息枚举类 由于在业务中,有很多异常,针对不同的业务,可能给出的提示信息不同,所以为了方便项目异常信息管理,我们一般会定义一个异常信息枚举类。 public enum BusinessMsgEnum { /** 参数异常*/ PARMETER_EXCEPTION("102", "参数异常!"), /** 等待超时*/ SERVICE_TIME_OUT("103", "服务调用超时!"), /** 参数过大*/ PARMETER_BIG_EXC

qq_41358574的博客 2865

ENSP实验一:防火墙基础配置

配置client(内网)、FTP Server(外网)的IP地址。进入防火墙,输入密码:默认为admin@123。

Carohuan的博客 1万+

使用枚举类自定义异常

使用枚举类自定义异常 定义枚举类 public enum BlogEnum { USER_LOGIN_CODE("001-001","验证码输入错误"), USER_LOGIN_ACCOUNT("001-002","用户名或者密码错误"), USER_VERIFY_PASS("002-001","输入的旧密码错误"), USER_UPDATE("002-002","更新用户信息失败"), ARTICLE_ISOPEN("002-003","修改文章是否公开失败"),;

limLXW的博客 909

避免bank conflict的使用共享内存的矩阵转置。及其循环展开。转置前后都是行主序,中间共享内存中是列主序

为了避免bank conflict,可以使用padding的方式将数组中的每一行各自占据一个bank,这样每个线程读取不同行的数据时就不会发生bank conflict。padding的方式是在每行数据后面添加一定数量的空数据,使得每行的字节数恰好是bank的整数倍,这样就能保证每行数据各自占据一个bank。具体来说,当一个线程访问共享内存中的一个元素时,GPU会根据该元素在共享内存中的地址计算出其所在的bank,然后将该元素从该bank中读取出来。

weixin_55035144的博客 2144

第 4 课 树莓派5的换源与中文输入法

树莓派换源、中文输入法的安装

嵌入式老牛的博客 2288

枚举和异常

目录枚举定义枚举常用的方法异常异常的传播异常处理finally的使用异常体系自定义异常 枚举 定义 在Java编程语言中,可以使用enum关键字定义枚举类型。所有的枚举类都继承于java.lang.Enum类。 eg: //使用enum关键字声明一个枚举类 public enum Day { //枚举类的值,类型是Day SUNDAY,//星期天 MONDAY,//星期一 TUESDA...

StephenYou的自习室 910

AST实战:解密Akamai混淆JS代码的完整流程

本文详细解析了如何使用AST技术解密Akamai混淆的JS代码,包括定位关键代码、AST解混淆实战步骤及常见问题解决方案。通过实际案例演示了从混淆代码到清晰逻辑的完整处理流程,并提供了工具推荐和法律合规建议,帮助开发者有效应对反爬虫技术。

weixin_33725722的博客 315

项目中的统一异常处理

统一异常处理,全局异常处理器,自定义异常,通用异常信息类,异常信息封装类

日常学习总结 844

5.7 医疗 Agent 实战:构建一个懂“望闻问切”的智能医疗咨询助手

本文介绍了如何构建一个智能医疗咨询助手项目,通过LoRA微调和vLLM部署技术,将通用大模型改造为专业"AI皮肤科医生"。项目采用精简架构:Streamlit前端直接与vLLM推理服务通信,重点展示了微调模型在专业性、安全性和同理心方面的显著提升。实施步骤包括:部署微调模型、构建交互界面,并通过对比测试验证微调效果。项目强调AI仅作为咨询助手而非医生替代品,始终以引导用户寻求专业医疗帮助为核心目标,体现了负责任AI应用的关键原则。

yonggeit的博客 2962

GEE案例教程:融合Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据,构建完整的洪水监测与影响评估工作流

本文介绍了一个专为巴基斯坦哈扎拉分区设计的洪水监测系统,该系统整合了Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据等多源遥感数据。系统通过VV极化SAR数据的水体提取算法(阈值-13dB)实现洪水范围监测,结合10米分辨率的光学影像进行可视化验证,并利用100米分辨率人口数据评估受灾人口。系统提供完整的技术实现,包括研究区加载、遥感数据处理、日期选择界面和洪水变化检测等功能模块,为灾害应急响应提供科学依据。

此星光明博客 191

【转】【C#】异常类 Exception 枚举所有类型的异常

一、基础   在C# 里,异常处理就是C# 为处理错误情况提供的一种机制。它为每种错误情况提供了定制的处理方式,并且把标识错误的代码与处理错误的代码分离开来。 对.NET类来说,一般的 异常类System.Exception 派生于 System.Object。还有许多定义好的异常类(如:System.SystemException、System.ApplicationException...

weixin_34318326的博客 197

[NoC]Outstanding和Credit的概念详解

摘要:本文详细解析了计算机体系结构中outstanding和credit两个核心概念。outstanding指已发出但未完成的请求数量,通过跟踪未决事务实现并发和乱序执行,常见于AXI总线等场景;credit则是基于信用令牌的流控机制,通过控制发送速率防止接收端缓冲溢出,多用于NoC网络。二者在目的、机制上存在差异:outstanding侧重提升并发度,credit关注流控保护。文章通过AXI协议实例和SystemC代码示例展示了二者的应用与结合方式,并探讨了在SoC设计中参数优化的方法,包括性能/资源权衡

元直的博客 2284

Java期末复习——知识点+题库

Java期末复习——知识点+题库

软件手的博客 1万+

选型不再靠感觉:一文看懂 SAP Event Mesh 与 SAP Integration Suite, advanced event mesh 的能力边界

本文对比分析了SAP Event Mesh与SAP Integration Suite, advanced event mesh的差异。SAP Event Mesh适合轻量级场景,主要用于SAP系统间异步通信,支持AMQP、MQTT等协议,消息大小限制为1MB。而advanced event mesh面向企业级事件网络,提供跨云/本地部署、事件治理、监控等高级功能,支持30MB消息和更大存储容量。选择时需考虑业务规模、实时性要求、治理需求等因素:单一SAP生态内扩展可选Event Mesh;跨区域、多云环境

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 133

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java复习

Java中的switch-case分支结构中,一旦控制表达式的计算结果与某个case值匹配成功,就执行完该case对应的语句块,即结束switch-case语句。( F ) 使用break语句可以跳出一次循环。( F ) Java中continue语句的作用是结束本次循环,开始下一次循环。( T ) Java中数组的元素只能是简单数据类型。( F ) 数组作为方法的参数时,必须加在数组名后加方括号。( T ) 数组中有length()这个方法,如array.length()表示数组arra

qi_qi14的博客 4938

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Java语言设计】——期末复习(冲刺篇)

📖 前言:快考试了,做篇期末总结,都是重点与必考点。题型:判断题、单选题、程序综合题(阅读程序并填空)、改错题、代码评价题、英语专业阅读题(如给出某函数的开发文档(英文)用法解释要求翻译为中文)、编程设计题(继承、接口、多态)

HinsCoder的博客 2823

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java复习总结三

Java是采用面向对象的方式处理异常的。当程序出现问题时,就会创建异常类对象并抛出相关的信息(如异常出现的位置、原因等),从而能够更迅速地定位到问题原因。本文主要介绍了 Java 中的异常处理和常用类。在异常方面,阐述了异常产生原因、体系,包括 Throwable 及其子类 Error 和 Exception,还介绍了 Exception 与 RuntimeException 的区别,以及抛出异常(throw)、声明异常(throws)和捕捉异常(try…catch…finally)的方法。

Timseles的博客 827

java复习总结

本章内容涵盖了Java的基本介绍、安装必要的开发工具以及编写第一个Java程序的过程。对于初学者来说,掌握这些基础知识是非常重要的,因为它们构成了进一步学习和理解Java编程的基础。通过了解Java的历史和发展,熟悉其关键特性,掌握如何设置开发环境,以及实践编写简单的Java程序。变量是在程序中用来存储数据的容器。定义变量时需要指明其类型和名称,还可以立即给它赋初值。// 定义并初始化一个整型变量// 定义一个字符型变量,稍后赋值char grade;在Java中,类是创建对象的蓝图或模板。

2401_90037380的博客 1024

java的复习和异常处理

异常就是代表程序出现的问题,如,读取一个不存在的文件,读取网络数据java无法为这个世界上的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理问题,那就需要自己来定义异常类了方法出现异常先向上抛给调用者然后调用者再进行处理:处理的两种方法:1.捕获异常,记录异常并响应合适的信息给用户2.捕获异常,尝试重新修复Windows自带的笔记本能打开读懂1.什么是IO流存储和读取数据的解决方案2.IO流的作用?用于读写数据(本地文件 ,网络)

2402_87881996的博客 984

Java课程综合复习总结

在这篇文章中,我将带领大家回顾我们Java课程的第一章到第六章的核心知识点。每一章节我都会详细总结核心概念和知识点,并附上Java代码示例。同时,我也会分享我的个人理解、学习心得以及遇到的难点和解决方法。希望这篇文章能够帮助大家更好地理解和复习课程内容。

C2513806722的博客 1180

202402150444JAVA期末总复习

(6)Scanner的使用:需要使用new关键字创建Scanner的对象,再通过Scanner类的next()方法获取用户在控制台输入的字符串,通过nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()获取用户在控制台输入的基本数据类型。变量的赋值使用“=”,赋值的数据类型必须与声明的数据类型一致。(1)数组是一个容器,能装任何类型的数据,但是一个具体的数组只能装一种类型,也就是一个数组不能同时放入不同类型的数值。

Evina2002的博客 1755

Java期末周复习总结

核心概念:示例代码: 第三章:面向对象编程基础 核心概念:示例代码: 第四章:面向对象编程高级特性 核心概念:示例代码: 第五章:异常处理机制 核心概念:示例代码: 第六章:Java常用类 核心概念:示例代码: 章节 核心概念 示例代码 第一章 Java的起源与发展 第二章 Java编程基础 第三章 面向对象编程基础 第四章 面向对象编程高级特性 第五章 异常处理机制

2401_84070785的博客 1477

Java期末综合复习总结

当某个类可能只在某个代码块中才会使用到,并且这个类是某个接口的实现类,或者某个类的子类时,不必特意写这个类,直接创建接口或者抽象类即可。一个定义在其他类内部的类称为内部类,而这个其他类则称为外部类。因此,在开发中如果不涉及字符串的改变,建议使用String,如果涉及并发问题,建议使用StringBuffer,如果不涉及并发问题,建议使用StringBuilder。(1)多态的实现:多态的实现主要表现在父类和继承该父类的一个或多个子类对某些方法的重写,多个子类对同一方法的重写可以表现出不同的行为。

weixin_54778502的博客 668

202302151807JAVA期末复习总结

1.1的特点跨平台性、可移植性、安全性、健壮性、编译和解释性、高性能和动态性等特点,支持多线程分布式计算与网络编程等高级特性。1.2Java跨平台原理Java是跨平台的,它自带的Java虚拟机(JVM)可以很好的实现跨平台性。1.3面向对象和程序设计面向过程以过程为核心,强调事件的流程、顺序,其性能比面向对象高,但代码的可维护性、可读性、复用性、可扩展性不如面向对象。面向对象以对象为核心,强调事件的角色、主体。1.4JDK与JRE的关系JDK是Java的开发工具包,它包含了JRE。

2301_81638565的博客 1078
上一篇: JAVA复习之面向对象编程
下一篇: 使用C3P0进行数据库增删改查操作
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值