equals 方法;
equals比较的是两个对象的内容;
==比较的是两个基本类型的值,对象的地址值;
赋值的对象内容可以用==,最好用equlas;
new出来的对象,用equas;
equals的调用者不能为空,会报空指针异常,
需要用equals方法,或者自己加判断;
if (s1 != null){
比较体;
}else {
sout“s1为空”
}
Date 类
date表示特定的瞬间,精确到毫秒
构造方法与成员方法:
空参获取当前系统时间
有参将参数毫秒换成时间
getTime方法
使用DateFormat 内中的方法Format,把日期格式转化成文本
用parse将文本转换成日期
Calendar 日历类
calendar无法直接创建对象使用;
Collection集合
概述:容器;储存多个数据;
与数组的区别:数组的长度是固定的,集合的长度是可变的。
数组储存的是同一类型的元素,储存基本数据类型值,集合储存的都是对象
集合框架:
Collection是所有单列集合最顶层的接口
共性的方法:
add 添加
remove 删除
contains 判断指定对象是否储存在结合中
isEmpty 判断集合是否为空 判断集合内的元素还有没有
size 获取集合中的元素个数
toArray 把集合中的1元素储存到数组中
clear 清空集合中的所有元素
Iterator迭代器
hasNext 判断是否到达集合的末尾
next 取出集合中的元素
并发修改异常,在遍历的时候add/remove,会抛出这个异常
泛型
不写泛型,默认Object类型
可以用来写让使用者自行添加使用的无类型类
数据结构
栈:先进后出
队列: 先进先出
数组:查询快,增删慢
链表:查询慢,增删快(链表中的地址不是连续的,每次查询,都需要从头开始查询,但增删元素,对链表整体结构没有影响,所以增删快)(增快,删相对慢)
单向链表无序,双向链表有序
红黑树:查询速度特别快
ArrayList
Arraylist的底层是数组结构,所以查询快,增删慢
LinkedList
底层是一个链表(双向链表),查询慢,增删快
注意:使用特有方法不能用多态
addfirst 插入开头
addlast 添加到末尾,等同于add
push 等同于addfirst
getfirst 返回第一个元素
getlast 返回最后一个元素
removeFirst 移除并返回第一个元素
removelast 移除并返回最后一个元素
pop 等同于removeFirst
Vector
单线程,速度慢,被ArrayList取代
==========Set===========
Set接口
不允许存储重复的元素
没有索引,没有带索引的方法,也不能使用普通for循环遍历)(可以用迭代器和增强for循环)
HashSet
无序的集合,存储元素和取出元素的顺序可能不一样
底层是哈希表结构(查询速度非常快)
不允许存储重复的元素
存储过程:获取元素的哈希值,去集合中判断有没有相同的哈希值,有就执行equals判断,是不是同一元素,不是就存储,如果元素相同,就不会放入集合
使用HashSet存储自定义对象,需要重写HashCode和equals方法
LinkedHashSet
底层是哈希表机构(数组+链条+红黑树)再加一个链条
可变参数
方法的参数类型已经确定,参数数量不确定
注意:一个方法的参数列表,只能有一个可变参数
如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
特殊写法(终极写法):(Object...obj)
有序的,也不允许重复
Collections
Collections.addAll 往集合中添加多个元素
Collections.shuffle 打乱顺序
sort 排序
自定义的类需要实现compareble,然后重写
Map集合
<key,value>
双列集合,一个元素包含两个值
key和valu的数据类型可以相同,也可以不同
key不能重复,value可以重复
key和value是一一对应的
方法:
put 添加<k,v>
remove 删除<k>
get 根据指定key,获得value
containsKey 判断集合中是否包含指定的键(key)
map.keySet 获取map中所有的key,封装成set集合
HashMap
无序,取出的元素顺序可能不一致
底层是哈希表,查询的速度非常快
LinkedHashMap
有序,取出的元素顺序一致
底层是哈希表加链表
Entry
一个键值对
遍历方式:
1.keyset
2.Entry
Hashtable集合
底层也是哈希表,是一个线程安全的集合·,单线程,速度慢
不允许存储空,HashMap可以
JDK9的特性:of
of方法只适用于list接口,set接口,map接口
不能添加元素进集合了,只用于确定了的集合
set,map集合在用的时候,不能重复,会报错
异常
Exception:编译期异常,编译出现的问题
RuntomeExeption:运行期异常
Error:错误
必须修改源代码,程序才能继续后执行
处理异常:1,往上抛,抛给虚拟机处理(打印异常信息,中断程序)
2,try()catch{}处理异常,处理完程序继续执行,不会停止
throw关键字
thorw必须写在方法的内部
throw后边new的对象必须是Exception或者Exception的子类对象
throw抛出指定的异常对象
finally,在try()catch后,里面的内容,无论如何都会执行
自定义异常类
格式:public class XXXException extends Exception | RuntimeException{}
Thread类中的方法
getName 获取该线程的名称
setName 设置一个名字
也可以用一个带参构造方法将name传给父类(super(name)),在开启线程的时候设置名字new Thread(“xxx”).strat |
|