# 前言
正则表达式
a. 用于提供范围性的校验规则。利用这些规则进行校验、过滤、替换、切割操作
b. 预定义字符、数量词
c. 捕获组:用()括起来的作为一个整体操作的单元。捕获组的编号是从1 > 开始。从(出现的位置开始依次计算
包装类
a. 针对基本类型提供的类形式
b. 自动封箱:将基本类型直接赋值给对应的引用类型 -> valueOf
c. 自动拆箱:将引用类型字节赋值给对应的基本类型 -> **Value
d. 对于整数的自动封箱,会有范围判断:-128~127,如果在这个范围内,从数组中取值
e. 如果是基本类型和包装类对象进行运算,在底层会自动拆箱
f. 包装类所产生的对象的哈希码在任何环境下都不会改变
数学类
a. Math:针对基本类型提供了初等数学运算。在运算的时候不保证小数的精确性
b. BigDecimal:用于精确运算的类。要求参数以字符串形式提供
c. BigInteger:用于计算超大整数的类
# 日期类
Date:
a. 在导包的时候用的是java.util包下的
b. SimpleDateFormat:用于进行字符串和日期之间的转化。字符串转化 > 为日期对象:parse;日期对象转化为字符串对象:format
Calendar:
a. JDK1.2出来用于取代Date的类
# 异常
为了反馈和处理/解决问题设计的一套机制
异常的顶级父类是Throwable,有2个子类:Error、Exception
二、Error
表示严重的错误
出现之后不能处理
出现之后只能尽量优化代码,减少错误出现的几率
三、Exception
表示在合理的应用程序中出现的可以处理的问题
分类:
a. 编译时异常:在编译的时候就出现要求处理的异常
CloneNotSupportedException ParseException
b. 运行时异常:在编译的时候不出现到了运行的时候才会报错。在使用的时候可以处理,如果不处理在运行时会报错 > ---
RuntimeException
NullPointerException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException StringIndexOutOfBoundsException PatternSyntexException NumberFormatException
异常的处理方式:
a. 继续向上抛出:throws
b. 可以捕获:try-catch
如果在实际开发中,遇到了问题但是在java中没有提供对应的异常,那么自定义异常 --- 写一个类继承Exception,定义的是一个编译时异常。如果需要定义一个运行时异常,需要继承RuntimeException
异常的捕获方式:
a. 每一个异常分别对应一个catch,适合于每一个异常的处理方式各不一样
b. 如果所有异常的处理方式都一样,那么可以统一捕获一个父类异常对象
c. 如果异常之间的处理方式进行了分组,那么同一组异常之间可以用
| 隔开 --- JDK1.7开始
异常对方法的重载没有影响
在方法重写的时候,子类中重写的方法抛出的编译时异常不能超过父类方法抛出的编译时异常的范围 -> 子类不能抛出比父类更多的异常
finally:无论前边的代码执行成功与否,finally中的代码都会执行一次
当项目处在开发期间,如果项目中出现了异常,打印这个异常的栈轨 迹,然后根据这个轨迹进行调错;如果项目已经上线,出现了异常,记录错误日志
# 集合
一个容器:存储多个数据,但是不限长
顶级接口Collection<E>
<E> - 泛型 -
在集合中的所用是用于限定集合中存储的元素的类型。注意,由于泛型的限制,集合中只能存储对象