首页技术文章正文

JavaSE进阶之学习笔记

更新时间:2018-01-05 来源:黑马程序员 浏览量:

集合之set接口。特点:元素存取无序,元素不可重复,无索引。

HashSet集合

创建集合对象

添加元素对象

遍历集合对象

1.转数组

2.迭代器

3.增强for

通过查看源码发现:

确保元素唯一性,先比hash值,再比地址值,或进行equals方法比较.比较结果一样则认为重复不添加.不一样则添加。当hashCode方法永远返回1时,所有对象的hash值一样。有一些对象的成员变量不同,但是还是需要进行hash和equals方法进行比较,为了提高程序的效率,可以把成员变量和hashCode方法的返回值关联起来。

collection和collects有什么去区别?

collection是集合体系的最顶层,包含了集合体系的共性

collections是一个工具类

Map双列集合(接口)

概述:双列集合用于提供一对一数据的处理,与Collection属于同级

特点:将键映射到值得对象.一个映射不能包含重复的键,每个键最多只能映射一个值

键不可重复,值可以重复

键是无序的

Map和Collections的区别

Map:双列集合,用于处理具有对应关系的数据,key是不可重复的,也叫夫妻对集合

Collection:单列集合,具有不同的子体系,有有序的,也有无序的,也叫单身汉集合

常用功能:

删除功能:

void clear();清空集合

V remove(Object obj):根据指定的key删除对应关系,并返回key对应的值

判断功能:

boolean containKey();判断指定key是否存在

boolean containValue();判断指定的value是否存在

boolean isEmpty();判断集合是否为空

覆盖功能:

V put(K key,V value);将key映射到value,key存在则覆盖value,

遍历功能:

Set

SetkeySet();将所有的键返回成一个Set集合

Collectionvalues();将所有的元素返回成一个Set集合或List集合,

获取功能:

V get(Object key)

Map的遍历方式:

1.找出所有的key,遍历所有的key集合,获取key,通过get()方法获取value

2.通过Map的EntrySet方法来把Key和Value输入到Map的内部类Entry中,再调用Entry对象的getKey方法和getValue方法来遍历输出

可变参数

当参数不确定,但类型要一致,Java可以直接转成数组

实参:(实参1,实参2,....)

形参:类型名...变量名

注意:可以在可变参数前添加别的形参,但不可以在后面加

就业第八天

异常:

概述:不正常,我们在代码出现的编译或者运行时的错误

异常包含了错误的类型、原因以及位置

体系结构:

Throwable(最顶层):

Error:出现的不能够处理的严重问题

Exception:可以处理的问题,编译时期的异常

RuntimeException:编译时正常,运行时发生的异常

常见异常:

NullPointerException:空指针

ArrayIndexOutOfBoundException:数组指针越界

任何数字除以0都会抛出异常

异常的处理方式:

//第一种方式

捕获

try{

存放可能发生的异常代码

可以有多行代码

}catch(异常类型 异常对象名){

对异常进行处理的代码

也可以通过异常对象名获取异常的信息

}finally{

用于释放资源

清理垃圾

}

首先执行try语句

发现异常,异常下面的代码不执行,跳入catch语句,catch语句结束后,try...catch结束

没有异常,不执行catch语句

处理多个异常

使用多个try...catch语句

使用一个try和多个catch语句

多个catch的顺序

多个

平级没有顺序

有子父类,父类必须在后面

//第二种方式

抛出

在不想处理或没有能力处理异常时,可以选择抛出

关键字:throws,在方法的声明处使用

定义格式:

方法名(参数列表) throws 异常类型1,异常类型2........{

}

JVM处理异常:

异常我们不处理,JVM会把异常的种类,原因还有把位置显示在命令行,并且终止程序,异常后的代码不再执行

try...catch操作捕获的异常

String getMessage();

返回异常原因

String toString();

返回异常类型

void printStackTrace();

输出异常原因和类型,还有位置

异常分类

