1.异常(exception)
简介:在java语言中,在程序执行时发生的不正常情况成为异常,逻辑或语法错误等不算在内。
可大致分为两类,1.Error:jvm无法解决的严重问题
2.Exception:一般性问题,可进行针对性改进解决,可分为运行时异常和编译 时异常。
引入:当程序执行到某条语句抛出异常(比如用0当作分母抛出的数学异常,试图打开一个根本不存在的文件、数组下标越界等),程序便会终止,这在一些大型项目中十分致命,我们评价此程序健壮性太低,对此,java设计者提供一个异常处理机制解决该问题。
异常处理1:try-catch(异常捕获)
try{
//代码块
} catch(exception XXX){
//若异常则输出异常信息,如:
System.out.println(xxx.getMessage())
//或执行其他排错操作
}finally{
//不管是否发生异常都执行该代码块的内容
}
异常处理2:throws(声明异常)
简介:如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。(简称踢皮球)
用法:在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。
修饰符 返回值类型 方法名称 (参数)throws 异常1名称,异常2名称{
}
自定义异常:throw(抛出异常)
定义类:自定义异常类名(程序员自己写)继承Exception(该异常属于编译异常)或RuntimeException(该异常属于运行时异常)
格式:throw new (异常名) (参数列表)
2.常用类(多查看自java api)
string类
1)String对象用于保存字符串,也就是一组字符序列(本质仍是char数组)
2)字符串常量对象是用双引号括起的字符序列。
3)字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节。
4)构造器(构造方法很多)常用如下:
String s1 = new String()
String s2 = new String(String original)
String s3 = new String(char[] a)
String s4 = new String(char[] a,int startlndex,int count)
StringBuffer类(对String类的一种增强)
1) java.lang.stringBuffer代表可变的字符序列,可以对符串内容进行增删。很多方法与String相同,但StringBuffer是可变长度的,操作时作用于本身,不会新建对象。
2)StringBuffer是一个容器。
Date 类与 Calendar 类
Date 类:可获取当前系统时间(为老外的时间格式)
Date (xxx)=new Date()
对此可创建 SimpleDateFormat对象来指定相应的格式
Calendar类:Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH
DAYOFMONTH、HOUR等日历之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Math类
-
由于Math类在java.lang包下,所以不需要导包。
-
因为它的成员全部是静态的,所以私有了构造方法
random类:
Rondom random = new Random();
random.nextInt();//返回一个随机整数
random.nextInt(100);//返回 [0,99) 之间的整数
random.nextBoolean();//返回一个随机 boolean 值
3.容器.泛型
容器
Java提供的一套容器类,其中基本类型是List、Set(集)、Queue和Map(映射),这些对象类型也称之为集合类。
具体结构:
- Collection
- List
- Set
- Queue
- Map
列表( List ):数组方式实现,维护元素的索引顺序
– 对象按索引存储
– 可以存储重复元素
集(Set)是最简单的一种集合:关心唯一性
–对象无序存储
–不能存储重复元素,不维护元素的索引顺序
Queue接口
特殊线性表,“先进先出”
图(Map)
对象以键-值对(key-value)存储
key不允许有重复,value允许有重复
Map中元素,可以将key序列、value序列单独抽取出来
泛型
1)泛型又称参数化类型,是jdk5.0出现的新特性解决数据类型的安全性问题。
2)在类声明或实例化时只要指定好需要的具体的类型即可。
3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClasscastException异常。同时,代码更加简洁、健壮。
4)泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。
小结:*为保证程序的健壮性,异常的处理必不可少,程序员应避免运行时异常的出现,而编译型异常是编译器必须要处理的异常。
*常用类中的容器各具特点,正确使用提高开发效率
*泛型的本质是为了参数化类型,合理使用可解决强制转换等异常
*对于容器个人理解为java设计者为提高数据存储效率将数据结构及其维护方法根据 其特性不同封装成不同的容器