提纲:
 1.正则表达式
 2.常见的异常
 3.内部类
------------------------------------------------------------------
JDK 1.4以后Java正式对正则表达式支持
场景:它是用来规范用户输入格式的!!!
注册页面
请您输入用户名: (*用户名以小写字母开头,由数字字母组成,长度不能少于6位)
int n = sc.nextInt();//它只能用来接受int类型的数据
 一旦用户输入的是String
 因此需要对用户的输入加以规范!!!输入的字符必须是数字类型的字符
---------------------------------------------------------------------------------------------
API:java.util.regex 
类 
 Pattern:正则表达式匹配模板类
常用方法:
 1.将给定的正则表达式匹配到模式中
 static Pattern compile(String regex);
3.编译给定正则表达式并尝试将给定输入与其匹配
 static boolean matches(String regex, CharSequence input)
java.util.regex 
 类 Matcher
常用方法:
int end()
正则表达式:
 预定义字符类 
 . 任何字符(与行结束符可能匹配也可能不匹配) 
 d 数字:[0-9] 
 D 非数字: [^0-9] 
 s 空白字符:[ x0Bf ] 
 S 非空白字符:[^s] 
 w 单词字符:[a-zA-Z_0-9] 
 W 非单词字符:[^w]
Greedy 数量词 
 X? X,一次或一次也没有 
 X* X,零次或多次 
 X+ X,一次或多次 
 X{n} X,恰好 n 次 
 X{n,} X,至少 n 次 
 X{n,m} X,至少 n 次,但是不超过 m 次 
--------------------------------------------------------------------------------
异常:
 一种对象,异常的顶级数据类型:java.lang.Throwable
根据异常的严重程度又分为:
 Error(错误):程序在运行的时候遇到了非常严重的问题,这些问题一旦出现
 不需要程序员手动进行处理!
StackOverflowError 堆栈溢出
OutOfMemoryError 内存泄漏
运行时异常:未检测异常
InputMismatchException 由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围
IllegalArgumentException 非法参数异常
ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常
ClassCastException 类型转换失败异常
非运行时异常:已检测异常
ParseException 解析异常
InterruptedException 中断异常
IOException 异常
SQLException sql语句异常
FileNotFoundException 文件没有被发现异常
注意:1.所有的RuntimeException运行时异常都是非运行时异常的子类!!!
 2.所有的运行时异常正常情况下是不需要程序手动进行处理的!!!
 只需要程序员平时编码谨慎点!!!
3.所有的非运行时异常是需要程序员手动进行处理的
关于非运行时异常的处理方式又分为积极处理和消极处理
积极处理方式一:
 推荐使用:可以针对不同的异常做出不同的处理策略
 try{
 statement1;
 statement2;//如果此处出现了异常,那么try块中的代码将不再继续向下执行,而是进入到
 //对应异常类型的catch块中
 statement3;
 return;
 }catch(异常类型1 异常对象){
 //异常的处理-打印异常信息
 }catch(异常类型2 异常对象){
 //异常的处理
 }catch(异常类型3 异常对象){
 ///
 }finally{
}
2.try...catch...finally一起使用情况,finally{}中的代码
 无论try{}是否出现异常,finally中的代码永远会执行,除非
 try中有System.exit(0);
try不一定必须和catch一起使用!!!
try{
 ....
 }finally{
 ...
 }
try{
 ....
 ....
 ....
 }catch(异常类型1 | 异常类型2 | 异常类型3 异常对象名){
 ...
 }
积极处理方式三:
 try{
 ....
 }catch(总父类(Exception) 对象){
 ....
 }
---------------------------------------------------------------------------
消极处理:
2.如果方法中抛出的异常是非运行时异常
 [则在方法体中需要
 throw 异常对象]
关于消极处理的时候,异常抓取的时机
1.如果一个方法b()中抛出了一个异常XXX
 如果另一个方法a()中也出现了一个异常XXX,与b()中出现的异常是相同的
 a()中又会去调用b()
 那么可以选择在b()方法中将XXX异常抛出,然后在a()中统一抓取
--------------------------------------------------------------------------------
自定义异常:
 自己写一个类,然后去继承Exception
 添加5个构造方法!!!
--------------------------------------------------------------------------------
内部类:
 只需要能够看懂!!!
1.成员内部类
 将内部的类当成外部的类中的一个成员属性存在!
 注意点:
 1.内部类可以访问到外部类中的所有的属性
 2.如果内部类当中的某个属性和外部类中的属性同名
 那么需要通过this.属性名来访问内部的!
 3.创建对象:外部类.内部类 对象名 = 外部类对象名.new 内部类();
2.静态内部类
 将内部类当成外部类的中的静态成员属性存在
 注意点:1只可以访问外部类中的静态属性
 3.局部内部类
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/20622.html
 
                