1.运行时期异常:RuntimeExceptipon的子类就是运行时期异常,可以自行处理或者不处理

2.编译时期异常:

非RuntimeException ,编译时期的一样必须处理

两种异常处理方式

throws:处理异常的一种方式将异常抛出,由调用者处理

throw:制造异常的方式,并且结束方法

注意

抛出(throws)

递归:大事化小,小事化了

注意:

1.递归一定要有出口

2.递归次数不宜过多

就业第九天

IO流

绝对路径:固定不可变的路径,以盘符开头

相对路径:相对于某个参照物,不以盘符开头

FIle类

常用功能:

创建功能

boolean createNewFile():

创建新文件,返回是否创建成功

文件不存在的时候返回true并创建文件,存在的时候返回false

boolean mkdir():

创建目录,返回是否成功

文件夹不存在的时候返回true并创建,存在的时候返回false

boolean mkdirs();

创建多级目录,包括指定路径中缺少的父级目录,

当多级文件夹不存在时返回true并创建多级文件夹,存在返回false

判断功能

boolean exists():

判断文件或文件夹是否存在,存在true,否则false

boolean isAbsolute():

判断File对象指向的路径是否是绝对路径,是true,否false

boolean isDirectory():

判断File对象指向的是否是目录,是true,否false

boolean isFile():

判断File对象指向的是否是文件,是true,否false

boolean isHidden():

判断File对象指向的路径是否有隐藏属性,是true,否false

获取功能

String[] list():获取当前路径下所有文件和目录的名称,返回成一个字符串数组

File[] listFiles():获取当前路径下所有文件和目录,返回成一个File类的对象数组

static File[] listRoots():返回当前电脑的所有盘符

删除功能

boolean delete():

删除文件或文件夹,返回是否成功

当指定文件或文件夹存在时删除文件,返回true,不存在时返回false

注意:delete()方法删除文件夹,文件夹下面不能有文件和文件夹

IO流分类

流向

输入流 读取数据 FileReader Reader

输出流 写出数据 FileWriter Writer

数据类型

字节流 字节输入流 读取数据 InputStream类

字节输出流 写出数据 OutputStream类

字符流 字符输入流 读取数据 Reader类

字符输出流 写出数据 Writer类

递归中

就业第十天

转换流

OutputStreamWriter:字节输出流转字符输出流

InputStreamReader:字节输入流转字符输入流

打印流

PrintStream:字节打印流

PrintWriter:字符打印流

特点:

1.自动换行

2.输出除了字节以外的任意类型

3.通过构造方法配置,实现自动刷新(调用println、printf或format才有用)

4.包装流,不具备写功能

5.可以把字节流转换流字符输出流

对象操作流:可以用于读写任意类型的对象

ObjectInputStream:对象输入流

readObject

ObjectInputStream(InputStream in)

ObjectOutputStream:对象输出流

writeObject

ObjectOutputStream(OutputStream out)

注意:使用对象输出流写出对象,只能用对象输入流写入

解决对于实现序列化接口黄色警告的问题

集合

Properties :表示一个持久的属性集,属性列表中每个键及对应值都是一个字符串

构造方法:

Properties

和IO流结合

1.void list(PrintWriter out)

2.void load(Reader reader)

3.void store(writer

属性 配置 Map();

乱码

编码表

ASCII:美国标准码

GB2312 ---GBK 国标和国标扩展码

Unicode:万国码

UTF-8:Unicode的一种实现方式,长度可变的码表,一个字符栈1or2or3个字节

ANSI:本地编码表,根据系统决定编码

原因

字符串编码的转换

标准输入输出流

public static final InputStream in;字节输入流,用来读取键盘录入的数据

public static final OutputStream out;字节输出流,将数据输出到控制台


本文版权归黑马程序员JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!

作者:黑马程序员JavaEE培训学院

首发:http://java.itheima.com/

分享到:
在线咨询 我要报名
和我们在线交谈!