异常----代码中出现的问题----也是java中类产生的对象
Throwable(父类:问题):
1.异常(Exception),在java代码中异常可以处理
2.错误(Error),错误不处理
异常(Exception)分为运行时(非检查异常)和非运行时异常(检查异常)
在javaAPI文档中所有的运行时异常均是RuntimeException的子类
而除了RuntimeException中的内容,其他均为检查异常
避免异常的方式三种:1.避免出错,2.try...catch语句块,3.抛出异常。
try...catch语句块
try{可能出现异常的代码}cathc(异常的类型的变量){处理方式}--在try语句块中可能出现 异常的对象,如果catch例的类型引用可以赋值,就不会出现异常
try catch中是对异常进行补货,在catch中写入异常的类型然后进行匹配,直到匹配成功如果所有catch语句中没有抓捕异常对象,则依然会出现JVM的报错
在try catch中,如果catch中想要一定抓住异常,则可以使用父类Exception来抓捕
通常使用Exception e中e的printStackTrace()方法来打印报错信息
也可以使用e.getMessage()方法得到信息
一个try语句中只会抓捕一个异常对象
在try catch之后添加finally语句块表示一定会执行(除了System.exit(0))
抛出异常
在java代码中,如果生成一个异常对象就会出现代码错误吗?----不会,需要throw抛出异常对象
ava中除了throw还有throws(声明)
在方法定义中(方法签名后面)加上throws声明,调用该方法有可能出现某种异常
但如果声明的都是运行时异常则不会提示try catch。
声明时非运行异常,解决方法有两种1自行try catch和2.向上声明
常用类
System--系统类
Data--日期
String--字符串(StringBuffer和StringBuilder)
包装类
正则表达式
1.一个给定的值--就必须和给定的值一样
2.一个范围--只要满足范围,即满足正则表达式[] {} +?*
[]表示满足其中一个即可,但是可以有多个[]。在[]中可以使用连接符-,但是必须连接的是连续的内容。如[0-9]、[0-9][a-z]
{}表示前面[]中的内容可以出现几次,如[0-9]{2}==[0-9][0-9],给定的是2,必须出现中括号范围的数字两次
给定一个范围,表示必须出现该次数,如[0-9]{1,3}。表示[0-9]可以出现的次数,最少1次,最多3次。如[0-9A-Za-z]{6,18},密码只能6-18位
在上一个用法的基础上指定最小次数,但不指明最多次数,如[0-9]{1,},1表示最少次数,上则无限。
包装类--基础类型的升级
由于基本数据类型能力有限,所以将基本数据类型都封装为类--包装类
集合--(集合框架)
colleotion(有两个子接口List,set)(同级别类Map)
类似于数组又是数据的组合,集合和数组的区别
1.数组长度固定,集合长度不定
2.数组固定类型,集合不固定类型(泛型之前)
3.数组内存连续,集合不连续
List两个实现类(ArrayList,LinkedList)
Set两个实现类(HashSet,TreeSet)
Map(HashMap,TreeMap)
List中主要讲解ArrayList,其次是LinkedList
Set中主要讲解HashSet,其次是TreeSet
Map中主要讲解HashMap,其次是TreeMap
集合添加值--名.add()
查询--get()
索引从0开始,可能出现下标越界java.long.IndexOutOfBoundsException
list.size().索引,不用length
删除--名.remove(索引)
集合删除时下标会变化
由于集合中并没有知名数据类型,所以所有的元素取出后都是Object对象
为了给该集合中的数据类型进行区分,我们给它加上一个指定的数据类型--便于使用
加上的数据类型称为--泛型(非必须,只是为了指明集合中的数据类型)
ArrayList擅长查询
泛型
例如ArrayList<Integer> list = new ArrayList<Integer>();
泛型的类型不能是基本数据类型,不要加太高级别。
ArrayList擅长查询LinkedList擅长增,删
LinkedList是双向链表连接,元素之间的关系比较弱,ArrayList是按照数组排列方式,元素之间是连续的。
Set集合主要讲解HashSe(无序,没有按照自然排序,按照哈希算法排序)和TreeSet(有序)
HashSet不能有重复数据,可以有空(null),可以用来排除重复的东西!!
Map--键-值对
方法put可以添加修改,get可以查询
HashMap中可以有空键,或者空值。空键不能重复,会被覆盖。没有顺序
遍历器(迭代器)
Iterator
方法next()在使用后不会回到原点,会出现没有此元素异常 (如果有下一个,就取出,如果没有,就退出)
it.remove()删除不能单独使用,会出现IllegalStateException非法状态异常。必须要有遍历才能进行删除操作
在JDK1.5后用了forea,替换了迭代器
结构是for(数据类型 变量名:集合/数组(需要遍历的内容)){可以直接使用变量名来表示遍历一个一个的元素}
collections是集合的工具类
Arrays是数组的工具类
比较器--分为外部比较器和内部比较器
给复杂的对象一个排序/比较的方式。例如(给集合中的对象属性)
collections是集合的工具类
Arrays是数组的工具类
比较器--分为外部比较器和内部比较器
给复杂的对象一个排序/比较的方式。例如(给集合中的对象属性)
界面
GUI。Swing组件
java.awt(重量级框架)和javax.swing
事件监听
addActionListener(new ActionListener)