1.前一天重点内容复习
HashMap的put方法依赖于Object类的HashCode()和equals()方法,存储的键值对对象中的键如果是自定义类型,则必须重写Object类的HashCode()和equals()方法,否则比较的是对象地址值不是对象的成员信息
HashMap和Hashtable的区别
HashMap是线程不安全类,允许nul键和null值出现,线程不同步,不安全,执行效率高
Hashtable是线程安全类,不允许null键和null值,线程同步,安全,执行效率低
final,finalize,finally的区别
final:状态修饰符,修饰类,此类不能被继承,修饰方法,此方法不能被重写,修饰变量,此变量就为常量
finalize:是一个方法,是jvm调用gc时候的回收方法,将没有更多引用的对象回收掉
finally:常用于捕获异常后释放相关系统资源
Map和Collection的区别
集合存储元素的区别
Map集合为双列集合,存储键值对元素
Collection集合为单列集合,存储单个元素
子实现类的依赖关系
Collection集合的Set集合依赖于Map实现
HashSet依赖于HashMap
TreeSet依赖于TreeMap
遍历方式不同
Collection
Object[] toArray()
Iterator iterator()
增强for循环
Map
获取所有键的集合Set
获取所有键值对对象,Set
throw和throws的区别
相同点:两这都是抛出异常
不同点
位置不同
throws:是在方法上声明
throw:是在方法体中声明
异常处理者不同
throws:谁调用谁处理
throw:通过逻辑判断语句进行处理
异常可能性不同
throws:可能会出现异常
throw:一定会出现异常
异常名称不同
throws:后面跟异常的类名,多个类名需要用逗号隔开
throw:后面跟异常对象,通常为匿名对象
2.Collections针对集合 *** 作的工具类相关功能
public static T max(Collection extends T> coll):获取Collection集合中的最大值
public static
static
static
public static void shuffle(List> list):List集合的随机置换
3.进程和线程
进程
定义:能够调用系统资源的独立单位
意义:提高cpu的利用率
线程
定义:能够执行的独立单元
依赖于进程存在,一个进程可能存在多个线程,一个线程存在于某个线程组中,线程就相当于进程中的一个任务
意义:相互抢占cpu执行权,使得cpu不断地切换线程,达到一种同时处理多个线程的效果
执行:线程被cpu执行具有随机性
4.如何创建线程
方式1
1.自定义一个继承自Thread线程类的类
2.重写Thread类中的run()方法
3.在main线程中定义自定义类对象
4.启动线程对象,调用start()方法
方式2
1.定义一个资源类,实现Runnable接口,重写run方法
2.在main线程中创建资源类的对象
3.创建Thread类对象,将资源类对象作为参数传入进去
4.启动线程
5.Thread类
public final void setName(String name):将线程的名称改为name
public final void join() throws InterruptedException:等待这个线程死亡
public final void setPriority(int newPriority):设置优先级
public final int getPriority():获取优先级
public static void yield():暂停当前正在执行的线程,去执行其他线程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)