JavaSE学习笔记day03

发布时间 2023-08-17 09:09:08作者: 鹤云翔龙

一、异常处理机制
当程序中抛出异常时,会导致整个程序中断执行。若要程序不受影响,可以继续往下执行,
则使用异常处理机制。
异常处理机制:
try-catch-finally
语法结构:
try{
可能会抛出异常的代码
}catch(异常类型 变量名){
处理异常的代码
}finally{
代码
}
细节:
(1)当try代码块某一行代码抛出异常,则会立即执行catch代码块,那么try代码块
中后面未执行完的代码就不会执行了!
(2)catch()中定义的是一个异常变量,该变量会接收try代码块中抛出的异常对象,
底层原理相当于:异常类型 变量名 = 异常对象
(3)异常变量的异常类型可以是具体的异常类,比如:ArithmeticException,RuntimeException等,
此时为精准匹配,用于单独处理每一种异常;
也可以是Exception,用于处理所有的异常,对所有的异常进行统一处理。
(4)不管try中是否抛出异常,finally代码块都会执行,常用于关闭系统资源的时候。
finally代码块可省略。
(5)当整个try-catch-finally执行完之后,代码会继续往下执行,不会因为出现异常而终止运行!!!

throws关键字
用于在方发声明部分向上层抛出异常,若该异常一直往上抛,不处理,直到main方法,
此时程序依然会终止运行。
那怎么处理向上层抛出的异常?在上层使用try-catch-finally处理即可。

throw关键字
用于手动抛出异常对象

总结:
(1)若出现异常,则可以使用try-catch结构直接捕获处理异常
(2)也可以直接使用throws向上层抛出异常,然后在上层使用try-catch结构处理


二、常用类
1、字符串
概念
(1)字符串属于JDK自带的引用数据类型;
(2)字符串是不可变的;
(3)字符串在底层是一个char类型的数组;
(4)字符串不能被继承。
创建字符串对象
(1)使用new String()创建空字符串
(2)使用new String(字符串字面量)
(3)使用new String(字符数组)
特例:
字符串变量 = 字符串字面量,该方式没有创建字符串对象。
PS:当调用字符串方法的时候,这里的字符串字面量会自动变为:new String(字符串字面量)

内存分析:...

常用方法:见注释

2、包装类:
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
本节以Integer为例
创建Integer对象
(1)使用new Integer(整型字面量)创建
(2)使用new Integer(字符串字面量)创建,字符串字面量的内容为数字
常用方法:见代码注释
自动装箱:将整型int赋值给Integer变量
自动拆箱:将Integer对象赋值给整型int变量

总结:
将基本数据类型转为字符串(以int为例):
(1)使用+拼接""
(2)String.valueOf(基本数据类型)
(3)包装类.valueOf(基本数据类型).toString()
比如:Integer.valueOf(12).toString()

将字符串转为基本数据类型(以int为例):
(1)包装类.parse系列方法
比如:Integer.parseInt("12")
(2)将字符串转为包装类对象,然后调用value系列方法
比如:new Integer("12").intValue()

3、Date类
Date对象中存放的日期数据
创建对象:Date d = new Date();
常用方法:见代码注释
格式化日期:
使用SimpleDateFormat类,其定义了一些格式化标准:
y:年
M:月
d:月份中的天数
D:年中的天数
H:时
m:分
s:秒
S:毫秒数
z/Z:时区


三、集合
集合是Java中替代数组用的,用于存放批量的数据,由于集合的长度
可以自动扩展,所以使用起来比数组更加灵活!!!
1、List集合(以ArrayList为例)
核心操作:增删改查+遍历

2、Set集合(以HashSet为例)
核心操作:增删查+遍历

3、Map集合(以HashMap为例)
Map集合中存放的元素是K:V键值对,K叫做键,V叫做值
Map集合中元素是无序且键不重复
核心操作:增删改查+遍历

总结:
ArrayList:元素有序且可以重复
HashSet:元素无序且不可重复
HashMap:元素无序且Key不可重复
泛型:写在<>中,用于限定集合中数据的数据类型,
对于Map而言,<>泛型有两个,第一个用于限定键,第二个用于限定值

快捷键总结:
(1)代码.var+回车:补全赋值语句
(2)代码.sout+回车:补全标准输出语句
(3)代码.for+回车:补全高级for循环结构
(4)代码.fori+回车:补全普通for循环