异常,集合,界面

异常----代码中出现的问题----也是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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值