JAVA学习总结五
2016-05-08 02:23
357 查看
第十一章 异常处理
异常概念:异常(Exception)是程序在执行过程中所参数的问题。凡是能用代码区纠正的都是异常。错误定义:错误(Error)是不能用代码解决的问题都属于错误。常见如:硬件问题、运行环境问题等。
分类:检查异常(chechedException),运行时异常(unchecked Exception)。
父类:throwable类(同时也是Error的父类)。
捕获异常
三种格式:
try-catch;
try-catch-finally;
try-finally;
catch块可以出现多个,但当异常的类有父子关系,即先catch子异常,再catch父异常。
在单个catch块后可以有任意多个catch块,如在”被保护的代码”中有异常产生,那么这个异常就会抛给下面的第一个catch块,根据异常类型匹配情况判断由哪个catch块捕获。
其他两种处理方式
提前加判断;
throw出去;
注:哪儿发生异常不一定就在哪儿处理,但流程不一样,因在被捕获之前错误出现位置之后的语句不再执行,只要在返回虚拟机之前处理即可。
异常的处理及声明规则
处理异常是指异常的捕获,而声明异常则是指一个方法的方法签名时使用throw关键字,但是声明的异常在该方法中不会被处理。
注:异常处理和声明规则不适用于运行时异常。
异常声明的格式:
例:public void 方法名 (参数)throws 异常类型
注:throws后面可以跟多个异常类型,用逗号隔开;同时当throw后接运行时异常,编译器不要求在方法声明部分加throws,加了也不会警告。但是throw后面接编译时异常时,编译器会要求加throws。
关键字:throw;
通过使用throw关键字来抛出异常,这个异常可以是一个新的异常实例,也可以是一个我们刚刚捕获的异常。同时,throw语句将导致当前代码立即停止执行,而且异常将被抛给调用栈中的前一个方法。
自定义异常
按异常出现的位置分三层架构:
1.表示层:类-界面;
2.业务层:类-业务逻辑处理;
3.持久层(数据访问层):类-数据库;
目
4000
的:将代码运行各阶段的异常收敛到自定义异常并抛给方法调用处以方便收集和集中处理。
创建步骤:
继承throwable或Exception;
书写带参构造,将已发生的异常对象的信息封装到自定义异常对象内;
书写带String参的构造,针对业务异常将业务异常信息装入自定义异常对象上;
添加自定义异常的特有方法。
注:关键字finally用于在try块后创建一个代码块,不管正常语句里有break还是return都要先执行finally里的代码后才执行前面代码
第十二章 常用类
三种常用类:String相关类、包装类、时间日期类。
其他类:
System类、数学运算相关类。
System的属性:in(输入),out(输出)和err(错误输出流);
String类
String类包含了一个不可变的字符串,一旦一个String对象被创建,包含在这个对象中的内容就是不可改变的,直至被销毁。
注:创建方法有两种,但是在构造器中输入常量的方法实际上是被创建了两个String对象,因为常量在加载期被放入了字符串常量池
StringBuffer类
StringBuffer对象代表一个内容可变的字符串。通过 StringBuffer类提供的方法可以改变字符串对象的字符序列。最后通过调用toString()方法将其转换为一个String对象。
注:对任意一个字符串进行对比或者判断前,一定要做非空判断和去掉前后空格的处理。
StringBuilder类
与 StringBuffer类类似,不同是 StringBuffer类是线程安全的,而 StringBuilder则不是,StringBuilder类比StringBuffer类性能高。
String类方法丰富度最高;
因String每次产生对象的原因,性能排序为:StringBuilder类>StringBuffer类>String类;
时间日期类
Date类表示特定的瞬间,精确到毫秒;
取当前日期通常用Date();
用simpleDateformat类可以进行格式化输出;
properties类
属于集合类中的可操作文件(配置文件);
properties的属性
可变大可变小;
存放不用连续空间;
可存放Object类型(但操作文件时,数据被看做为String);
数据在内部按照“键值对”的方式存放;
properties的增删改查
增和改:对象名.setproperty(“Key”,”Value”);
查值:对象名.getproperty(“Key”);
查容量:对象名.size();
删除:对象名.remove(“Key”);
做好的properties写入文件
格式:对象名.store(new Fileoutputstream(“文件名”,注释);
从文件导入数据到properties对象
格式:对象名.load(new Fileinputstream(“文件名”);
包装类
定义:为了使用对象方式处理基本数据类型,JAVA将八种基本数据类型封装成类,称为包装类。
包装类与String及基本数据之间的转换
基本转包装类方法:
(1).new包装类对象传参;
(2).建引用后,直接赋值(自动封装);
基本转String类型方法:
(1).例如:调用integer的tostring(int 变量)方法(此方法为static),然后赋值给String对象;
(2).基本数据类型的变量+“”(空串);
String转包装类类型方法:
(1).建立包装类对象,在括号中传“String”类型构造;
String转基本数据类型方法:
调用包装类对应的Parse()方法赋值给基本数据类型变量;
包装类转String类型
(1).调用包装类的toString()方法赋值给String对象;
(2).新建String对象,赋值为:包装类对象名+“”;
包装类转基本数据类型方法:
(1).new对象后传参,赋值给基本数据类型;
(2).建立基本数据类型变量,调用对应的Value()方法赋值给基本数据变量;
正则表达式
定义:通过一组字符串来规定合法数据的模板,让计算机以此接收有效性数据;
几种符号含义:
[]括号:代表一个字符,书写的有效选择;
{}括号:代表正则表达式反复出现的次数;
(|)括号:表示可选竖线左边规则或者右边规则;
*号:表示前面表达式可出现任意次,也可不出现;
+号:表示前面表达式出现至少1次,多了不限;
?号:表示前面表达式出现0-1次,要么无要么只能出现一次;
格式:字符串对象名.match(正则式);
未完待续
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树